Skip to content

Commit c020fab

Browse files
committed
chore(addons): add rabbitmq redis-cluster zookeeper
1 parent 5f40d37 commit c020fab

91 files changed

Lines changed: 12592 additions & 8 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

addons/index.yaml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,27 @@ entries:
44
- name: mariadb
55
description: "MariaDB Server is one of the most popular open source relational databases. It’s made by the original developers of MySQL and guaranteed to stay open source. "
66
version: 1.1.0
7+
minio:
8+
- name: minio
9+
description: "MinIO offers high-performance, S3 compatible object storage."
10+
version: 1.1.0
711
postgresql:
812
- name: postgresql
913
description: "PostgreSQL is an object-relational database management system (ORDBMS) with an emphasis on extensibility and on standards-compliance."
1014
version: 1.1.0
15+
rabbitmq:
16+
- name: rabbitmq
17+
description: "RabbitMQ is the most widely deployed open source message broker."
18+
version: 1.1.0
1119
redis:
1220
- name: redis
1321
description: "Redis is an advanced key-value cache and store."
1422
version: 1.1.0
15-
minio:
16-
- name: minio
17-
description: "MinIO offers high-performance, S3 compatible object storage."
23+
redis-cluster:
24+
- name: redis-cluster
25+
description: "Redis is an advanced key-value cache and store."
26+
version: 1.1.0
27+
zookeeper:
28+
- name: zookeeper
29+
description: "Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly reliable distributed coordination."
1830
version: 1.1.0

addons/minio-1.1.0/chart/minio/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -893,7 +893,7 @@ persistence:
893893
volumePermissions:
894894
## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup`
895895
##
896-
enabled: false
896+
enabled: true
897897
## @param volumePermissions.image.registry Init container volume-permissions image registry
898898
## @param volumePermissions.image.repository Init container volume-permissions image repository
899899
## @param volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)

addons/minio-1.1.0/meta.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ metadata:
88
provider:
99
name: drycc
1010
supportURL: https://min.io
11-
documentationURL: https://github.com/drycc-adons/drycc-docker-minio
11+
documentationURL: https://github.com/drycc-addons/drycc-docker-minio
1212
tags: minio
1313
bindable: true
1414
instances_retrievable: true
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
annotations:
2+
category: Infrastructure
3+
apiVersion: v2
4+
appVersion: 3.10.8
5+
dependencies:
6+
- name: common
7+
repository: oci://registry.drycc.cc/charts
8+
version: ~1.1.1
9+
description: RabbitMQ is an open source general-purpose message broker that is designed for consistent, highly-available messaging scenarios (both synchronous and asynchronous).
10+
engine: gotpl
11+
home: https://github.com/bitnami/charts/tree/master/bitnami/rabbitmq
12+
icon: https://bitnami.com/assets/stacks/rabbitmq/img/rabbitmq-stack-220x234.png
13+
keywords:
14+
- rabbitmq
15+
- message queue
16+
- AMQP
17+
maintainers:
18+
- name: Bitnami
19+
url: https://github.com/bitnami/charts
20+
name: rabbitmq
21+
sources:
22+
- https://github.com/bitnami/containers/tree/main/bitnami/rabbitmq
23+
- https://www.rabbitmq.com
24+
version: 10.3.9

addons/rabbitmq-1.1.0/chart/rabbitmq/README.md

Lines changed: 712 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
CHART NAME: {{ .Chart.Name }}
2+
CHART VERSION: {{ .Chart.Version }}
3+
APP VERSION: {{ .Chart.AppVersion }}
4+
5+
{{- $servicePort := or (.Values.service.portEnabled) (not .Values.auth.tls.enabled) | ternary .Values.service.ports.amqp .Values.service.ports.amqpTls -}}
6+
7+
** Please be patient while the chart is being deployed **
8+
9+
{{- if .Values.diagnosticMode.enabled }}
10+
The chart has been deployed in diagnostic mode. All probes have been disabled and the command has been overwritten with:
11+
12+
command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 4 }}
13+
args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 4 }}
14+
15+
Get the list of pods by executing:
16+
17+
kubectl get pods --namespace {{ .Release.Namespace }} -l app.kubernetes.io/instance={{ .Release.Name }}
18+
19+
Access the pod you want to debug by executing
20+
21+
kubectl exec --namespace {{ .Release.Namespace }} -ti <NAME OF THE POD> -- bash
22+
23+
In order to replicate the container startup scripts execute this command:
24+
25+
/opt/drycc/scripts/rabbitmq/entrypoint.sh /opt/drycc/scripts/rabbitmq/run.sh
26+
27+
{{- else }}
28+
29+
Credentials:
30+
31+
{{- if not .Values.loadDefinition.enabled }}
32+
echo "Username : {{ .Values.auth.username }}"
33+
echo "Password : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ include "rabbitmq.secretPasswordName" . }} -o jsonpath="{.data.rabbitmq-password}" | base64 -d)"
34+
{{- end }}
35+
echo "ErLang Cookie : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ include "rabbitmq.secretErlangName" . }} -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 -d)"
36+
37+
Note that the credentials are saved in persistent volume claims and will not be changed upon upgrade or reinstallation unless the persistent volume claim has been deleted. If this is not the first installation of this chart, the credentials may not be valid.
38+
This is applicable when no passwords are set and therefore the random password is autogenerated. In case of using a fixed password, you should specify it when upgrading.
39+
More information about the credentials may be found at https://docs.bitnami.com/general/how-to/troubleshoot-helm-chart-issues/#credential-errors-while-upgrading-chart-releases.
40+
41+
RabbitMQ can be accessed within the cluster on port {{ $servicePort }} at {{ include "common.names.fullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}
42+
43+
To access for outside the cluster, perform the following steps:
44+
45+
{{- if .Values.ingress.enabled }}
46+
{{- if contains "NodePort" .Values.service.type }}
47+
48+
To Access the RabbitMQ AMQP port:
49+
50+
1. Obtain the NodePort IP and ports:
51+
52+
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
53+
export NODE_PORT_AMQP=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[?(@.name=='amqp')].nodePort}" services {{ include "common.names.fullname" . }})
54+
echo "URL : amqp://$NODE_IP:$NODE_PORT_AMQP/"
55+
56+
{{- else if contains "LoadBalancer" .Values.service.type }}
57+
58+
To Access the RabbitMQ AMQP port:
59+
60+
1. Obtain the LoadBalancer IP:
61+
62+
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
63+
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ include "common.names.fullname" . }}'
64+
65+
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} --template "{{ "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}" }}")
66+
echo "URL : amqp://$SERVICE_IP:{{ $servicePort }}/"
67+
68+
{{- else if contains "ClusterIP" .Values.service.type }}
69+
70+
To Access the RabbitMQ AMQP port:
71+
72+
1. Create a port-forward to the AMQP port:
73+
74+
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "common.names.fullname" . }} {{ $servicePort }}:{{ $servicePort }} &
75+
echo "URL : amqp://127.0.0.1:{{ $servicePort }}/"
76+
77+
{{- end }}
78+
79+
2. Access RabbitMQ using using the obtained URL.
80+
81+
To Access the RabbitMQ Management interface:
82+
83+
1. Get the RabbitMQ Management URL and associate its hostname to your cluster external IP:
84+
85+
export CLUSTER_IP=$(minikube ip) # On Minikube. Use: `kubectl cluster-info` on others K8s clusters
86+
echo "RabbitMQ Management: http{{ if .Values.ingress.tls }}s{{ end }}://{{ .Values.ingress.hostname }}/"
87+
echo "$CLUSTER_IP {{ .Values.ingress.hostname }}" | sudo tee -a /etc/hosts
88+
89+
2. Open a browser and access RabbitMQ Management using the obtained URL.
90+
91+
{{- else }}
92+
{{- if contains "NodePort" .Values.service.type }}
93+
94+
Obtain the NodePort IP and ports:
95+
96+
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
97+
export NODE_PORT_AMQP=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[?(@.name=='amqp')].nodePort}" services {{ include "common.names.fullname" . }})
98+
export NODE_PORT_STATS=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[?(@.name=='http-stats')].nodePort}" services {{ include "common.names.fullname" . }})
99+
100+
To Access the RabbitMQ AMQP port:
101+
102+
echo "URL : amqp://$NODE_IP:$NODE_PORT_AMQP/"
103+
104+
To Access the RabbitMQ Management interface:
105+
106+
echo "URL : http://$NODE_IP:$NODE_PORT_STATS/"
107+
108+
{{- else if contains "LoadBalancer" .Values.service.type }}
109+
110+
Obtain the LoadBalancer IP:
111+
112+
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
113+
Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ include "common.names.fullname" . }}'
114+
115+
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "common.names.fullname" . }} --template "{{ "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}" }}")
116+
117+
To Access the RabbitMQ AMQP port:
118+
119+
echo "URL : amqp://$SERVICE_IP:{{ $servicePort }}/"
120+
121+
To Access the RabbitMQ Management interface:
122+
123+
echo "URL : http://$SERVICE_IP:{{ .Values.service.ports.manager }}/"
124+
125+
{{- else if contains "ClusterIP" .Values.service.type }}
126+
127+
To Access the RabbitMQ AMQP port:
128+
129+
echo "URL : amqp://127.0.0.1:{{ $servicePort }}/"
130+
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "common.names.fullname" . }} {{ $servicePort }}:{{ $servicePort }}
131+
132+
To Access the RabbitMQ Management interface:
133+
134+
echo "URL : http://127.0.0.1:{{ .Values.service.ports.manager }}/"
135+
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "common.names.fullname" . }} {{ .Values.service.ports.manager }}:{{ .Values.service.ports.manager }}
136+
137+
{{- end }}
138+
{{- end }}
139+
140+
{{- if .Values.metrics.enabled }}
141+
142+
To access the RabbitMQ Prometheus metrics, get the RabbitMQ Prometheus URL by running:
143+
144+
kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "common.names.fullname" . }} {{ .Values.service.ports.metrics }}:{{ .Values.service.ports.metrics }} &
145+
echo "Prometheus Metrics URL: http://127.0.0.1:{{ .Values.service.ports.metrics }}/metrics"
146+
147+
Then, open the obtained URL in a browser.
148+
149+
{{- end }}
150+
151+
{{- include "common.warnings.rollingTag" .Values.image }}
152+
{{- include "common.warnings.rollingTag" .Values.volumePermissions.image }}
153+
154+
{{- end }}

0 commit comments

Comments
 (0)