--- apiVersion: apps/v1 kind: StatefulSet metadata: name: rabbitmq namespace: default spec: serviceName: rabbitmq replicas: 3 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq spec: serviceAccountName: rabbitmq terminationGracePeriodSeconds: 10 nodeSelector: kubernetes.io/os: linux containers: - name: rabbitmq-k8s image: rabbitmq:3.7-management-alpine volumeMounts: - name: config-volume mountPath: /etc/rabbitmq ports: - name: http protocol: TCP containerPort: 15672 - name: amqp protocol: TCP containerPort: 5672 livenessProbe: exec: command: ["rabbitmq-diagnostics", "status"] initialDelaySeconds: 60 periodSeconds: 60 timeoutSeconds: 15 readinessProbe: exec: command: ["rabbitmq-diagnostics", "status"] initialDelaySeconds: 20 periodSeconds: 60 timeoutSeconds: 10 imagePullPolicy: Always env: - name: MY_POD_NAME valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: RABBITMQ_USE_LONGNAME value: "true" - name: K8S_SERVICE_NAME value: rabbitmq - name: RABBITMQ_NODENAME # yamllint disable rule:line-length value: rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local # yamllint enable rule:line-length - name: K8S_HOSTNAME_SUFFIX value: .$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE).svc.cluster.local - name: RABBITMQ_ERLANG_COOKIE value: "dW5pcXVlLWVybGFuZy1jb29raWU=" volumes: - name: config-volume configMap: name: rabbitmq-config items: - key: rabbitmq.conf path: rabbitmq.conf - key: enabled_plugins path: enabled_plugins