--- apiVersion: v1 kind: Pod metadata: annotations: kubectl.kubernetes.io/default-container: etcd kubernetes.io/config.hash: 58d12e893528ad53a994f10901a644ea kubernetes.io/config.mirror: 58d12e893528ad53a994f10901a644ea kubernetes.io/config.seen: "2025-12-04T11:50:53.904089029Z" kubernetes.io/config.source: file target.workload.openshift.io/management: '{"effect": "PreferredDuringScheduling"}' creationTimestamp: "2025-12-04T11:56:42Z" labels: app: etcd etcd: "true" k8s-app: etcd revision: "2" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:kubectl.kubernetes.io/default-container: {} f:kubernetes.io/config.hash: {} f:kubernetes.io/config.mirror: {} f:kubernetes.io/config.seen: {} f:kubernetes.io/config.source: {} f:target.workload.openshift.io/management: {} f:labels: .: {} f:app: {} f:etcd: {} f:k8s-app: {} f:revision: {} f:ownerReferences: .: {} k:{"uid":"9618c86a-8a87-4c00-8dd2-9747684d64b3"}: {} f:spec: f:containers: k:{"name":"etcd"}: .: {} f:command: {} f:env: .: {} k:{"name":"ALL_ETCD_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_CIPHER_SUITES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_DATA_DIR"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ELECTION_TIMEOUT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ENABLE_PPROF"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_MAX_LEARNERS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_HEARTBEAT_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_IMAGE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_INITIAL_CLUSTER_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_QUOTA_BACKEND_BYTES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_SOCKET_REUSE_ADDRESS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_STATIC_POD_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_TLS_MIN_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_API"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CACERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_KEY"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_URL_HOST"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_IP"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":2379,"protocol":"TCP"}: .: {} f:containerPort: {} f:hostPort: {} f:name: {} f:protocol: {} k:{"containerPort":2380,"protocol":"TCP"}: .: {} f:containerPort: {} f:hostPort: {} f:name: {} f:protocol: {} k:{"containerPort":9978,"protocol":"TCP"}: .: {} f:containerPort: {} f:hostPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:startupProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/kubernetes/manifests"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/etc/kubernetes/static-pod-certs"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/etc/kubernetes/static-pod-resources"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/lib/etcd/"}: .: {} f:mountPath: {} f:name: {} k:{"name":"etcd-metrics"}: .: {} f:command: {} f:env: .: {} k:{"name":"ALL_ETCD_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_CIPHER_SUITES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_DATA_DIR"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ELECTION_TIMEOUT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ENABLE_PPROF"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_MAX_LEARNERS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_HEARTBEAT_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_IMAGE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_INITIAL_CLUSTER_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_QUOTA_BACKEND_BYTES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_SOCKET_REUSE_ADDRESS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_STATIC_POD_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_TLS_MIN_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_API"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CACERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_KEY"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_URL_HOST"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_IP"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:ports: .: {} k:{"containerPort":9979,"protocol":"TCP"}: .: {} f:containerPort: {} f:hostPort: {} f:name: {} f:protocol: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/kubernetes/static-pod-certs"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/etc/kubernetes/static-pod-resources"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/lib/etcd/"}: .: {} f:mountPath: {} f:name: {} k:{"name":"etcd-readyz"}: .: {} f:command: {} f:env: .: {} k:{"name":"ALL_ETCD_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_CIPHER_SUITES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_DATA_DIR"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ELECTION_TIMEOUT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ENABLE_PPROF"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_MAX_LEARNERS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_HEARTBEAT_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_IMAGE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_INITIAL_CLUSTER_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_QUOTA_BACKEND_BYTES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_SOCKET_REUSE_ADDRESS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_TLS_MIN_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_API"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CACERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_KEY"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_URL_HOST"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_IP"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:ports: .: {} k:{"containerPort":9980,"protocol":"TCP"}: .: {} f:containerPort: {} f:hostPort: {} f:name: {} f:protocol: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/kubernetes/static-pod-certs"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/log/etcd/"}: .: {} f:mountPath: {} f:name: {} k:{"name":"etcd-rev"}: .: {} f:command: {} f:env: .: {} k:{"name":"ALL_ETCD_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_CIPHER_SUITES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_DATA_DIR"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ELECTION_TIMEOUT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ENABLE_PPROF"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_MAX_LEARNERS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_HEARTBEAT_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_IMAGE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_INITIAL_CLUSTER_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_QUOTA_BACKEND_BYTES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_SOCKET_REUSE_ADDRESS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_TLS_MIN_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_API"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CACERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_KEY"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_URL_HOST"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_IP"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/kubernetes/static-pod-certs"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/lib/etcd"}: .: {} f:mountPath: {} f:name: {} k:{"name":"etcdctl"}: .: {} f:command: {} f:env: .: {} k:{"name":"ALL_ETCD_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_CIPHER_SUITES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_DATA_DIR"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ELECTION_TIMEOUT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ENABLE_PPROF"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_MAX_LEARNERS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_HEARTBEAT_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_IMAGE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_INITIAL_CLUSTER_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_QUOTA_BACKEND_BYTES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_SOCKET_REUSE_ADDRESS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_STATIC_POD_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_TLS_MIN_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_API"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CACERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_KEY"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_URL_HOST"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_IP"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/kubernetes/manifests"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/etc/kubernetes/static-pod-certs"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/etc/kubernetes/static-pod-resources"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/var/lib/etcd/"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:hostNetwork: {} f:initContainers: .: {} k:{"name":"etcd-ensure-env-vars"}: .: {} f:command: {} f:env: .: {} k:{"name":"ALL_ETCD_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_CIPHER_SUITES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_DATA_DIR"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ELECTION_TIMEOUT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_ENABLE_PPROF"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_MAX_LEARNERS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_HEARTBEAT_INTERVAL"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_IMAGE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_INITIAL_CLUSTER_STATE"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_QUOTA_BACKEND_BYTES"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_SOCKET_REUSE_ADDRESS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCD_TLS_MIN_VERSION"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_API"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CACERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_CERT"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_ENDPOINTS"}: .: {} f:name: {} f:value: {} k:{"name":"ETCDCTL_KEY"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_IP"}: .: {} f:name: {} f:valueFrom: .: {} f:fieldRef: {} k:{"name":"NODE_master_0_ETCD_NAME"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_ETCD_URL_HOST"}: .: {} f:name: {} f:value: {} k:{"name":"NODE_master_0_IP"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} k:{"name":"etcd-resources-copy"}: .: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/kubernetes/static-pod-certs"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/etc/kubernetes/static-pod-resources"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/usr/local/bin"}: .: {} f:mountPath: {} f:name: {} k:{"name":"setup"}: .: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/var/log/etcd"}: .: {} f:mountPath: {} f:name: {} f:nodeName: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"cert-dir"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"config-dir"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"data-dir"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"etcd-auto-backup-dir"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"log-dir"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"resource-dir"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"static-pod-dir"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"usr-local-bin"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} manager: kubelet operation: Update time: "2025-12-04T11:56:42Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: .: {} k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:initContainerStatuses: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"192.168.32.10"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2025-12-04T11:59:34Z" name: etcd-master-0 namespace: openshift-etcd ownerReferences: - apiVersion: v1 controller: true kind: Node name: master-0 uid: 9618c86a-8a87-4c00-8dd2-9747684d64b3 resourceVersion: "11960" uid: 02ad1d55-8c05-4414-8f92-3f2e31e1dc98 spec: containers: - command: - /bin/bash - -c - trap TERM INT; sleep infinity & wait env: - name: ALL_ETCD_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_API value: "3" - name: ETCDCTL_CACERT value: /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt - name: ETCDCTL_CERT value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt - name: ETCDCTL_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_KEY value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key - name: ETCD_CIPHER_SUITES value: TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - name: ETCD_DATA_DIR value: /var/lib/etcd - name: ETCD_ELECTION_TIMEOUT value: "2500" - name: ETCD_ENABLE_PPROF value: "true" - name: ETCD_EXPERIMENTAL_MAX_LEARNERS value: "1" - name: ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION value: 200ms - name: ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL value: 5s - name: ETCD_HEARTBEAT_INTERVAL value: "500" - name: ETCD_IMAGE value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 - name: ETCD_INITIAL_CLUSTER_STATE value: existing - name: ETCD_QUOTA_BACKEND_BYTES value: "8589934592" - name: ETCD_SOCKET_REUSE_ADDRESS value: "true" - name: ETCD_TLS_MIN_VERSION value: TLS1.2 - name: NODE_master_0_ETCD_NAME value: master-0 - name: NODE_master_0_ETCD_URL_HOST value: 192.168.32.10 - name: NODE_master_0_IP value: 192.168.32.10 - name: ETCD_STATIC_POD_VERSION value: "2" image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imagePullPolicy: IfNotPresent name: etcdctl resources: requests: cpu: 10m memory: 60Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/kubernetes/manifests name: static-pod-dir - mountPath: /etc/kubernetes/static-pod-resources name: resource-dir - mountPath: /etc/kubernetes/static-pod-certs name: cert-dir - mountPath: /var/lib/etcd/ name: data-dir - command: - /bin/sh - -c - | #!/bin/sh set -euo pipefail etcdctl member list || true # this has a non-zero return code if the command is non-zero. If you use an export first, it doesn't and you # will succeed when you should fail. ETCD_INITIAL_CLUSTER=$(discover-etcd-initial-cluster \ --cacert=/etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt \ --cert=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt \ --key=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key \ --endpoints=${ALL_ETCD_ENDPOINTS} \ --data-dir=/var/lib/etcd \ --target-peer-url-host=${NODE_master_0_ETCD_URL_HOST} \ --target-name=master-0) export ETCD_INITIAL_CLUSTER # we cannot use the "normal" port conflict initcontainer because when we upgrade, the existing static pod will never yield, # so we do the detection in etcd container itself. echo -n "Waiting for ports 2379, 2380 and 9978 to be released." time while [ -n "$(ss -Htan '( sport = 2379 or sport = 2380 or sport = 9978 )')" ]; do echo -n "." sleep 1 done export ETCD_NAME=${NODE_master_0_ETCD_NAME} env | grep ETCD | grep -v NODE set -x # See https://etcd.io/docs/v3.4.0/tuning/ for why we use ionice exec nice -n -19 ionice -c2 -n0 etcd \ --logger=zap \ --log-level=info \ --experimental-initial-corrupt-check=true \ --snapshot-count=10000 \ --initial-advertise-peer-urls=https://${NODE_master_0_IP}:2380 \ --cert-file=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-serving-master-0.crt \ --key-file=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-serving-master-0.key \ --trusted-ca-file=/etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt \ --client-cert-auth=true \ --peer-cert-file=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt \ --peer-key-file=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key \ --peer-trusted-ca-file=/etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt \ --peer-client-cert-auth=true \ --advertise-client-urls=https://${NODE_master_0_IP}:2379 \ --listen-client-urls=https://0.0.0.0:2379,unixs://${NODE_master_0_IP}:0 \ --listen-peer-urls=https://0.0.0.0:2380 \ --metrics=extensive \ --listen-metrics-urls=https://0.0.0.0:9978 || mv /etc/kubernetes/etcd-backup-dir/etcd-member.yaml /etc/kubernetes/manifests env: - name: ALL_ETCD_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_API value: "3" - name: ETCDCTL_CACERT value: /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt - name: ETCDCTL_CERT value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt - name: ETCDCTL_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_KEY value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key - name: ETCD_CIPHER_SUITES value: TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - name: ETCD_DATA_DIR value: /var/lib/etcd - name: ETCD_ELECTION_TIMEOUT value: "2500" - name: ETCD_ENABLE_PPROF value: "true" - name: ETCD_EXPERIMENTAL_MAX_LEARNERS value: "1" - name: ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION value: 200ms - name: ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL value: 5s - name: ETCD_HEARTBEAT_INTERVAL value: "500" - name: ETCD_IMAGE value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 - name: ETCD_INITIAL_CLUSTER_STATE value: existing - name: ETCD_QUOTA_BACKEND_BYTES value: "8589934592" - name: ETCD_SOCKET_REUSE_ADDRESS value: "true" - name: ETCD_TLS_MIN_VERSION value: TLS1.2 - name: NODE_master_0_ETCD_NAME value: master-0 - name: NODE_master_0_ETCD_URL_HOST value: 192.168.32.10 - name: NODE_master_0_IP value: 192.168.32.10 - name: ETCD_STATIC_POD_VERSION value: "2" image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 httpGet: path: healthz port: 9980 scheme: HTTPS periodSeconds: 5 successThreshold: 1 timeoutSeconds: 30 name: etcd ports: - containerPort: 2379 hostPort: 2379 name: etcd protocol: TCP - containerPort: 2380 hostPort: 2380 name: etcd-peer protocol: TCP - containerPort: 9978 hostPort: 9978 name: etcd-metrics protocol: TCP readinessProbe: failureThreshold: 5 httpGet: path: readyz port: 9980 scheme: HTTPS periodSeconds: 5 successThreshold: 1 timeoutSeconds: 30 resources: requests: cpu: 300m memory: 600Mi securityContext: privileged: true startupProbe: failureThreshold: 18 httpGet: path: readyz port: 9980 scheme: HTTPS initialDelaySeconds: 10 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/kubernetes/manifests name: static-pod-dir - mountPath: /etc/kubernetes/static-pod-resources name: resource-dir - mountPath: /etc/kubernetes/static-pod-certs name: cert-dir - mountPath: /var/lib/etcd/ name: data-dir - command: - /bin/sh - -c - | #!/bin/sh set -euo pipefail export ETCD_NAME=${NODE_master_0_ETCD_NAME} exec nice -n -18 etcd grpc-proxy start \ --endpoints https://${NODE_master_0_ETCD_URL_HOST}:9978 \ --metrics-addr https://0.0.0.0:9979 \ --listen-addr 127.0.0.1:9977 \ --advertise-client-url "" \ --key /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key \ --key-file /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-serving-metrics-master-0.key \ --cert /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt \ --cert-file /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-serving-metrics-master-0.crt \ --cacert /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt \ --trusted-ca-file /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/metrics-ca-bundle.crt \ --listen-cipher-suites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \ --tls-min-version $(ETCD_TLS_MIN_VERSION) env: - name: ALL_ETCD_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_API value: "3" - name: ETCDCTL_CACERT value: /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt - name: ETCDCTL_CERT value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt - name: ETCDCTL_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_KEY value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key - name: ETCD_CIPHER_SUITES value: TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - name: ETCD_DATA_DIR value: /var/lib/etcd - name: ETCD_ELECTION_TIMEOUT value: "2500" - name: ETCD_ENABLE_PPROF value: "true" - name: ETCD_EXPERIMENTAL_MAX_LEARNERS value: "1" - name: ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION value: 200ms - name: ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL value: 5s - name: ETCD_HEARTBEAT_INTERVAL value: "500" - name: ETCD_IMAGE value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 - name: ETCD_INITIAL_CLUSTER_STATE value: existing - name: ETCD_QUOTA_BACKEND_BYTES value: "8589934592" - name: ETCD_SOCKET_REUSE_ADDRESS value: "true" - name: ETCD_TLS_MIN_VERSION value: TLS1.2 - name: NODE_master_0_ETCD_NAME value: master-0 - name: NODE_master_0_ETCD_URL_HOST value: 192.168.32.10 - name: NODE_master_0_IP value: 192.168.32.10 - name: ETCD_STATIC_POD_VERSION value: "2" image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imagePullPolicy: IfNotPresent name: etcd-metrics ports: - containerPort: 9979 hostPort: 9979 name: proxy-metrics protocol: TCP resources: requests: cpu: 40m memory: 200Mi securityContext: privileged: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/kubernetes/static-pod-resources name: resource-dir - mountPath: /etc/kubernetes/static-pod-certs name: cert-dir - mountPath: /var/lib/etcd/ name: data-dir - command: - /bin/sh - -c - | #!/bin/sh set -euo pipefail exec nice -n -18 cluster-etcd-operator readyz \ --target=https://localhost:2379 \ --listen-port=9980 \ --serving-cert-file=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-serving-master-0.crt \ --serving-key-file=/etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-serving-master-0.key \ --client-cert-file=$(ETCDCTL_CERT) \ --client-key-file=$(ETCDCTL_KEY) \ --client-cacert-file=$(ETCDCTL_CACERT) \ --listen-cipher-suites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 \ --listen-tls-min-version=$(ETCD_TLS_MIN_VERSION) env: - name: ALL_ETCD_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_API value: "3" - name: ETCDCTL_CACERT value: /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt - name: ETCDCTL_CERT value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt - name: ETCDCTL_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_KEY value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key - name: ETCD_CIPHER_SUITES value: TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - name: ETCD_DATA_DIR value: /var/lib/etcd - name: ETCD_ELECTION_TIMEOUT value: "2500" - name: ETCD_ENABLE_PPROF value: "true" - name: ETCD_EXPERIMENTAL_MAX_LEARNERS value: "1" - name: ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION value: 200ms - name: ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL value: 5s - name: ETCD_HEARTBEAT_INTERVAL value: "500" - name: ETCD_IMAGE value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 - name: ETCD_INITIAL_CLUSTER_STATE value: existing - name: ETCD_QUOTA_BACKEND_BYTES value: "8589934592" - name: ETCD_SOCKET_REUSE_ADDRESS value: "true" - name: ETCD_TLS_MIN_VERSION value: TLS1.2 - name: NODE_master_0_ETCD_NAME value: master-0 - name: NODE_master_0_ETCD_URL_HOST value: 192.168.32.10 - name: NODE_master_0_IP value: 192.168.32.10 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f4d4282cb53325e737ad68abbfcb70687ae04fb50353f4f0ba0ba5703b15009a imagePullPolicy: IfNotPresent name: etcd-readyz ports: - containerPort: 9980 hostPort: 9980 name: readyz protocol: TCP resources: requests: cpu: 10m memory: 50Mi securityContext: privileged: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/log/etcd/ name: log-dir - mountPath: /etc/kubernetes/static-pod-certs name: cert-dir - command: - /bin/sh - -c - | #!/bin/sh set -euo pipefail cluster-etcd-operator rev \ --endpoints=$(ALL_ETCD_ENDPOINTS) \ --client-cert-file=$(ETCDCTL_CERT) \ --client-key-file=$(ETCDCTL_KEY) \ --client-cacert-file=$(ETCDCTL_CACERT) env: - name: ALL_ETCD_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_API value: "3" - name: ETCDCTL_CACERT value: /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt - name: ETCDCTL_CERT value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt - name: ETCDCTL_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_KEY value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key - name: ETCD_CIPHER_SUITES value: TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - name: ETCD_DATA_DIR value: /var/lib/etcd - name: ETCD_ELECTION_TIMEOUT value: "2500" - name: ETCD_ENABLE_PPROF value: "true" - name: ETCD_EXPERIMENTAL_MAX_LEARNERS value: "1" - name: ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION value: 200ms - name: ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL value: 5s - name: ETCD_HEARTBEAT_INTERVAL value: "500" - name: ETCD_IMAGE value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 - name: ETCD_INITIAL_CLUSTER_STATE value: existing - name: ETCD_QUOTA_BACKEND_BYTES value: "8589934592" - name: ETCD_SOCKET_REUSE_ADDRESS value: "true" - name: ETCD_TLS_MIN_VERSION value: TLS1.2 - name: NODE_master_0_ETCD_NAME value: master-0 - name: NODE_master_0_ETCD_URL_HOST value: 192.168.32.10 - name: NODE_master_0_IP value: 192.168.32.10 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f4d4282cb53325e737ad68abbfcb70687ae04fb50353f4f0ba0ba5703b15009a imagePullPolicy: IfNotPresent name: etcd-rev resources: requests: cpu: 10m memory: 50Mi securityContext: privileged: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/lib/etcd name: data-dir - mountPath: /etc/kubernetes/static-pod-certs name: cert-dir dnsPolicy: ClusterFirst enableServiceLinks: true hostNetwork: true initContainers: - command: - /bin/sh - -c - | #!/bin/sh echo -n "Fixing etcd log permissions." mkdir -p /var/log/etcd && chmod 0600 /var/log/etcd echo -n "Fixing etcd auto backup permissions." mkdir -p /var/lib/etcd-auto-backup && chmod 0600 /var/lib/etcd-auto-backup image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imagePullPolicy: IfNotPresent name: setup resources: requests: cpu: 5m memory: 50Mi securityContext: privileged: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/log/etcd name: log-dir - command: - /bin/sh - -c - | #!/bin/sh set -euo pipefail : "${NODE_master_0_ETCD_URL_HOST?not set}" : "${NODE_master_0_ETCD_NAME?not set}" : "${NODE_master_0_IP?not set}" # check for ipv4 addresses as well as ipv6 addresses with extra square brackets if [[ "${NODE_master_0_IP}" != "${NODE_IP}" && "${NODE_master_0_IP}" != "[${NODE_IP}]" ]]; then # echo the error message to stderr echo "Expected node IP to be ${NODE_IP} got ${NODE_master_0_IP}" >&2 exit 1 fi # check for ipv4 addresses as well as ipv6 addresses with extra square brackets if [[ "${NODE_master_0_ETCD_URL_HOST}" != "${NODE_IP}" && "${NODE_master_0_ETCD_URL_HOST}" != "[${NODE_IP}]" ]]; then # echo the error message to stderr echo "Expected etcd url host to be ${NODE_IP} got ${NODE_master_0_ETCD_URL_HOST}" >&2 exit 1 fi env: - name: ALL_ETCD_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_API value: "3" - name: ETCDCTL_CACERT value: /etc/kubernetes/static-pod-certs/configmaps/etcd-all-bundles/server-ca-bundle.crt - name: ETCDCTL_CERT value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.crt - name: ETCDCTL_ENDPOINTS value: https://192.168.32.10:2379 - name: ETCDCTL_KEY value: /etc/kubernetes/static-pod-certs/secrets/etcd-all-certs/etcd-peer-master-0.key - name: ETCD_CIPHER_SUITES value: TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - name: ETCD_DATA_DIR value: /var/lib/etcd - name: ETCD_ELECTION_TIMEOUT value: "2500" - name: ETCD_ENABLE_PPROF value: "true" - name: ETCD_EXPERIMENTAL_MAX_LEARNERS value: "1" - name: ETCD_EXPERIMENTAL_WARNING_APPLY_DURATION value: 200ms - name: ETCD_EXPERIMENTAL_WATCH_PROGRESS_NOTIFY_INTERVAL value: 5s - name: ETCD_HEARTBEAT_INTERVAL value: "500" - name: ETCD_IMAGE value: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 - name: ETCD_INITIAL_CLUSTER_STATE value: existing - name: ETCD_QUOTA_BACKEND_BYTES value: "8589934592" - name: ETCD_SOCKET_REUSE_ADDRESS value: "true" - name: ETCD_TLS_MIN_VERSION value: TLS1.2 - name: NODE_master_0_ETCD_NAME value: master-0 - name: NODE_master_0_ETCD_URL_HOST value: 192.168.32.10 - name: NODE_master_0_IP value: 192.168.32.10 - name: NODE_IP valueFrom: fieldRef: apiVersion: v1 fieldPath: status.podIP image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imagePullPolicy: IfNotPresent name: etcd-ensure-env-vars resources: requests: cpu: 10m memory: 60Mi securityContext: privileged: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError - command: - /bin/sh - -c - | #!/bin/sh set -euo pipefail rm -f $(grep -l '^### Created by cluster-etcd-operator' /usr/local/bin/*) cp -p /etc/kubernetes/static-pod-certs/configmaps/etcd-scripts/*.sh /usr/local/bin image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imagePullPolicy: IfNotPresent name: etcd-resources-copy resources: requests: cpu: 10m memory: 60Mi securityContext: privileged: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/kubernetes/static-pod-resources name: resource-dir - mountPath: /etc/kubernetes/static-pod-certs name: cert-dir - mountPath: /usr/local/bin name: usr-local-bin nodeName: master-0 preemptionPolicy: PreemptLowerPriority priority: 2000001000 priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 tolerations: - operator: Exists volumes: - hostPath: path: /etc/kubernetes/manifests type: "" name: static-pod-dir - hostPath: path: /etc/kubernetes/static-pod-resources/etcd-pod-2 type: "" name: resource-dir - hostPath: path: /etc/kubernetes/static-pod-resources/etcd-certs type: "" name: cert-dir - hostPath: path: /var/lib/etcd type: "" name: data-dir - hostPath: path: /usr/local/bin type: "" name: usr-local-bin - hostPath: path: /var/log/etcd type: "" name: log-dir - hostPath: path: /etc/kubernetes type: "" name: config-dir - hostPath: path: /var/lib/etcd-auto-backup type: "" name: etcd-auto-backup-dir status: conditions: - lastProbeTime: null lastTransitionTime: "2025-12-04T11:59:18Z" status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2025-12-04T11:59:18Z" status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2025-12-04T11:59:30Z" status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2025-12-04T11:59:30Z" status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2025-12-04T11:59:18Z" status: "True" type: PodScheduled containerStatuses: - containerID: cri-o://99afa32d2f9e3268c6724b0a1688288ba191e2e74f21c5c1858581b217615c5e image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 lastState: {} name: etcd ready: true restartCount: 0 started: true state: running: startedAt: "2025-12-04T11:54:27Z" - containerID: cri-o://4d147a6535bb34c902004843cd295f21c14adf8a53e3d2475a55e6a0fc4042b8 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 lastState: {} name: etcd-metrics ready: true restartCount: 0 started: true state: running: startedAt: "2025-12-04T11:54:28Z" - containerID: cri-o://c3a7a8927a39103ec57f601056e2745862d11cbfef434599fc257cad09fa75c7 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f4d4282cb53325e737ad68abbfcb70687ae04fb50353f4f0ba0ba5703b15009a imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f4d4282cb53325e737ad68abbfcb70687ae04fb50353f4f0ba0ba5703b15009a lastState: {} name: etcd-readyz ready: true restartCount: 0 started: true state: running: startedAt: "2025-12-04T11:54:28Z" - containerID: cri-o://88e1b2d27a0f75d0a4982d20bbe0ee0c9b6226aa4f25a9f4cb53e21dbc639d31 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f4d4282cb53325e737ad68abbfcb70687ae04fb50353f4f0ba0ba5703b15009a imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:f4d4282cb53325e737ad68abbfcb70687ae04fb50353f4f0ba0ba5703b15009a lastState: {} name: etcd-rev ready: true restartCount: 0 started: true state: running: startedAt: "2025-12-04T11:54:28Z" - containerID: cri-o://0e12e517b20bdc3b625c6c718dd1d388d2f2851647216efdfc0047fcce7e1020 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 lastState: {} name: etcdctl ready: true restartCount: 0 started: true state: running: startedAt: "2025-12-04T11:54:27Z" hostIP: 192.168.32.10 hostIPs: - ip: 192.168.32.10 initContainerStatuses: - containerID: cri-o://27595dd7e9f331fc7dddae56f41801fd05186c63f10ec084212462612cf2ce37 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 lastState: {} name: setup ready: true restartCount: 0 started: false state: terminated: containerID: cri-o://27595dd7e9f331fc7dddae56f41801fd05186c63f10ec084212462612cf2ce37 exitCode: 0 finishedAt: "2025-12-04T11:52:09Z" reason: Completed startedAt: "2025-12-04T11:52:09Z" - containerID: cri-o://13b777a669c375f8fa5fb7dc16e22e01b0b37ff83c9fc781534d7ca1c75d6dcd image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 lastState: {} name: etcd-ensure-env-vars ready: true restartCount: 0 started: false state: terminated: containerID: cri-o://13b777a669c375f8fa5fb7dc16e22e01b0b37ff83c9fc781534d7ca1c75d6dcd exitCode: 0 finishedAt: "2025-12-04T11:52:43Z" reason: Completed startedAt: "2025-12-04T11:52:43Z" - containerID: cri-o://d1e0ff4c34bb2478448af3eb31ad0b50e5dd734dc0f6051803b3b18d3de656bf image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:188637a52cafee61ec461e92fb0c605e28be325b9ac1f2ac8a37d68e97654718 lastState: {} name: etcd-resources-copy ready: true restartCount: 0 started: false state: terminated: containerID: cri-o://d1e0ff4c34bb2478448af3eb31ad0b50e5dd734dc0f6051803b3b18d3de656bf exitCode: 0 finishedAt: "2025-12-04T11:53:19Z" reason: Completed startedAt: "2025-12-04T11:53:19Z" phase: Running podIP: 192.168.32.10 podIPs: - ip: 192.168.32.10 qosClass: Burstable startTime: "2025-12-04T11:59:18Z"