|
@@ -0,0 +1,113 @@
|
|
|
|
+kind: StatefulSet
|
|
|
|
+apiVersion: apps/v1beta1
|
|
|
|
+metadata:
|
|
|
|
+ labels:
|
|
|
|
+ app: rmq-cluster
|
|
|
|
+ name: rmq-cluster
|
|
|
|
+ namespace: public-service
|
|
|
|
+spec:
|
|
|
|
+ replicas: 3
|
|
|
|
+ selector:
|
|
|
|
+ matchLabels:
|
|
|
|
+ app: rmq-cluster
|
|
|
|
+ serviceName: rmq-cluster
|
|
|
|
+ template:
|
|
|
|
+ metadata:
|
|
|
|
+ labels:
|
|
|
|
+ app: rmq-cluster
|
|
|
|
+ spec:
|
|
|
|
+ containers:
|
|
|
|
+ - args:
|
|
|
|
+ - -c
|
|
|
|
+ - cp -v /etc/rabbitmq/rabbitmq.conf ${RABBITMQ_CONFIG_FILE}; exec docker-entrypoint.sh
|
|
|
|
+ rabbitmq-server
|
|
|
|
+ command:
|
|
|
|
+ - sh
|
|
|
|
+ env:
|
|
|
|
+ - name: RABBITMQ_DEFAULT_USER
|
|
|
|
+ valueFrom:
|
|
|
|
+ secretKeyRef:
|
|
|
|
+ key: username
|
|
|
|
+ name: rmq-cluster-secret
|
|
|
|
+ - name: RABBITMQ_DEFAULT_PASS
|
|
|
|
+ valueFrom:
|
|
|
|
+ secretKeyRef:
|
|
|
|
+ key: password
|
|
|
|
+ name: rmq-cluster-secret
|
|
|
|
+ - name: RABBITMQ_ERLANG_COOKIE
|
|
|
|
+ valueFrom:
|
|
|
|
+ secretKeyRef:
|
|
|
|
+ key: cookie
|
|
|
|
+ name: rmq-cluster-secret
|
|
|
|
+ - name: K8S_SERVICE_NAME
|
|
|
|
+ value: rmq-cluster
|
|
|
|
+ - name: POD_IP
|
|
|
|
+ valueFrom:
|
|
|
|
+ fieldRef:
|
|
|
|
+ fieldPath: status.podIP
|
|
|
|
+ - name: POD_NAME
|
|
|
|
+ valueFrom:
|
|
|
|
+ fieldRef:
|
|
|
|
+ fieldPath: metadata.name
|
|
|
|
+ - name: POD_NAMESPACE
|
|
|
|
+ valueFrom:
|
|
|
|
+ fieldRef:
|
|
|
|
+ fieldPath: metadata.namespace
|
|
|
|
+ - name: RABBITMQ_USE_LONGNAME
|
|
|
|
+ value: "true"
|
|
|
|
+ - name: RABBITMQ_NODENAME
|
|
|
|
+ value: rabbit@$(POD_NAME).rmq-cluster.$(POD_NAMESPACE).svc.cluster.local
|
|
|
|
+ - name: RABBITMQ_CONFIG_FILE
|
|
|
|
+ value: /var/lib/rabbitmq/rabbitmq.conf
|
|
|
|
+ image: rabbitmq:3.7-management
|
|
|
|
+ imagePullPolicy: IfNotPresent
|
|
|
|
+ livenessProbe:
|
|
|
|
+ exec:
|
|
|
|
+ command:
|
|
|
|
+ - rabbitmqctl
|
|
|
|
+ - status
|
|
|
|
+ initialDelaySeconds: 30
|
|
|
|
+ timeoutSeconds: 10
|
|
|
|
+ name: rabbitmq
|
|
|
|
+ ports:
|
|
|
|
+ - containerPort: 15672
|
|
|
|
+ name: http
|
|
|
|
+ protocol: TCP
|
|
|
|
+ - containerPort: 5672
|
|
|
|
+ name: amqp
|
|
|
|
+ protocol: TCP
|
|
|
|
+ readinessProbe:
|
|
|
|
+ exec:
|
|
|
|
+ command:
|
|
|
|
+ - rabbitmqctl
|
|
|
|
+ - status
|
|
|
|
+ initialDelaySeconds: 10
|
|
|
|
+ timeoutSeconds: 10
|
|
|
|
+ volumeMounts:
|
|
|
|
+ - mountPath: /etc/rabbitmq
|
|
|
|
+ name: config-volume
|
|
|
|
+ readOnly: false
|
|
|
|
+ - mountPath: /var/lib/rabbitmq
|
|
|
|
+ name: rabbitmq-storage
|
|
|
|
+ readOnly: false
|
|
|
|
+ serviceAccountName: rmq-cluster
|
|
|
|
+ terminationGracePeriodSeconds: 30
|
|
|
|
+ volumes:
|
|
|
|
+ - configMap:
|
|
|
|
+ items:
|
|
|
|
+ - key: rabbitmq.conf
|
|
|
|
+ path: rabbitmq.conf
|
|
|
|
+ - key: enabled_plugins
|
|
|
|
+ path: enabled_plugins
|
|
|
|
+ name: rmq-cluster-config
|
|
|
|
+ name: config-volume
|
|
|
|
+ volumeClaimTemplates:
|
|
|
|
+ - metadata:
|
|
|
|
+ name: rabbitmq-storage
|
|
|
|
+ spec:
|
|
|
|
+ accessModes:
|
|
|
|
+ - ReadWriteMany
|
|
|
|
+ storageClassName: "rmq-storage-class"
|
|
|
|
+ resources:
|
|
|
|
+ requests:
|
|
|
|
+ storage: 4Gi
|