apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: "2026-04-17T01:14:49Z"
  generateName: rabbitmq-neutron-server-
  labels:
    app.kubernetes.io/component: rabbitmq
    app.kubernetes.io/name: rabbitmq-neutron
    app.kubernetes.io/part-of: rabbitmq
    apps.kubernetes.io/pod-index: "0"
    controller-revision-hash: rabbitmq-neutron-server-6cd7bc547f
    statefulset.kubernetes.io/pod-name: rabbitmq-neutron-server-0
  name: rabbitmq-neutron-server-0
  namespace: openstack
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: StatefulSet
    name: rabbitmq-neutron-server
    uid: dbcda201-96b8-42f2-b960-451fc6fab2e4
  resourceVersion: "17197"
  uid: e869c476-f55a-4e96-8035-82d2b81820ac
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: openstack-control-plane
            operator: In
            values:
            - enabled
  automountServiceAccountToken: true
  containers:
  - env:
    - name: MY_POD_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.name
    - name: MY_POD_NAMESPACE
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.namespace
    - name: K8S_SERVICE_NAME
      value: rabbitmq-neutron-nodes
    - name: RABBITMQ_ENABLED_PLUGINS_FILE
      value: /operator/enabled_plugins
    - name: RABBITMQ_USE_LONGNAME
      value: "true"
    - name: RABBITMQ_NODENAME
      value: rabbit@$(MY_POD_NAME).$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE)
    - name: K8S_HOSTNAME_SUFFIX
      value: .$(K8S_SERVICE_NAME).$(MY_POD_NAMESPACE)
    image: harbor.atmosphere.dev/docker.io/library/rabbitmq:4.1.4-management
    imagePullPolicy: IfNotPresent
    lifecycle:
      preStop:
        exec:
          command:
          - /bin/bash
          - -c
          - if [ ! -z "$(cat /etc/pod-info/skipPreStopChecks)" ]; then exit 0; fi;
            rabbitmq-upgrade await_online_quorum_plus_one -t 15 && rabbitmq-upgrade
            await_online_synchronized_mirror -t 15 || true && rabbitmq-upgrade drain
            -t 15
    name: rabbitmq
    ports:
    - containerPort: 4369
      name: epmd
      protocol: TCP
    - containerPort: 5672
      name: amqp
      protocol: TCP
    - containerPort: 15672
      name: management
      protocol: TCP
    - containerPort: 15692
      name: prometheus
      protocol: TCP
    readinessProbe:
      failureThreshold: 3
      initialDelaySeconds: 10
      periodSeconds: 10
      successThreshold: 1
      tcpSocket:
        port: amqp
      timeoutSeconds: 5
    resources:
      requests:
        cpu: 500m
        memory: 1Gi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/lib/rabbitmq/
      name: rabbitmq-erlang-cookie
    - mountPath: /var/lib/rabbitmq/mnesia/
      name: persistence
    - mountPath: /operator
      name: rabbitmq-plugins
    - mountPath: /etc/rabbitmq/conf.d/10-operatorDefaults.conf
      name: rabbitmq-confd
      subPath: operatorDefaults.conf
    - mountPath: /etc/rabbitmq/conf.d/90-userDefinedConfiguration.conf
      name: rabbitmq-confd
      subPath: userDefinedConfiguration.conf
    - mountPath: /etc/pod-info/
      name: pod-info
    - mountPath: /etc/rabbitmq/conf.d/11-default_user.conf
      name: rabbitmq-confd
      subPath: default_user.conf
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-pxrdw
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  hostname: rabbitmq-neutron-server-0
  initContainers:
  - command:
    - sh
    - -c
    - cp /tmp/erlang-cookie-secret/.erlang.cookie /var/lib/rabbitmq/.erlang.cookie
      && chmod 600 /var/lib/rabbitmq/.erlang.cookie ; cp /tmp/rabbitmq-plugins/enabled_plugins
      /operator/enabled_plugins ; echo '[default]' > /var/lib/rabbitmq/.rabbitmqadmin.conf
      && sed -e 's/default_user/username/' -e 's/default_pass/password/' /tmp/default_user.conf
      >> /var/lib/rabbitmq/.rabbitmqadmin.conf && chmod 600 /var/lib/rabbitmq/.rabbitmqadmin.conf
      ; sleep 0
    image: harbor.atmosphere.dev/docker.io/library/rabbitmq:4.1.4-management
    imagePullPolicy: IfNotPresent
    name: setup-container
    resources:
      limits:
        cpu: 20m
        memory: 64Mi
      requests:
        cpu: 20m
        memory: 64Mi
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /tmp/rabbitmq-plugins/
      name: plugins-conf
    - mountPath: /var/lib/rabbitmq/
      name: rabbitmq-erlang-cookie
    - mountPath: /tmp/erlang-cookie-secret/
      name: erlang-cookie-secret
    - mountPath: /operator
      name: rabbitmq-plugins
    - mountPath: /var/lib/rabbitmq/mnesia/
      name: persistence
    - mountPath: /tmp/default_user.conf
      name: rabbitmq-confd
      subPath: default_user.conf
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-pxrdw
      readOnly: true
  nodeName: instance
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext:
    fsGroup: 0
    runAsUser: 999
  serviceAccount: rabbitmq-neutron-server
  serviceAccountName: rabbitmq-neutron-server
  subdomain: rabbitmq-neutron-nodes
  terminationGracePeriodSeconds: 15
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  topologySpreadConstraints:
  - labelSelector:
      matchLabels:
        app.kubernetes.io/name: rabbitmq-neutron
    maxSkew: 1
    topologyKey: topology.kubernetes.io/zone
    whenUnsatisfiable: ScheduleAnyway
  volumes:
  - name: persistence
    persistentVolumeClaim:
      claimName: persistence-rabbitmq-neutron-server-0
  - configMap:
      defaultMode: 420
      name: rabbitmq-neutron-plugins-conf
    name: plugins-conf
  - name: rabbitmq-confd
    projected:
      defaultMode: 420
      sources:
      - configMap:
          items:
          - key: operatorDefaults.conf
            path: operatorDefaults.conf
          - key: userDefinedConfiguration.conf
            path: userDefinedConfiguration.conf
          name: rabbitmq-neutron-server-conf
      - secret:
          items:
          - key: default_user.conf
            path: default_user.conf
          name: rabbitmq-neutron-default-user
  - emptyDir: {}
    name: rabbitmq-erlang-cookie
  - name: erlang-cookie-secret
    secret:
      defaultMode: 420
      secretName: rabbitmq-neutron-erlang-cookie
  - emptyDir: {}
    name: rabbitmq-plugins
  - downwardAPI:
      defaultMode: 420
      items:
      - fieldRef:
          apiVersion: v1
          fieldPath: metadata.labels['skipPreStopChecks']
        path: skipPreStopChecks
    name: pod-info
  - name: kube-api-access-pxrdw
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2026-04-17T01:15:35Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-04-17T01:15:46Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-04-17T01:15:46Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-04-17T01:15:26Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://6683a3dff09fd887e74b26bafad289e16938522161cec6b94cd469f530b390d0
    image: harbor.atmosphere.dev/docker.io/library/rabbitmq:4.1.4-management
    imageID: harbor.atmosphere.dev/docker.io/library/rabbitmq@sha256:294b01e1796a8acede4619f32a1c394fae1f8021e57986ea01aad38dc2a4f502
    lastState: {}
    name: rabbitmq
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-04-17T01:15:36Z"
  hostIP: 199.204.45.246
  initContainerStatuses:
  - containerID: containerd://8be8677eb75f2f96b21da566b7a6eb2f9bf5d38dc145c35441db93569f9c1579
    image: harbor.atmosphere.dev/docker.io/library/rabbitmq:4.1.4-management
    imageID: harbor.atmosphere.dev/docker.io/library/rabbitmq@sha256:294b01e1796a8acede4619f32a1c394fae1f8021e57986ea01aad38dc2a4f502
    lastState: {}
    name: setup-container
    ready: true
    restartCount: 0
    started: false
    state:
      terminated:
        containerID: containerd://8be8677eb75f2f96b21da566b7a6eb2f9bf5d38dc145c35441db93569f9c1579
        exitCode: 0
        finishedAt: "2026-04-17T01:15:30Z"
        reason: Completed
        startedAt: "2026-04-17T01:15:29Z"
  phase: Running
  podIP: 10.0.0.29
  podIPs:
  - ip: 10.0.0.29
  qosClass: Burstable
  startTime: "2026-04-17T01:15:26Z"
