diff --git a/7project/charts/myapp-chart/templates/app-deployment.yaml b/7project/charts/myapp-chart/templates/app-deployment.yaml index 9bda2cd..aab5cdc 100644 --- a/7project/charts/myapp-chart/templates/app-deployment.yaml +++ b/7project/charts/myapp-chart/templates/app-deployment.yaml @@ -33,6 +33,16 @@ spec: secretKeyRef: name: {{ required "Set .Values.database.secretName" .Values.database.secretName }} key: password + - name: RABBITMQ_USERNAME + value: {{ .Values.rabbitmq.username | quote }} + - name: RABBITMQ_PASSWORD + value: {{ required "Set .Values.rabbitmq.password" .Values.rabbitmq.password | quote }} + - name: RABBITMQ_HOST + value: {{ .Values.rabbitmq.host | quote }} + - name: RABBITMQ_PORT + value: {{ .Values.rabbitmq.port | quote }} + - name: MAIL_QUEUE + value: {{ .Values.worker.mailQueueName | default "mail_queue" | quote }} livenessProbe: httpGet: path: / diff --git a/7project/charts/myapp-chart/templates/rabbitmq-permission.yaml b/7project/charts/myapp-chart/templates/rabbitmq-permission.yaml new file mode 100644 index 0000000..fd9b7f4 --- /dev/null +++ b/7project/charts/myapp-chart/templates/rabbitmq-permission.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rabbitmq.password }} +apiVersion: rabbitmq.com/v1beta1 +kind: Permission +metadata: + name: {{ printf "%s-permission" (.Values.rabbitmq.username | default "demo-app") }} + namespace: {{ .Values.rabbitmq.namespace | default "rabbitmq" }} + labels: + app.kubernetes.io/managed-by: Helm +spec: + rabbitmqClusterReference: + name: {{ .Values.rabbitmq.clusterName | default "rabbitmq" }} + namespace: {{ .Values.rabbitmq.namespace | default "rabbitmq" }} + vhost: {{ .Values.rabbitmq.vhost | default "/" | quote }} + user: {{ .Values.rabbitmq.username | default "demo-app" }} + permissions: + configure: ".*" + read: ".*" + write: ".*" +{{- end }} diff --git a/7project/charts/myapp-chart/templates/rabbitmq-queue.yaml b/7project/charts/myapp-chart/templates/rabbitmq-queue.yaml new file mode 100644 index 0000000..5580496 --- /dev/null +++ b/7project/charts/myapp-chart/templates/rabbitmq-queue.yaml @@ -0,0 +1,16 @@ +{{- if .Values.worker.mailQueueName }} +apiVersion: rabbitmq.com/v1beta1 +kind: Queue +metadata: + name: {{ .Values.worker.mailQueueName }} + namespace: {{ .Values.rabbitmq.namespace | default "rabbitmq" }} + labels: + app.kubernetes.io/managed-by: Helm +spec: + rabbitmqClusterReference: + name: {{ .Values.rabbitmq.clusterName | default "rabbitmq" }} + namespace: {{ .Values.rabbitmq.namespace | default "rabbitmq" }} + name: {{ .Values.worker.mailQueueName }} + vhost: {{ .Values.rabbitmq.vhost | default "/" | quote }} + durable: true +{{- end }} diff --git a/7project/charts/myapp-chart/templates/rabbitmq-user-secret.yaml b/7project/charts/myapp-chart/templates/rabbitmq-user-secret.yaml new file mode 100644 index 0000000..49194e0 --- /dev/null +++ b/7project/charts/myapp-chart/templates/rabbitmq-user-secret.yaml @@ -0,0 +1,11 @@ +{{- if .Values.rabbitmq.password }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ printf "%s-user-credentials" (.Values.rabbitmq.username | default "app-user") }} + namespace: {{ .Values.rabbitmq.namespace | default "rabbitmq" }} + labels: + app.kubernetes.io/managed-by: Helm +stringData: + password: {{ .Values.rabbitmq.password | quote }} +{{- end }} diff --git a/7project/charts/myapp-chart/templates/rabbitmq-user.yaml b/7project/charts/myapp-chart/templates/rabbitmq-user.yaml new file mode 100644 index 0000000..aa47baa --- /dev/null +++ b/7project/charts/myapp-chart/templates/rabbitmq-user.yaml @@ -0,0 +1,18 @@ +{{- if .Values.rabbitmq.password }} +apiVersion: rabbitmq.com/v1beta1 +kind: User +metadata: + name: {{ .Values.rabbitmq.username | default "demo-app" }} + namespace: {{ .Values.rabbitmq.namespace | default "rabbitmq" }} + labels: + app.kubernetes.io/managed-by: Helm +spec: + rabbitmqClusterReference: + name: {{ .Values.rabbitmq.clusterName | default "rabbitmq" }} + namespace: {{ .Values.rabbitmq.namespace | default "rabbitmq" }} + username: {{ .Values.rabbitmq.username | default "demo-app" }} + tags: "management" + passwordSecret: + name: {{ printf "%s-user-credentials" (.Values.rabbitmq.username | default "app-user") }} + key: password +{{- end }} diff --git a/7project/charts/myapp-chart/templates/worker-deployment.yaml b/7project/charts/myapp-chart/templates/worker-deployment.yaml index 25cb3ad..ad1ca52 100644 --- a/7project/charts/myapp-chart/templates/worker-deployment.yaml +++ b/7project/charts/myapp-chart/templates/worker-deployment.yaml @@ -35,3 +35,5 @@ spec: value: {{ .Values.rabbitmq.host | quote }} - name: RABBITMQ_PORT value: {{ .Values.rabbitmq.port | quote }} + - name: MAIL_QUEUE + value: {{ .Values.worker.mailQueueName | default "mail_queue" | quote }} diff --git a/7project/charts/myapp-chart/values.yaml b/7project/charts/myapp-chart/values.yaml index 0aea72e..55e121d 100644 --- a/7project/charts/myapp-chart/values.yaml +++ b/7project/charts/myapp-chart/values.yaml @@ -26,6 +26,8 @@ app: worker: name: app-demo-worker replicas: 1 + # Queue name for Celery worker and for CRD Queue + mailQueueName: "mail_queue" service: port: 80 @@ -35,6 +37,10 @@ rabbitmq: port: "5672" username: demo-app password: "" + # Existing cluster identification for Messaging Topology CRDs + namespace: rabbitmq + clusterName: rabbitmq + vhost: "/" mariadb: name: app-demo-database