kubeblocks icon indicating copy to clipboard operation
kubeblocks copied to clipboard

[BUG]orioledb pod restart after upgrade kb from 0.7.2 to 0.8

Open ahjing99 opened this issue 11 months ago • 2 comments

  1. Install kb 0.7.2, create cluster
  2. upgrade kb to 0.8.2-beta.10
  3. orioledb restart
orioledb-tfvbyd-orioledb-0                                 0/5     ContainerCreating   0              5s
orioledb-tfvbyd-orioledb-1                                 5/5     Running             0              77s

➜  ~ k get rsm orioledb-tfvbyd-orioledb -o yaml
apiVersion: workloads.kubeblocks.io/v1alpha1
kind: ReplicatedStateMachine
metadata:
  annotations:
    config.kubeblocks.io/tpl-agamotto-configuration: orioledb-tfvbyd-orioledb-agamotto-configuration
    config.kubeblocks.io/tpl-etcd-env: orioledb-tfvbyd-orioledb-etcd-env
    config.kubeblocks.io/tpl-orioledb-configuration: orioledb-tfvbyd-orioledb-orioledb-configuration
    config.kubeblocks.io/tpl-orioledb-custom-metrics: orioledb-tfvbyd-orioledb-orioledb-custom-metrics
    config.kubeblocks.io/tpl-orioledb-pgbouncer-configuration: orioledb-tfvbyd-orioledb-orioledb-pgbouncer-configuration
    config.kubeblocks.io/tpl-orioledb-scripts: orioledb-tfvbyd-orioledb-orioledb-scripts
    kubeblocks.io/generation: "1"
    monitor.kubeblocks.io/agamotto.headless.rsm: "false"
    monitor.kubeblocks.io/scrape.headless.rsm: "false"
  creationTimestamp: "2024-02-28T02:56:02Z"
  finalizers:
  - cluster.kubeblocks.io/finalizer
  - rsm.workloads.kubeblocks.io/finalizer
  generation: 2
  labels:
    app.kubernetes.io/component: orioledb
    app.kubernetes.io/instance: orioledb-tfvbyd
    app.kubernetes.io/managed-by: kubeblocks
    app.kubernetes.io/name: orioledb
    apps.kubeblocks.io/component-name: orioledb
  name: orioledb-tfvbyd-orioledb
  namespace: default
  ownerReferences:
  - apiVersion: apps.kubeblocks.io/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: Cluster
    name: orioledb-tfvbyd
    uid: cc0f6d02-47a3-4778-8b15-e620f2139496
  resourceVersion: "523989"
  uid: 41260ba5-a9f9-416e-8268-e7144696f2f8
spec:
  credential:
    password:
      valueFrom:
        secretKeyRef:
          key: password
          name: orioledb-tfvbyd-conn-credential
    username:
      valueFrom:
        secretKeyRef:
          key: username
          name: orioledb-tfvbyd-conn-credential
  memberUpdateStrategy: Serial
  podManagementPolicy: Parallel
  replicas: 2
  roleProbe:
    builtinHandlerName: postgresql
    failureThreshold: 2
    initialDelaySeconds: 0
    periodSeconds: 1
    roleUpdateMechanism: DirectAPIServerEventUpdate
    successThreshold: 1
    timeoutSeconds: 1
  roles:
  - accessMode: ReadWrite
    canVote: true
    isLeader: true
    name: primary
  - accessMode: Readonly
    canVote: true
    isLeader: false
    name: secondary
  rsmTransformPolicy: ToSts
  selector:
    matchLabels:
      app.kubernetes.io/instance: orioledb-tfvbyd
      app.kubernetes.io/managed-by: kubeblocks
      app.kubernetes.io/name: orioledb
      apps.kubeblocks.io/component-name: orioledb
  service:
    metadata:
      labels:
        app.kubernetes.io/component: orioledb
        app.kubernetes.io/instance: orioledb-tfvbyd
        app.kubernetes.io/managed-by: kubeblocks
        app.kubernetes.io/name: orioledb
        apps.kubeblocks.io/component-name: orioledb
    spec:
      ports:
      - name: tcp-orioledb
        port: 5432
        protocol: TCP
        targetPort: tcp-orioledb
      - name: tcp-pgbouncer
        port: 6432
        protocol: TCP
        targetPort: tcp-pgbouncer
      selector:
        app.kubernetes.io/instance: orioledb-tfvbyd
        app.kubernetes.io/managed-by: kubeblocks
        apps.kubeblocks.io/component-name: orioledb
      type: ClusterIP
    status:
      loadBalancer: {}
  serviceName: orioledb-tfvbyd-orioledb-headless
  template:
    metadata:
      labels:
        app.kubernetes.io/component: orioledb
        app.kubernetes.io/instance: orioledb-tfvbyd
        app.kubernetes.io/managed-by: kubeblocks
        app.kubernetes.io/name: orioledb
        app.kubernetes.io/version: orioledb-beta1
        apps.kubeblocks.io/component-name: orioledb
        apps.kubeblocks.io/workload-type: Replication
    spec:
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - preference:
              matchExpressions:
              - key: kb-data
                operator: In
                values:
                - "true"
            weight: 100
        podAntiAffinity: {}
      containers:
      - command:
        - bin/bash
        - -c
        - /kb-scripts/setup.sh
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: PGROOT
          value: /home/postgres/pgdata/pgroot
        - name: SCOPE
          value: $(KB_CLUSTER_NAME)-$(KB_COMP_NAME)-patroni$(KB_CLUSTER_UID_POSTFIX_8)
        - name: KUBERNETES_SCOPE_LABEL
          value: apps.kubeblocks.postgres.patroni/scope
        - name: KUBERNETES_ROLE_LABEL
          value: apps.kubeblocks.postgres.patroni/role
        - name: RESTORE_DATA_DIR
          value: /home/postgres/pgdata/kb_restore
        - name: KB_PG_CONFIG_PATH
          value: /home/postgres/conf/postgresql.conf
        - name: ALLOW_NOSSL
          value: "true"
        - name: PGROOT
          value: /home/postgres/pgdata/pgroot
        - name: PGDATA
          value: /home/postgres/pgdata/pgroot/data
        - name: POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: PGUSER_SUPERUSER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGPASSWORD_SUPERUSER
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGUSER_ADMIN
          value: superadmin
        - name: PGPASSWORD_ADMIN
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGUSER_STANDBY
          value: standby
        - name: PGPASSWORD_STANDBY
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGUSER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: POSTGRES_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/orioledb:beta1
        imagePullPolicy: IfNotPresent
        name: postgresql
        ports:
        - containerPort: 5432
          name: tcp-orioledb
          protocol: TCP
        - containerPort: 8008
          name: patroni
          protocol: TCP
        readinessProbe:
          exec:
            command:
            - /bin/sh
            - -c
            - -ee
            - |
              exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432
              [ -f /postgresql/tmp/.initialized ] || [ -f /postgresql/.initialized ]
          failureThreshold: 3
          initialDelaySeconds: 10
          periodSeconds: 30
          successThreshold: 1
          timeoutSeconds: 5
        resources:
          limits:
            cpu: 100m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 512Mi
        securityContext:
          runAsUser: 0
        volumeMounts:
        - mountPath: /dev/shm
          name: dshm
        - mountPath: /home/postgres/pgdata
          name: data
        - mountPath: /home/postgres/conf
          name: postgresql-config
        - mountPath: /kb-scripts
          name: scripts
        - mountPath: /kb-podinfo
          name: pod-info
        - mountPath: /dependency
          name: patroni-dependency
      - command:
        - /kb-scripts/pgbouncer_setup.sh
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: PGBOUNCER_AUTH_TYPE
          value: md5
        - name: POSTGRESQL_USERNAME
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: POSTGRESQL_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: POSTGRESQL_PORT
          value: "5432"
        - name: POSTGRESQL_HOST
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: PGBOUNCER_PORT
          value: "6432"
        - name: PGBOUNCER_BIND_ADDRESS
          value: 0.0.0.0
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/pgbouncer:1.19.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: tcp-pgbouncer
          timeoutSeconds: 5
        name: pgbouncer
        ports:
        - containerPort: 6432
          name: tcp-pgbouncer
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: tcp-pgbouncer
          timeoutSeconds: 5
        resources:
          limits:
            cpu: "0"
            memory: "0"
        securityContext:
          runAsUser: 0
        volumeMounts:
        - mountPath: /home/pgbouncer/conf
          name: pgbouncer-config
        - mountPath: /kb-scripts
          name: scripts
      - command:
        - /bin/agamotto
        - --config=/opt/agamotto/agamotto-config.yaml
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: ENDPOINT
          value: 127.0.0.1:5432
        - name: DATA_SOURCE_PASS
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: DATA_SOURCE_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/agamotto:0.1.0-beta.5
        imagePullPolicy: IfNotPresent
        name: metrics
        ports:
        - containerPort: 9187
          name: http-metrics
          protocol: TCP
        resources:
          limits:
            cpu: "0"
            memory: "0"
        securityContext:
          runAsUser: 0
        volumeMounts:
        - mountPath: /opt/conf
          name: postgresql-custom-metrics
        - mountPath: /opt/agamotto
          name: agamotto-configuration
      - command:
        - lorry
        - --port
        - "3501"
        - --grpcport
        - "50001"
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: KB_SERVICE_PORT
          value: "5432"
        - name: KB_DATA_PATH
          value: /home/postgres/pgdata
        - name: KB_BUILTIN_HANDLER
          value: postgresql
        - name: KB_SERVICE_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
        - name: KB_SERVICE_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks-tools:0.8.2-beta.10
        imagePullPolicy: IfNotPresent
        name: kb-checkrole
        ports:
        - containerPort: 3501
          name: lorry-http-port
          protocol: TCP
        - containerPort: 50001
          name: lorry-grpc-port
          protocol: TCP
        readinessProbe:
          failureThreshold: 2
          httpGet:
            path: /v1.0/checkrole
            port: 3501
          periodSeconds: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: "0"
            memory: "0"
        startupProbe:
          tcpSocket:
            port: 3501
        volumeMounts:
        - mountPath: /home/postgres/pgdata
          name: data
      - args:
        - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$(TOOLS_PATH)
        - /bin/reloader
        - --log-level
        - info
        - --volume-dir
        - /home/postgres/conf
        - --operator-update-enable
        - --tcp
        - "9901"
        - --config
        - /opt/config-manager/config-manager.yaml
        command:
        - env
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: CONFIG_MANAGER_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: DB_TYPE
          value: postgresql
        - name: TOOLS_PATH
          value: /opt/kb-tools/reload/orioledb-configuration:/opt/config-manager
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks-tools:0.8.2-beta.10
        imagePullPolicy: IfNotPresent
        name: config-manager
        resources:
          limits:
            cpu: "0"
            memory: "0"
        volumeMounts:
        - mountPath: /home/postgres/conf
          name: postgresql-config
        - mountPath: /opt/kb-tools/reload/orioledb-configuration
          name: cm-script-orioledb-configuration
        - mountPath: /opt/config-manager
          name: config-manager-config
      securityContext:
        fsGroup: 103
        runAsGroup: 103
        runAsUser: 0
      serviceAccountName: kb-orioledb-tfvbyd
      tolerations:
      - effect: NoSchedule
        key: kb-data
        operator: Equal
        value: "true"
      volumes:
      - emptyDir:
          medium: Memory
          sizeLimit: 512Mi
        name: dshm
      - downwardAPI:
          items:
          - fieldRef:
              fieldPath: metadata.labels['kubeblocks.io/role']
            path: pod-role
          - fieldRef:
              fieldPath: metadata.annotations['rs.apps.kubeblocks.io/primary']
            path: primary-pod
          - fieldRef:
              fieldPath: metadata.annotations['apps.kubeblocks.io/component-replicas']
            path: component-replicas
        name: pod-info
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-agamotto-configuration
        name: agamotto-configuration
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-etcd-env
        name: patroni-dependency
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-configuration
        name: postgresql-config
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-custom-metrics
        name: postgresql-custom-metrics
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-pgbouncer-configuration
        name: pgbouncer-config
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-scripts
        name: scripts
      - configMap:
          defaultMode: 493
          name: sidecar-orioledb-patroni-reload-script-orioledb-tfvbyd
        name: cm-script-orioledb-configuration
      - configMap:
          defaultMode: 493
          name: sidecar-orioledb-tfvbyd-orioledb-config-manager-config
        name: config-manager-config
      - emptyDir: {}
        name: data
  updateStrategy:
    type: OnDelete
  volumeClaimTemplates:
  - metadata:
      labels:
        apps.kubeblocks.io/vct-name: data
        kubeblocks.io/volume-type: data
      name: data
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
    status: {}
status:
  availableReplicas: 2
  collisionCount: 0
  currentGeneration: 2
  currentRevision: orioledb-tfvbyd-orioledb-6c998b585d
  initReplicas: 2
  membersStatus:
  - podName: orioledb-tfvbyd-orioledb-0
    readyWithoutPrimary: false
    role:
      accessMode: ReadWrite
      canVote: true
      isLeader: true
      name: primary
  - podName: orioledb-tfvbyd-orioledb-1
    readyWithoutPrimary: false
    role:
      accessMode: Readonly
      canVote: true
      isLeader: false
      name: secondary
  observedGeneration: 2
  readyInitReplicas: 2
  readyReplicas: 2
  replicas: 2
  updateRevision: orioledb-tfvbyd-orioledb-d9697c668
  updatedReplicas: 2

➜  ~ k get sts orioledb-tfvbyd-orioledb -o yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations:
    config.kubeblocks.io/tpl-agamotto-configuration: orioledb-tfvbyd-orioledb-agamotto-configuration
    config.kubeblocks.io/tpl-etcd-env: orioledb-tfvbyd-orioledb-etcd-env
    config.kubeblocks.io/tpl-orioledb-configuration: orioledb-tfvbyd-orioledb-orioledb-configuration
    config.kubeblocks.io/tpl-orioledb-custom-metrics: orioledb-tfvbyd-orioledb-orioledb-custom-metrics
    config.kubeblocks.io/tpl-orioledb-pgbouncer-configuration: orioledb-tfvbyd-orioledb-orioledb-pgbouncer-configuration
    config.kubeblocks.io/tpl-orioledb-scripts: orioledb-tfvbyd-orioledb-orioledb-scripts
    kubeblocks.io/generation: "1"
  creationTimestamp: "2024-02-28T02:56:03Z"
  finalizers:
  - cluster.kubeblocks.io/finalizer
  generation: 2
  labels:
    app.kubernetes.io/component: orioledb
    app.kubernetes.io/instance: orioledb-tfvbyd
    app.kubernetes.io/managed-by: kubeblocks
    app.kubernetes.io/name: orioledb
    apps.kubeblocks.io/component-name: orioledb
    rsm.workloads.kubeblocks.io/controller-generation: "2"
  name: orioledb-tfvbyd-orioledb
  namespace: default
  ownerReferences:
  - apiVersion: workloads.kubeblocks.io/v1alpha1
    blockOwnerDeletion: true
    controller: true
    kind: ReplicatedStateMachine
    name: orioledb-tfvbyd-orioledb
    uid: 41260ba5-a9f9-416e-8268-e7144696f2f8
  resourceVersion: "523988"
  uid: 06ee599f-4485-4ae9-ba85-47a26c57b0ce
spec:
  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Retain
  podManagementPolicy: Parallel
  replicas: 2
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app.kubernetes.io/instance: orioledb-tfvbyd
      app.kubernetes.io/managed-by: kubeblocks
      app.kubernetes.io/name: orioledb
      apps.kubeblocks.io/component-name: orioledb
  serviceName: orioledb-tfvbyd-orioledb-headless
  template:
    metadata:
      creationTimestamp: null
      labels:
        app.kubernetes.io/component: orioledb
        app.kubernetes.io/instance: orioledb-tfvbyd
        app.kubernetes.io/managed-by: kubeblocks
        app.kubernetes.io/name: orioledb
        app.kubernetes.io/version: orioledb-beta1
        apps.kubeblocks.io/component-name: orioledb
        apps.kubeblocks.io/workload-type: Replication
    spec:
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - preference:
              matchExpressions:
              - key: kb-data
                operator: In
                values:
                - "true"
            weight: 100
        podAntiAffinity: {}
      containers:
      - command:
        - bin/bash
        - -c
        - /kb-scripts/setup.sh
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: PGROOT
          value: /home/postgres/pgdata/pgroot
        - name: SCOPE
          value: $(KB_CLUSTER_NAME)-$(KB_COMP_NAME)-patroni$(KB_CLUSTER_UID_POSTFIX_8)
        - name: KUBERNETES_SCOPE_LABEL
          value: apps.kubeblocks.postgres.patroni/scope
        - name: KUBERNETES_ROLE_LABEL
          value: apps.kubeblocks.postgres.patroni/role
        - name: RESTORE_DATA_DIR
          value: /home/postgres/pgdata/kb_restore
        - name: KB_PG_CONFIG_PATH
          value: /home/postgres/conf/postgresql.conf
        - name: ALLOW_NOSSL
          value: "true"
        - name: PGROOT
          value: /home/postgres/pgdata/pgroot
        - name: PGDATA
          value: /home/postgres/pgdata/pgroot/data
        - name: POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: PGUSER_SUPERUSER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGPASSWORD_SUPERUSER
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGUSER_ADMIN
          value: superadmin
        - name: PGPASSWORD_ADMIN
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGUSER_STANDBY
          value: standby
        - name: PGPASSWORD_STANDBY
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: PGUSER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: POSTGRES_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-rsm-env
            optional: false
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/orioledb:beta1
        imagePullPolicy: IfNotPresent
        name: postgresql
        ports:
        - containerPort: 5432
          name: tcp-orioledb
          protocol: TCP
        - containerPort: 8008
          name: patroni
          protocol: TCP
        readinessProbe:
          exec:
            command:
            - /bin/sh
            - -c
            - -ee
            - |
              exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432
              [ -f /postgresql/tmp/.initialized ] || [ -f /postgresql/.initialized ]
          failureThreshold: 3
          initialDelaySeconds: 10
          periodSeconds: 30
          successThreshold: 1
          timeoutSeconds: 5
        resources:
          limits:
            cpu: 100m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 512Mi
        securityContext:
          runAsUser: 0
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /dev/shm
          name: dshm
        - mountPath: /home/postgres/pgdata
          name: data
        - mountPath: /home/postgres/conf
          name: postgresql-config
        - mountPath: /kb-scripts
          name: scripts
        - mountPath: /kb-podinfo
          name: pod-info
        - mountPath: /dependency
          name: patroni-dependency
      - command:
        - /kb-scripts/pgbouncer_setup.sh
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: PGBOUNCER_AUTH_TYPE
          value: md5
        - name: POSTGRESQL_USERNAME
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: POSTGRESQL_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: POSTGRESQL_PORT
          value: "5432"
        - name: POSTGRESQL_HOST
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: PGBOUNCER_PORT
          value: "6432"
        - name: PGBOUNCER_BIND_ADDRESS
          value: 0.0.0.0
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-rsm-env
            optional: false
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/pgbouncer:1.19.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: tcp-pgbouncer
          timeoutSeconds: 5
        name: pgbouncer
        ports:
        - containerPort: 6432
          name: tcp-pgbouncer
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: tcp-pgbouncer
          timeoutSeconds: 5
        resources:
          limits:
            cpu: "0"
            memory: "0"
        securityContext:
          runAsUser: 0
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /home/pgbouncer/conf
          name: pgbouncer-config
        - mountPath: /kb-scripts
          name: scripts
      - command:
        - /bin/agamotto
        - --config=/opt/agamotto/agamotto-config.yaml
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: ENDPOINT
          value: 127.0.0.1:5432
        - name: DATA_SOURCE_PASS
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
              optional: false
        - name: DATA_SOURCE_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
              optional: false
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-rsm-env
            optional: false
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/agamotto:0.1.0-beta.5
        imagePullPolicy: IfNotPresent
        name: metrics
        ports:
        - containerPort: 9187
          name: http-metrics
          protocol: TCP
        resources:
          limits:
            cpu: "0"
            memory: "0"
        securityContext:
          runAsUser: 0
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /opt/conf
          name: postgresql-custom-metrics
        - mountPath: /opt/agamotto
          name: agamotto-configuration
      - command:
        - lorry
        - --port
        - "3501"
        - --grpcport
        - "50001"
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: KB_SERVICE_PORT
          value: "5432"
        - name: KB_DATA_PATH
          value: /home/postgres/pgdata
        - name: KB_BUILTIN_HANDLER
          value: postgresql
        - name: KB_SERVICE_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: orioledb-tfvbyd-conn-credential
        - name: KB_SERVICE_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: orioledb-tfvbyd-conn-credential
        - name: KB_RSM_ACTION_SVC_LIST
          value: "null"
        - name: KB_RSM_SERVICE_PORT
          value: "5432"
        - name: KB_RSM_ROLE_UPDATE_MECHANISM
          value: DirectAPIServerEventUpdate
        - name: KB_RSM_ROLE_PROBE_TIMEOUT
          value: "1"
        - name: KB_SERVICE_CHARACTER_TYPE
          value: postgresql
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-rsm-env
            optional: false
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks-tools:0.8.2-beta.10
        imagePullPolicy: IfNotPresent
        name: kb-checkrole
        ports:
        - containerPort: 3501
          name: lorry-http-port
          protocol: TCP
        - containerPort: 50001
          name: lorry-grpc-port
          protocol: TCP
        readinessProbe:
          failureThreshold: 2
          httpGet:
            path: /v1.0/checkrole
            port: 3501
            scheme: HTTP
          periodSeconds: 1
          successThreshold: 1
          timeoutSeconds: 1
        resources:
          limits:
            cpu: "0"
            memory: "0"
        startupProbe:
          failureThreshold: 3
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 3501
          timeoutSeconds: 1
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /home/postgres/pgdata
          name: data
      - args:
        - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$(TOOLS_PATH)
        - /bin/reloader
        - --log-level
        - info
        - --volume-dir
        - /home/postgres/conf
        - --operator-update-enable
        - --tcp
        - "9901"
        - --config
        - /opt/config-manager/config-manager.yaml
        command:
        - env
        env:
        - name: KB_POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: KB_POD_UID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.uid
        - name: KB_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: KB_SA_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.serviceAccountName
        - name: KB_NODENAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: KB_HOST_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_POD_IPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_HOSTIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.hostIP
        - name: KB_PODIP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KB_PODIPS
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIPs
        - name: KB_CLUSTER_NAME
          value: orioledb-tfvbyd
        - name: KB_COMP_NAME
          value: orioledb
        - name: KB_CLUSTER_COMP_NAME
          value: orioledb-tfvbyd-orioledb
        - name: KB_CLUSTER_UID_POSTFIX_8
          value: f2139496
        - name: KB_POD_FQDN
          value: $(KB_POD_NAME).$(KB_CLUSTER_COMP_NAME)-headless.$(KB_NAMESPACE).svc
        - name: CONFIG_MANAGER_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: DB_TYPE
          value: postgresql
        - name: TOOLS_PATH
          value: /opt/kb-tools/reload/orioledb-configuration:/opt/config-manager
        envFrom:
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-env
        - configMapRef:
            name: orioledb-tfvbyd-orioledb-rsm-env
            optional: false
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/kubeblocks-tools:0.8.2-beta.10
        imagePullPolicy: IfNotPresent
        name: config-manager
        resources:
          limits:
            cpu: "0"
            memory: "0"
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /home/postgres/conf
          name: postgresql-config
        - mountPath: /opt/kb-tools/reload/orioledb-configuration
          name: cm-script-orioledb-configuration
        - mountPath: /opt/config-manager
          name: config-manager-config
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext:
        fsGroup: 103
        runAsGroup: 103
        runAsUser: 0
      serviceAccount: kb-orioledb-tfvbyd
      serviceAccountName: kb-orioledb-tfvbyd
      terminationGracePeriodSeconds: 30
      tolerations:
      - effect: NoSchedule
        key: kb-data
        operator: Equal
        value: "true"
      volumes:
      - emptyDir:
          medium: Memory
          sizeLimit: 512Mi
        name: dshm
      - downwardAPI:
          defaultMode: 420
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.labels['kubeblocks.io/role']
            path: pod-role
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.annotations['rs.apps.kubeblocks.io/primary']
            path: primary-pod
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.annotations['apps.kubeblocks.io/component-replicas']
            path: component-replicas
        name: pod-info
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-agamotto-configuration
        name: agamotto-configuration
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-etcd-env
        name: patroni-dependency
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-configuration
        name: postgresql-config
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-custom-metrics
        name: postgresql-custom-metrics
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-pgbouncer-configuration
        name: pgbouncer-config
      - configMap:
          defaultMode: 511
          name: orioledb-tfvbyd-orioledb-orioledb-scripts
        name: scripts
      - configMap:
          defaultMode: 493
          name: sidecar-orioledb-patroni-reload-script-orioledb-tfvbyd
        name: cm-script-orioledb-configuration
      - configMap:
          defaultMode: 493
          name: sidecar-orioledb-tfvbyd-orioledb-config-manager-config
        name: config-manager-config
      - emptyDir: {}
        name: data
  updateStrategy:
    type: OnDelete
  volumeClaimTemplates:
  - apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      creationTimestamp: null
      labels:
        apps.kubeblocks.io/vct-name: data
        kubeblocks.io/volume-type: data
      name: data
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      volumeMode: Filesystem
    status:
      phase: Pending
status:
  availableReplicas: 2
  collisionCount: 0
  currentRevision: orioledb-tfvbyd-orioledb-6c998b585d
  observedGeneration: 2
  readyReplicas: 2
  replicas: 2
  updateRevision: orioledb-tfvbyd-orioledb-d9697c668
  updatedReplicas: 2


ahjing99 avatar Feb 28 '24 04:02 ahjing99

➜  ~ k get cd orioledb -o yaml
apiVersion: apps.kubeblocks.io/v1alpha1
kind: ClusterDefinition
metadata:
  annotations:
    meta.helm.sh/release-name: kb-addon-orioledb
    meta.helm.sh/release-namespace: kb-system
  creationTimestamp: "2024-02-28T02:55:23Z"
  finalizers:
  - clusterdefinition.kubeblocks.io/finalizer
  generation: 2
  labels:
    app.kubernetes.io/instance: kb-addon-orioledb
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: orioledb
    app.kubernetes.io/version: 14.7.2-beta1
    config.kubeblocks.io/constraints-orioledb-cc: orioledb-cc
    config.kubeblocks.io/tpl-agamotto-configuration: orioledb-agamotto-configuration
    config.kubeblocks.io/tpl-etcd-env: etcd-env
    config.kubeblocks.io/tpl-orioledb-configuration: orioledb-configuration
    config.kubeblocks.io/tpl-orioledb-custom-metrics: orioledb-custom-metrics
    config.kubeblocks.io/tpl-orioledb-pgbouncer-configuration: orioledb-pgbouncer-configuration
    config.kubeblocks.io/tpl-orioledb-scripts: orioledb-scripts
    helm.sh/chart: orioledb-0.7.2
  name: orioledb
  resourceVersion: "489638"
  uid: 9305bf83-bae8-4bf3-9af3-91d3c95de834
spec:
  componentDefs:
  - characterType: postgresql
    configSpecs:
    - constraintRef: orioledb-cc
      defaultMode: 511
      keys:
      - postgresql.conf
      name: orioledb-configuration
      namespace: kb-system
      templateRef: orioledb-configuration
      volumeName: postgresql-config
    - defaultMode: 511
      keys:
      - pgbouncer.ini
      name: orioledb-pgbouncer-configuration
      namespace: kb-system
      templateRef: orioledb-pgbouncer-configuration
      volumeName: pgbouncer-config
    - defaultMode: 511
      name: orioledb-custom-metrics
      namespace: kb-system
      templateRef: orioledb-custom-metrics
      volumeName: postgresql-custom-metrics
    - defaultMode: 511
      name: agamotto-configuration
      namespace: kb-system
      templateRef: orioledb-agamotto-configuration
      volumeName: agamotto-configuration
    - defaultMode: 511
      name: etcd-env
      namespace: kb-system
      templateRef: etcd-env
      volumeName: patroni-dependency
    customLabelSpecs:
    - key: apps.kubeblocks.postgres.patroni/scope
      resources:
      - gvk: v1/Pod
        selector:
          app.kubernetes.io/managed-by: kubeblocks
      - gvk: apps/v1/StatefulSet
        selector:
          app.kubernetes.io/managed-by: kubeblocks
      value: $(KB_CLUSTER_NAME)-$(KB_COMP_NAME)-patroni$(KB_CLUSTER_UID_POSTFIX_8)
    logConfigs:
    - filePathPattern: /home/postgres/pgdata/pgroot/data/log/postgresql-*
      name: running
    monitor:
      builtIn: false
      exporterConfig:
        scrapePath: /metrics
        scrapePort: 9187
    name: orioledb
    podSpec:
      containers:
      - command:
        - bin/bash
        - -c
        - /kb-scripts/setup.sh
        env:
        - name: PGROOT
          value: /home/postgres/pgdata/pgroot
        - name: SCOPE
          value: $(KB_CLUSTER_NAME)-$(KB_COMP_NAME)-patroni$(KB_CLUSTER_UID_POSTFIX_8)
        - name: KUBERNETES_SCOPE_LABEL
          value: apps.kubeblocks.postgres.patroni/scope
        - name: KUBERNETES_ROLE_LABEL
          value: apps.kubeblocks.postgres.patroni/role
        - name: RESTORE_DATA_DIR
          value: /home/postgres/pgdata/kb_restore
        - name: KB_PG_CONFIG_PATH
          value: /home/postgres/conf/postgresql.conf
        - name: ALLOW_NOSSL
          value: "true"
        - name: PGROOT
          value: /home/postgres/pgdata/pgroot
        - name: PGDATA
          value: /home/postgres/pgdata/pgroot/data
        - name: POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: POD_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: PGUSER_SUPERUSER
          valueFrom:
            secretKeyRef:
              key: username
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: PGPASSWORD_SUPERUSER
          valueFrom:
            secretKeyRef:
              key: password
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: PGUSER_ADMIN
          value: superadmin
        - name: PGPASSWORD_ADMIN
          valueFrom:
            secretKeyRef:
              key: password
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: PGUSER_STANDBY
          value: standby
        - name: PGPASSWORD_STANDBY
          valueFrom:
            secretKeyRef:
              key: password
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: PGUSER
          valueFrom:
            secretKeyRef:
              key: username
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: POSTGRES_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        imagePullPolicy: IfNotPresent
        name: postgresql
        ports:
        - containerPort: 5432
          name: tcp-orioledb
          protocol: TCP
        - containerPort: 8008
          name: patroni
          protocol: TCP
        readinessProbe:
          exec:
            command:
            - /bin/sh
            - -c
            - -ee
            - |
              exec pg_isready -U "postgres" -h 127.0.0.1 -p 5432
              [ -f /postgresql/tmp/.initialized ] || [ -f /postgresql/.initialized ]
          failureThreshold: 3
          initialDelaySeconds: 10
          periodSeconds: 30
          successThreshold: 1
          timeoutSeconds: 5
        resources: {}
        securityContext:
          runAsUser: 0
        volumeMounts:
        - mountPath: /dev/shm
          name: dshm
        - mountPath: /home/postgres/pgdata
          name: data
        - mountPath: /home/postgres/conf
          name: postgresql-config
        - mountPath: /kb-scripts
          name: scripts
        - mountPath: /kb-podinfo
          name: pod-info
        - mountPath: /dependency
          name: patroni-dependency
      - command:
        - /kb-scripts/pgbouncer_setup.sh
        env:
        - name: PGBOUNCER_AUTH_TYPE
          value: md5
        - name: POSTGRESQL_USERNAME
          valueFrom:
            secretKeyRef:
              key: username
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: POSTGRESQL_PASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: POSTGRESQL_PORT
          value: "5432"
        - name: POSTGRESQL_HOST
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: PGBOUNCER_PORT
          value: "6432"
        - name: PGBOUNCER_BIND_ADDRESS
          value: 0.0.0.0
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: tcp-pgbouncer
          timeoutSeconds: 5
        name: pgbouncer
        ports:
        - containerPort: 6432
          name: tcp-pgbouncer
          protocol: TCP
        readinessProbe:
          failureThreshold: 3
          initialDelaySeconds: 15
          periodSeconds: 30
          successThreshold: 1
          tcpSocket:
            port: tcp-pgbouncer
          timeoutSeconds: 5
        resources: {}
        securityContext:
          runAsUser: 0
        volumeMounts:
        - mountPath: /home/pgbouncer/conf
          name: pgbouncer-config
        - mountPath: /kb-scripts
          name: scripts
      - command:
        - /bin/agamotto
        - --config=/opt/agamotto/agamotto-config.yaml
        env:
        - name: ENDPOINT
          value: 127.0.0.1:5432
        - name: DATA_SOURCE_PASS
          valueFrom:
            secretKeyRef:
              key: password
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: DATA_SOURCE_USER
          valueFrom:
            secretKeyRef:
              key: username
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/agamotto:0.1.0-beta.5
        imagePullPolicy: IfNotPresent
        name: metrics
        ports:
        - containerPort: 9187
          name: http-metrics
          protocol: TCP
        resources: {}
        securityContext:
          runAsUser: 0
        volumeMounts:
        - mountPath: /opt/conf
          name: postgresql-custom-metrics
        - mountPath: /opt/agamotto
          name: agamotto-configuration
      securityContext:
        fsGroup: 103
        runAsGroup: 103
        runAsUser: 0
      volumes:
      - emptyDir:
          medium: Memory
        name: dshm
      - downwardAPI:
          items:
          - fieldRef:
              fieldPath: metadata.labels['kubeblocks.io/role']
            path: pod-role
          - fieldRef:
              fieldPath: metadata.annotations['rs.apps.kubeblocks.io/primary']
            path: primary-pod
          - fieldRef:
              fieldPath: metadata.annotations['apps.kubeblocks.io/component-replicas']
            path: component-replicas
        name: pod-info
    probes:
      roleProbe:
        failureThreshold: 2
        periodSeconds: 1
        timeoutSeconds: 1
    scriptSpecs:
    - defaultMode: 511
      name: orioledb-scripts
      namespace: kb-system
      templateRef: orioledb-scripts
      volumeName: scripts
    service:
      ports:
      - name: tcp-orioledb
        port: 5432
        protocol: TCP
        targetPort: tcp-orioledb
      - name: tcp-pgbouncer
        port: 6432
        protocol: TCP
        targetPort: tcp-pgbouncer
    serviceRefDeclarations:
    - name: etcdService
      serviceRefDeclarationSpecs:
      - serviceKind: etcd
        serviceVersion: ^v3.\d...d$
    switchoverSpec:
      withCandidate:
        cmdExecutorConfig:
          args:
          - curl -s http://$(KB_REPLICATION_PRIMARY_POD_FQDN):8008/switchover -XPOST
            -d '{"leader":"$(KB_REPLICATION_PRIMARY_POD_NAME)","candidate":"$(KB_SWITCHOVER_CANDIDATE_NAME)"}'
          command:
          - /bin/bash
          - -c
          image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/orioledb:beta1
      withoutCandidate:
        cmdExecutorConfig:
          args:
          - curl -s http://$(KB_REPLICATION_PRIMARY_POD_FQDN):8008/switchover -XPOST
            -d '{"leader":"$(KB_REPLICATION_PRIMARY_POD_NAME)"}'
          command:
          - /bin/bash
          - -c
          image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/orioledb:beta1
    systemAccounts:
      accounts:
      - name: kbadmin
        provisionPolicy:
          scope: AnyPods
          statements:
            creation: CREATE USER $(USERNAME) SUPERUSER PASSWORD '$(PASSWD)';
            update: ALTER USER $(USERNAME) WITH PASSWORD '$(PASSWD)';
          type: CreateByStmt
      - name: kbdataprotection
        provisionPolicy:
          scope: AnyPods
          statements:
            creation: CREATE USER $(USERNAME) SUPERUSER PASSWORD '$(PASSWD)';
            update: ALTER USER $(USERNAME) WITH PASSWORD '$(PASSWD)';
          type: CreateByStmt
      - name: kbprobe
        provisionPolicy:
          scope: AnyPods
          statements:
            creation: CREATE USER $(USERNAME) WITH PASSWORD '$(PASSWD)';  GRANT pg_monitor
              TO $(USERNAME);
            update: ALTER USER $(USERNAME) WITH PASSWORD '$(PASSWD)';
          type: CreateByStmt
      - name: kbmonitoring
        provisionPolicy:
          scope: AnyPods
          statements:
            creation: CREATE USER $(USERNAME) WITH PASSWORD '$(PASSWD)';  GRANT pg_monitor
              TO $(USERNAME);
            update: ALTER USER $(USERNAME) WITH PASSWORD '$(PASSWD)';
          type: CreateByStmt
      - name: kbreplicator
        provisionPolicy:
          scope: AnyPods
          statements:
            creation: CREATE USER $(USERNAME) WITH REPLICATION PASSWORD '$(PASSWD)';
            update: ALTER USER $(USERNAME) WITH PASSWORD '$(PASSWD)';
          type: CreateByStmt
      cmdExecutorConfig:
        args:
        - -h$(KB_ACCOUNT_ENDPOINT)
        - -c
        - $(KB_ACCOUNT_STATEMENT)
        command:
        - psql
        env:
        - name: PGUSER
          valueFrom:
            secretKeyRef:
              key: username
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        - name: PGPASSWORD
          valueFrom:
            secretKeyRef:
              key: password
              name: $(CONN_CREDENTIAL_SECRET_NAME)
              optional: false
        image: infracreate-registry.cn-zhangjiakou.cr.aliyuncs.com/apecloud/orioledb:beta1
      passwordConfig:
        length: 10
        letterCase: MixedCases
        numDigits: 5
        numSymbols: 0
    volumeTypes:
    - name: data
      type: data
    workloadType: Replication
  connectionCredential:
    endpoint: $(SVC_FQDN):$(SVC_PORT_tcp-orioledb)
    host: $(SVC_FQDN)
    password: $(RANDOM_PASSWD)
    port: $(SVC_PORT_tcp-orioledb)
    username: postgres
  type: orioledb
status:
  observedGeneration: 2
  phase: Available

ahjing99 avatar Feb 28 '24 04:02 ahjing99

This issue has been marked as stale because it has been open for 30 days with no activity

github-actions[bot] avatar Apr 01 '24 00:04 github-actions[bot]