apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubectl.kubernetes.io/default-container: haproxy
    percona.com/configuration-hash: 96d48f90052f459e51a7d9c5ea2d2024
  creationTimestamp: "2026-10-26T19:20:54Z"
  generateName: percona-xtradb-haproxy-
  labels:
    app.kubernetes.io/component: haproxy
    app.kubernetes.io/instance: percona-xtradb
    app.kubernetes.io/managed-by: percona-xtradb-cluster-operator
    app.kubernetes.io/name: percona-xtradb-cluster
    app.kubernetes.io/part-of: percona-xtradb-cluster
    apps.kubernetes.io/pod-index: "0"
    controller-revision-hash: percona-xtradb-haproxy-5df875d4b5
    statefulset.kubernetes.io/pod-name: percona-xtradb-haproxy-0
  name: percona-xtradb-haproxy-0
  namespace: openstack
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: StatefulSet
    name: percona-xtradb-haproxy
    uid: 20245b9e-f666-4c85-a923-ed050b1b1392
  resourceVersion: "2405"
  uid: dcf03e99-0754-45e7-a08c-35ad51e2f373
spec:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchLabels:
            app.kubernetes.io/component: haproxy
            app.kubernetes.io/instance: percona-xtradb
            app.kubernetes.io/managed-by: percona-xtradb-cluster-operator
            app.kubernetes.io/name: percona-xtradb-cluster
            app.kubernetes.io/part-of: percona-xtradb-cluster
        topologyKey: kubernetes.io/hostname
  containers:
  - args:
    - haproxy
    command:
    - /opt/percona/haproxy-entrypoint.sh
    env:
    - name: PXC_SERVICE
      value: percona-xtradb-pxc
    - name: LIVENESS_CHECK_TIMEOUT
      value: "5"
    - name: READINESS_CHECK_TIMEOUT
      value: "1"
    envFrom:
    - secretRef:
        name: percona-xtradb-env-vars-haproxy
        optional: true
    image: harbor.atmosphere.dev/docker.io/percona/haproxy:2.8.14@sha256:6de8c402d83b88dae7403c05183fd75100774defa887c05a57ec04bc25be2305
    imagePullPolicy: Always
    livenessProbe:
      exec:
        command:
        - /opt/percona/haproxy_liveness_check.sh
      failureThreshold: 4
      initialDelaySeconds: 60
      periodSeconds: 30
      successThreshold: 1
      timeoutSeconds: 5
    name: haproxy
    ports:
    - containerPort: 3306
      name: mysql
      protocol: TCP
    - containerPort: 3307
      name: mysql-replicas
      protocol: TCP
    - containerPort: 3309
      name: proxy-protocol
      protocol: TCP
    - containerPort: 33062
      name: mysql-admin
      protocol: TCP
    - containerPort: 33060
      name: mysqlx
      protocol: TCP
    - containerPort: 8404
      name: stats
      protocol: TCP
    readinessProbe:
      exec:
        command:
        - /opt/percona/haproxy_readiness_check.sh
      failureThreshold: 3
      initialDelaySeconds: 15
      periodSeconds: 5
      successThreshold: 1
      timeoutSeconds: 1
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/haproxy-custom/
      name: haproxy-custom
    - mountPath: /etc/haproxy/pxc
      name: haproxy-auto
    - mountPath: /opt/percona
      name: bin
    - mountPath: /etc/mysql/mysql-users-secret
      name: mysql-users-secret-file
    - mountPath: /etc/mysql/haproxy-env-secret
      name: percona-xtradb-env-vars-haproxy
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-shgz2
      readOnly: true
  - args:
    - /opt/percona/peer-list
    - -on-change=/opt/percona/haproxy_add_pxc_nodes.sh
    - -service=$(PXC_SERVICE)
    command:
    - /opt/percona/haproxy-entrypoint.sh
    env:
    - name: PXC_SERVICE
      value: percona-xtradb-pxc
    - name: REPLICAS_SVC_ONLY_READERS
      value: "false"
    envFrom:
    - secretRef:
        name: percona-xtradb-env-vars-haproxy
        optional: true
    image: harbor.atmosphere.dev/docker.io/percona/haproxy:2.8.14@sha256:6de8c402d83b88dae7403c05183fd75100774defa887c05a57ec04bc25be2305
    imagePullPolicy: Always
    name: pxc-monit
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /etc/haproxy-custom/
      name: haproxy-custom
    - mountPath: /etc/haproxy/pxc
      name: haproxy-auto
    - mountPath: /etc/mysql/mysql-users-secret
      name: mysql-users-secret-file
    - mountPath: /etc/mysql/haproxy-env-secret
      name: percona-xtradb-env-vars-haproxy
    - mountPath: /opt/percona
      name: bin
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-shgz2
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  hostname: percona-xtradb-haproxy-0
  initContainers:
  - command:
    - /pxc-init-entrypoint.sh
    image: harbor.atmosphere.dev/docker.io/percona/percona-xtradb-cluster-operator:1.17.0@sha256:96a78ea3895b9d1ecab62ba64c4bb2c79b1582cde4f27ef8f0ec9def458eb2df
    imagePullPolicy: Always
    name: pxc-init
    resources:
      limits:
        cpu: 50m
        memory: 50M
      requests:
        cpu: 50m
        memory: 50M
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/lib/mysql
      name: bin
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-shgz2
      readOnly: true
  - command:
    - /haproxy-init-entrypoint.sh
    image: harbor.atmosphere.dev/docker.io/percona/percona-xtradb-cluster-operator:1.17.0@sha256:96a78ea3895b9d1ecab62ba64c4bb2c79b1582cde4f27ef8f0ec9def458eb2df
    imagePullPolicy: Always
    name: haproxy-init
    resources:
      limits:
        cpu: 50m
        memory: 50M
      requests:
        cpu: 50m
        memory: 50M
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /opt/percona
      name: bin
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-shgz2
      readOnly: true
  nodeName: instance
  nodeSelector:
    openstack-control-plane: enabled
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: default
  serviceAccountName: default
  subdomain: percona-xtradb-haproxy
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - configMap:
      defaultMode: 420
      name: percona-xtradb-haproxy
      optional: true
    name: haproxy-custom
  - emptyDir: {}
    name: haproxy-auto
  - name: mysql-users-secret-file
    secret:
      defaultMode: 420
      optional: false
      secretName: internal-percona-xtradb
  - name: percona-xtradb-env-vars-haproxy
    secret:
      defaultMode: 420
      optional: true
      secretName: percona-xtradb-env-vars-haproxy
  - emptyDir: {}
    name: bin
  - name: kube-api-access-shgz2
    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-10-26T19:21:03Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2026-10-26T19:22:20Z"
    status: "True"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2026-10-26T19:22:20Z"
    status: "True"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2026-10-26T19:20:54Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: containerd://45961d025456ffea810bea0166072507771e822a118044abec810e86dbc4021c
    image: sha256:b0d8fd1a563e416675fd4b548d17d57860a9293162e3d1d8e339195fe985b81c
    imageID: harbor.atmosphere.dev/docker.io/percona/haproxy@sha256:6de8c402d83b88dae7403c05183fd75100774defa887c05a57ec04bc25be2305
    lastState: {}
    name: haproxy
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-10-26T19:21:09Z"
  - containerID: containerd://9dc3da43e52c60b6ec3b9b3c8335beef1f9a426b69a2393dc52f9c444a90396f
    image: sha256:b0d8fd1a563e416675fd4b548d17d57860a9293162e3d1d8e339195fe985b81c
    imageID: harbor.atmosphere.dev/docker.io/percona/haproxy@sha256:6de8c402d83b88dae7403c05183fd75100774defa887c05a57ec04bc25be2305
    lastState: {}
    name: pxc-monit
    ready: true
    restartCount: 0
    started: true
    state:
      running:
        startedAt: "2026-10-26T19:21:16Z"
  hostIP: 162.253.55.239
  initContainerStatuses:
  - containerID: containerd://8dec2dda655d53a3587aaf1b890aae025d636c1bff043059958df7b0aa177b7b
    image: sha256:96a5bab0712db7930ffda49ab3cefa9aa30c09081d57223aeb8b28c0ba6d8712
    imageID: harbor.atmosphere.dev/docker.io/percona/percona-xtradb-cluster-operator@sha256:96a78ea3895b9d1ecab62ba64c4bb2c79b1582cde4f27ef8f0ec9def458eb2df
    lastState: {}
    name: pxc-init
    ready: true
    restartCount: 0
    started: false
    state:
      terminated:
        containerID: containerd://8dec2dda655d53a3587aaf1b890aae025d636c1bff043059958df7b0aa177b7b
        exitCode: 0
        finishedAt: "2026-10-26T19:21:00Z"
        reason: Completed
        startedAt: "2026-10-26T19:20:58Z"
  - containerID: containerd://579b87da347b37a80851e795b286f2279427ce19dec8b5bb490bc6cbe2d80ce9
    image: sha256:96a5bab0712db7930ffda49ab3cefa9aa30c09081d57223aeb8b28c0ba6d8712
    imageID: harbor.atmosphere.dev/docker.io/percona/percona-xtradb-cluster-operator@sha256:96a78ea3895b9d1ecab62ba64c4bb2c79b1582cde4f27ef8f0ec9def458eb2df
    lastState: {}
    name: haproxy-init
    ready: true
    restartCount: 0
    started: false
    state:
      terminated:
        containerID: containerd://579b87da347b37a80851e795b286f2279427ce19dec8b5bb490bc6cbe2d80ce9
        exitCode: 0
        finishedAt: "2026-10-26T19:21:03Z"
        reason: Completed
        startedAt: "2026-10-26T19:21:01Z"
  phase: Running
  podIP: 10.0.0.108
  podIPs:
  - ip: 10.0.0.108
  qosClass: Burstable
  startTime: "2026-10-26T19:20:54Z"
