--- apiVersion: apps/v1 items: - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" creationTimestamp: "2026-10-30T13:43:53Z" generation: 1 labels: hypershift.openshift.io/managed: "true" managedFields: - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: .: {} f:hypershift.openshift.io/managed: {} f:spec: f:progressDeadlineSeconds: {} f:replicas: {} f:revisionHistoryLimit: {} f:selector: {} f:strategy: f:rollingUpdate: .: {} f:maxSurge: {} f:maxUnavailable: {} f:type: {} f:template: f:metadata: f:annotations: .: {} f:cluster-autoscaler.kubernetes.io/safe-to-evict: {} f:labels: .: {} f:app: {} f:spec: f:automountServiceAccountToken: {} f:containers: k:{"name":"connection-checker"}: .: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:allowPrivilegeEscalation: {} f:capabilities: .: {} f:drop: {} f:readOnlyRootFilesystem: {} f:runAsNonRoot: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:dnsPolicy: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: .: {} f:runAsUser: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:topologySpreadConstraints: .: {} k:{"topologyKey":"kubernetes.io/hostname","whenUnsatisfiable":"ScheduleAnyway"}: .: {} f:labelSelector: {} f:maxSkew: {} f:topologyKey: {} f:whenUnsatisfiable: {} manager: hosted-cluster-config-operator-manager operation: Update time: "2026-10-30T13:43:53Z" - apiVersion: apps/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:deployment.kubernetes.io/revision: {} f:status: f:availableReplicas: {} f:conditions: .: {} k:{"type":"Available"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Progressing"}: .: {} f:lastTransitionTime: {} f:lastUpdateTime: {} f:message: {} f:reason: {} f:status: {} f:type: {} f:observedGeneration: {} f:readyReplicas: {} f:replicas: {} f:terminatingReplicas: {} f:updatedReplicas: {} manager: kube-controller-manager operation: Update subresource: status time: "2026-10-30T13:48:39Z" name: kas-connection-checker namespace: kube-system resourceVersion: "5779" uid: 4aa8693e-5c53-41bb-8810-783e7d8792e2 spec: progressDeadlineSeconds: 600 replicas: 3 revisionHistoryLimit: 10 selector: matchLabels: app: kas-connection-checker strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: cluster-autoscaler.kubernetes.io/safe-to-evict: "true" labels: app: kas-connection-checker spec: automountServiceAccountToken: true containers: - command: - /bin/sh - -c - |- #!/bin/sh ENDPOINT=/version CONFIGMAP_NAME=control-plane-connectivity-check NAMESPACE=kube-system while true; do TOKEN=$(cat /var/run/secrets/kubernetes.io/serviceaccount/token) CACERT=/var/run/secrets/kubernetes.io/serviceaccount/ca.crt HTTP_CODE=$(curl --cacert ${CACERT} -s -o /dev/null -w "%{http_code}" \ --connect-timeout 5 --max-time 10 \ "https://kubernetes.default.svc${ENDPOINT}" 2>/dev/null) if [ "$HTTP_CODE" = "200" ]; then NOW=$(date -u +%Y-%m-%dT%H:%M:%SZ) curl --cacert ${CACERT} -s -o /dev/null \ -X PATCH \ -H "Authorization: Bearer ${TOKEN}" \ -H "Content-Type: application/strategic-merge-patch+json" \ --data "{\"data\":{\"lastSucceeded\":\"${NOW}\"}}" \ "https://kubernetes.default.svc/api/v1/namespaces/${NAMESPACE}/configmaps/${CONFIGMAP_NAME}" 2>/dev/null fi sleep 60 done image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 imagePullPolicy: IfNotPresent name: connection-checker resources: requests: cpu: 5m memory: 10Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError dnsPolicy: ClusterFirst priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: runAsUser: 1000 serviceAccount: kas-connection-checker serviceAccountName: kas-connection-checker terminationGracePeriodSeconds: 30 topologySpreadConstraints: - labelSelector: matchLabels: app: kas-connection-checker maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: ScheduleAnyway status: availableReplicas: 3 conditions: - lastTransitionTime: "2026-10-30T13:48:39Z" lastUpdateTime: "2026-10-30T13:48:39Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2026-10-30T13:43:53Z" lastUpdateTime: "2026-10-30T13:48:39Z" message: ReplicaSet "kas-connection-checker-685895c7c9" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 3 replicas: 3 terminatingReplicas: 0 updatedReplicas: 3 kind: DeploymentList metadata: resourceVersion: "162830"