apiVersion: v1 kind: Service metadata: name: rabbitmq-svc namespace: ircs-prod labels: app: rabbitmq app.kubernetes.io/part-of: ircs environment: prod spec: type: ClusterIP selector: app: rabbitmq ports: - name: amqp port: 5672 targetPort: amqp - name: management port: 15672 targetPort: management --- apiVersion: apps/v1 kind: StatefulSet metadata: name: rabbitmq namespace: ircs-prod labels: app: rabbitmq app.kubernetes.io/part-of: ircs environment: prod spec: serviceName: rabbitmq-svc replicas: 1 podManagementPolicy: OrderedReady revisionHistoryLimit: 10 persistentVolumeClaimRetentionPolicy: whenDeleted: Retain whenScaled: Retain updateStrategy: type: RollingUpdate rollingUpdate: partition: 0 maxUnavailable: 1 selector: matchLabels: app: rabbitmq template: metadata: labels: app: rabbitmq app.kubernetes.io/part-of: ircs environment: prod spec: containers: - name: rabbitmq image: rabbitmq:4.1.8-management imagePullPolicy: IfNotPresent ports: - name: amqp containerPort: 5672 - name: management containerPort: 15672 env: - name: RABBITMQ_DEFAULT_USER value: admin - name: RABBITMQ_DEFAULT_PASS valueFrom: secretKeyRef: name: ircs-prod-secrets key: RABBITMQ_PASSWORD startupProbe: exec: command: ["rabbitmq-diagnostics", "-q", "ping"] failureThreshold: 30 periodSeconds: 10 timeoutSeconds: 10 readinessProbe: exec: command: ["rabbitmq-diagnostics", "-q", "ping"] periodSeconds: 10 timeoutSeconds: 10 livenessProbe: exec: command: ["rabbitmq-diagnostics", "-q", "ping"] periodSeconds: 30 timeoutSeconds: 10 resources: requests: cpu: 100m memory: 256Mi limits: cpu: 500m memory: 768Mi volumeMounts: - name: rabbitmq-data mountPath: /var/lib/rabbitmq volumeClaimTemplates: - metadata: name: rabbitmq-data labels: app: rabbitmq app.kubernetes.io/part-of: ircs environment: prod spec: accessModes: ["ReadWriteOnce"] volumeMode: Filesystem resources: requests: storage: 1Gi