--- apiVersion: v1 items: - apiVersion: v1 kind: Pod metadata: annotations: cluster-autoscaler.kubernetes.io/enable-ds-eviction: "true" k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["10.133.0.6/23"],"mac_address":"0a:58:0a:85:00:06","gateway_ips":["10.133.0.1"],"routes":[{"dest":"10.132.0.0/14","nextHop":"10.133.0.1"},{"dest":"172.31.0.0/16","nextHop":"10.133.0.1"},{"dest":"169.254.0.5/32","nextHop":"10.133.0.1"},{"dest":"100.64.0.0/16","nextHop":"10.133.0.1"}],"ip_address":"10.133.0.6/23","gateway_ip":"10.133.0.1","role":"primary"}}' k8s.v1.cni.cncf.io/network-status: |- [{ "name": "ovn-kubernetes", "interface": "eth0", "ips": [ "10.133.0.6" ], "mac": "0a:58:0a:85:00:06", "default": true, "dns": {} }] creationTimestamp: "2026-10-31T08:00:17Z" generateName: dns-default- generation: 1 labels: controller-revision-hash: 7cdb689d4f dns.operator.openshift.io/daemonset-dns: default pod-template-generation: "1" topology.kubernetes.io/region: us-west-1 topology.kubernetes.io/zone: us-west-1a managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.ovn.org/pod-networks: {} manager: ip-10-0-130-190 operation: Update subresource: status time: "2026-10-31T08:00:17Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:cluster-autoscaler.kubernetes.io/enable-ds-eviction: {} f:target.workload.openshift.io/management: {} f:generateName: {} f:labels: .: {} f:controller-revision-hash: {} f:dns.operator.openshift.io/daemonset-dns: {} f:pod-template-generation: {} f:ownerReferences: .: {} k:{"uid":"27e05a22-6559-4756-be65-f9f5d281b252"}: {} f:spec: f:affinity: .: {} f:nodeAffinity: .: {} f:requiredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"dns"}: .: {} f:args: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":5353,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} k:{"containerPort":5353,"protocol":"UDP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/coredns"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"name":"kube-rbac-proxy"}: .: {} f:args: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:ports: .: {} k:{"containerPort":9154,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/tls/private"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:nodeSelector: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"config-volume"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} k:{"name":"metrics-tls"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"tmp-dir"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-31T08:00:17Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.v1.cni.cncf.io/network-status: {} manager: multus-daemon operation: Update subresource: status time: "2026-10-31T08:00:29Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: f:observedGeneration: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:observedGeneration: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.133.0.6"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-10-31T08:00:42Z" name: dns-default-59jzn namespace: openshift-dns ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: DaemonSet name: dns-default uid: 27e05a22-6559-4756-be65-f9f5d281b252 resourceVersion: "7120" uid: 14f5d6e3-5e6a-482d-a93e-bc6a83a534ff spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchFields: - key: metadata.name operator: In values: - ip-10-0-130-190.us-west-1.compute.internal containers: - args: - -conf - /etc/coredns/Corefile command: - coredns image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 httpGet: path: /health port: 8080 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 name: dns ports: - containerPort: 5353 name: dns protocol: UDP - containerPort: 5353 name: dns-tcp protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /ready port: 8181 scheme: HTTP initialDelaySeconds: 10 periodSeconds: 3 successThreshold: 1 timeoutSeconds: 3 resources: requests: cpu: 50m memory: 70Mi securityContext: readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/coredns name: config-volume readOnly: true - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-928zw readOnly: true - args: - --logtostderr - --secure-listen-address=:9154 - --upstream=http://127.0.0.1:9153/ - --tls-cert-file=/etc/tls/private/tls.crt - --tls-private-key-file=/etc/tls/private/tls.key - --tls-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=VersionTLS12 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d017b7d199b1d54e889bb1eb6e572d8e6d94ad92610894009ee0562c2a5c0f51 imagePullPolicy: IfNotPresent name: kube-rbac-proxy ports: - containerPort: 9154 name: metrics protocol: TCP resources: requests: cpu: 10m memory: 40Mi securityContext: readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/tls/private name: metrics-tls readOnly: true - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-928zw readOnly: true dnsPolicy: Default enableServiceLinks: true imagePullSecrets: - name: dns-dockercfg-wn874 nodeName: ip-10-0-130-190.us-west-1.compute.internal nodeSelector: kubernetes.io/os: linux preemptionPolicy: PreemptLowerPriority priority: 2000001000 priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: dns serviceAccountName: dns terminationGracePeriodSeconds: 30 tolerations: - key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists - effect: NoSchedule key: node.kubernetes.io/disk-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/memory-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/pid-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/unschedulable operator: Exists volumes: - configMap: defaultMode: 420 items: - key: Corefile path: Corefile name: dns-default name: config-volume - name: metrics-tls secret: defaultMode: 420 secretName: dns-default-metrics-tls - emptyDir: {} name: tmp-dir - name: kube-api-access-928zw projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:32Z" observedGeneration: 1 status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:17Z" observedGeneration: 1 status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:42Z" observedGeneration: 1 status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:42Z" observedGeneration: 1 status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:17Z" observedGeneration: 1 status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 50m memory: 70Mi containerID: cri-o://67e8e5a63ab1f4252466c0f64c45c0c3605ec81e07e6e1291eb7530644dfa05a image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 lastState: {} name: dns ready: true resources: requests: cpu: 50m memory: 70Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T08:00:31Z" user: linux: gid: 0 supplementalGroups: - 0 uid: 0 volumeMounts: - mountPath: /etc/coredns name: config-volume readOnly: true recursiveReadOnly: Disabled - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-928zw readOnly: true recursiveReadOnly: Disabled - allocatedResources: cpu: 10m memory: 40Mi containerID: cri-o://0576c7a12e541013aba16ba1195dbb4a83d0d57937d1c467faa0f3f273cf4af3 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d017b7d199b1d54e889bb1eb6e572d8e6d94ad92610894009ee0562c2a5c0f51 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9dee0e2e50ba834cb0a6d3007372f1673488f6538561a7dc0880a239dce9d59b lastState: {} name: kube-rbac-proxy ready: true resources: requests: cpu: 10m memory: 40Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T08:00:31Z" user: linux: gid: 65534 supplementalGroups: - 65534 uid: 65534 volumeMounts: - mountPath: /etc/tls/private name: metrics-tls readOnly: true recursiveReadOnly: Disabled - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-928zw readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.130.190 hostIPs: - ip: 10.0.130.190 observedGeneration: 1 phase: Running podIP: 10.133.0.6 podIPs: - ip: 10.133.0.6 qosClass: Burstable startTime: "2026-10-31T08:00:17Z" - apiVersion: v1 kind: Pod metadata: annotations: cluster-autoscaler.kubernetes.io/enable-ds-eviction: "true" k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["10.134.0.6/23"],"mac_address":"0a:58:0a:86:00:06","gateway_ips":["10.134.0.1"],"routes":[{"dest":"10.132.0.0/14","nextHop":"10.134.0.1"},{"dest":"172.31.0.0/16","nextHop":"10.134.0.1"},{"dest":"169.254.0.5/32","nextHop":"10.134.0.1"},{"dest":"100.64.0.0/16","nextHop":"10.134.0.1"}],"ip_address":"10.134.0.6/23","gateway_ip":"10.134.0.1","role":"primary"}}' k8s.v1.cni.cncf.io/network-status: |- [{ "name": "ovn-kubernetes", "interface": "eth0", "ips": [ "10.134.0.6" ], "mac": "0a:58:0a:86:00:06", "default": true, "dns": {} }] creationTimestamp: "2026-10-31T08:00:42Z" generateName: dns-default- generation: 1 labels: controller-revision-hash: 7cdb689d4f dns.operator.openshift.io/daemonset-dns: default pod-template-generation: "1" topology.kubernetes.io/region: us-west-1 topology.kubernetes.io/zone: us-west-1a managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.ovn.org/pod-networks: {} manager: ip-10-0-131-248 operation: Update subresource: status time: "2026-10-31T08:00:42Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:cluster-autoscaler.kubernetes.io/enable-ds-eviction: {} f:target.workload.openshift.io/management: {} f:generateName: {} f:labels: .: {} f:controller-revision-hash: {} f:dns.operator.openshift.io/daemonset-dns: {} f:pod-template-generation: {} f:ownerReferences: .: {} k:{"uid":"27e05a22-6559-4756-be65-f9f5d281b252"}: {} f:spec: f:affinity: .: {} f:nodeAffinity: .: {} f:requiredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"dns"}: .: {} f:args: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":5353,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} k:{"containerPort":5353,"protocol":"UDP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/coredns"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"name":"kube-rbac-proxy"}: .: {} f:args: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:ports: .: {} k:{"containerPort":9154,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/tls/private"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:nodeSelector: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"config-volume"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} k:{"name":"metrics-tls"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"tmp-dir"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-31T08:00:42Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.v1.cni.cncf.io/network-status: {} manager: multus-daemon operation: Update subresource: status time: "2026-10-31T08:00:43Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: f:observedGeneration: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:observedGeneration: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.134.0.6"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-10-31T08:00:56Z" name: dns-default-7m8rz namespace: openshift-dns ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: DaemonSet name: dns-default uid: 27e05a22-6559-4756-be65-f9f5d281b252 resourceVersion: "7764" uid: a3fb029d-fcb5-4dcb-a982-591ea9a9c468 spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchFields: - key: metadata.name operator: In values: - ip-10-0-131-248.us-west-1.compute.internal containers: - args: - -conf - /etc/coredns/Corefile command: - coredns image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 httpGet: path: /health port: 8080 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 name: dns ports: - containerPort: 5353 name: dns protocol: UDP - containerPort: 5353 name: dns-tcp protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /ready port: 8181 scheme: HTTP initialDelaySeconds: 10 periodSeconds: 3 successThreshold: 1 timeoutSeconds: 3 resources: requests: cpu: 50m memory: 70Mi securityContext: readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/coredns name: config-volume readOnly: true - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-45fpz readOnly: true - args: - --logtostderr - --secure-listen-address=:9154 - --upstream=http://127.0.0.1:9153/ - --tls-cert-file=/etc/tls/private/tls.crt - --tls-private-key-file=/etc/tls/private/tls.key - --tls-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=VersionTLS12 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d017b7d199b1d54e889bb1eb6e572d8e6d94ad92610894009ee0562c2a5c0f51 imagePullPolicy: IfNotPresent name: kube-rbac-proxy ports: - containerPort: 9154 name: metrics protocol: TCP resources: requests: cpu: 10m memory: 40Mi securityContext: readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/tls/private name: metrics-tls readOnly: true - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-45fpz readOnly: true dnsPolicy: Default enableServiceLinks: true imagePullSecrets: - name: dns-dockercfg-wn874 nodeName: ip-10-0-131-248.us-west-1.compute.internal nodeSelector: kubernetes.io/os: linux preemptionPolicy: PreemptLowerPriority priority: 2000001000 priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: dns serviceAccountName: dns terminationGracePeriodSeconds: 30 tolerations: - key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists - effect: NoSchedule key: node.kubernetes.io/disk-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/memory-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/pid-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/unschedulable operator: Exists volumes: - configMap: defaultMode: 420 items: - key: Corefile path: Corefile name: dns-default name: config-volume - name: metrics-tls secret: defaultMode: 420 secretName: dns-default-metrics-tls - emptyDir: {} name: tmp-dir - name: kube-api-access-45fpz projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:45Z" observedGeneration: 1 status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:42Z" observedGeneration: 1 status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:56Z" observedGeneration: 1 status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:56Z" observedGeneration: 1 status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:42Z" observedGeneration: 1 status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 50m memory: 70Mi containerID: cri-o://7245c263bcf18f59348ce271a150d3ca9160799c35f7ce6264755b4ec82c943e image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 lastState: {} name: dns ready: true resources: requests: cpu: 50m memory: 70Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T08:00:45Z" user: linux: gid: 0 supplementalGroups: - 0 uid: 0 volumeMounts: - mountPath: /etc/coredns name: config-volume readOnly: true recursiveReadOnly: Disabled - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-45fpz readOnly: true recursiveReadOnly: Disabled - allocatedResources: cpu: 10m memory: 40Mi containerID: cri-o://8fa1ef71149d674da74a03533c49bd9fe736d68a2b13b3dbafa3937196b90048 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d017b7d199b1d54e889bb1eb6e572d8e6d94ad92610894009ee0562c2a5c0f51 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9dee0e2e50ba834cb0a6d3007372f1673488f6538561a7dc0880a239dce9d59b lastState: {} name: kube-rbac-proxy ready: true resources: requests: cpu: 10m memory: 40Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T08:00:45Z" user: linux: gid: 65534 supplementalGroups: - 65534 uid: 65534 volumeMounts: - mountPath: /etc/tls/private name: metrics-tls readOnly: true recursiveReadOnly: Disabled - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-45fpz readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.131.248 hostIPs: - ip: 10.0.131.248 observedGeneration: 1 phase: Running podIP: 10.134.0.6 podIPs: - ip: 10.134.0.6 qosClass: Burstable startTime: "2026-10-31T08:00:42Z" - apiVersion: v1 kind: Pod metadata: annotations: cluster-autoscaler.kubernetes.io/enable-ds-eviction: "true" k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["10.132.0.16/23"],"mac_address":"0a:58:0a:84:00:10","gateway_ips":["10.132.0.1"],"routes":[{"dest":"10.132.0.0/14","nextHop":"10.132.0.1"},{"dest":"172.31.0.0/16","nextHop":"10.132.0.1"},{"dest":"169.254.0.5/32","nextHop":"10.132.0.1"},{"dest":"100.64.0.0/16","nextHop":"10.132.0.1"}],"ip_address":"10.132.0.16/23","gateway_ip":"10.132.0.1","role":"primary"}}' k8s.v1.cni.cncf.io/network-status: |- [{ "name": "ovn-kubernetes", "interface": "eth0", "ips": [ "10.132.0.16" ], "mac": "0a:58:0a:84:00:10", "default": true, "dns": {} }] creationTimestamp: "2026-10-31T08:00:12Z" generateName: dns-default- generation: 1 labels: controller-revision-hash: 7cdb689d4f dns.operator.openshift.io/daemonset-dns: default pod-template-generation: "1" topology.kubernetes.io/region: us-west-1 topology.kubernetes.io/zone: us-west-1a managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.ovn.org/pod-networks: {} manager: ip-10-0-137-71 operation: Update subresource: status time: "2026-10-31T08:00:12Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:cluster-autoscaler.kubernetes.io/enable-ds-eviction: {} f:target.workload.openshift.io/management: {} f:generateName: {} f:labels: .: {} f:controller-revision-hash: {} f:dns.operator.openshift.io/daemonset-dns: {} f:pod-template-generation: {} f:ownerReferences: .: {} k:{"uid":"27e05a22-6559-4756-be65-f9f5d281b252"}: {} f:spec: f:affinity: .: {} f:nodeAffinity: .: {} f:requiredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"dns"}: .: {} f:args: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:livenessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:name: {} f:ports: .: {} k:{"containerPort":5353,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} k:{"containerPort":5353,"protocol":"UDP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:readinessProbe: .: {} f:failureThreshold: {} f:httpGet: .: {} f:path: {} f:port: {} f:scheme: {} f:initialDelaySeconds: {} f:periodSeconds: {} f:successThreshold: {} f:timeoutSeconds: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/coredns"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} k:{"name":"kube-rbac-proxy"}: .: {} f:args: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:ports: .: {} k:{"containerPort":9154,"protocol":"TCP"}: .: {} f:containerPort: {} f:name: {} f:protocol: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/tls/private"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:nodeSelector: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"config-volume"}: .: {} f:configMap: .: {} f:defaultMode: {} f:items: {} f:name: {} f:name: {} k:{"name":"metrics-tls"}: .: {} f:name: {} f:secret: .: {} f:defaultMode: {} f:secretName: {} k:{"name":"tmp-dir"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-31T08:00:12Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.v1.cni.cncf.io/network-status: {} manager: multus-daemon operation: Update subresource: status time: "2026-10-31T08:00:29Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: f:observedGeneration: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:observedGeneration: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.132.0.16"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-10-31T08:00:42Z" name: dns-default-rgqlf namespace: openshift-dns ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: DaemonSet name: dns-default uid: 27e05a22-6559-4756-be65-f9f5d281b252 resourceVersion: "7104" uid: d7234f71-3c71-41c6-80d2-40c8a66bb3a2 spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchFields: - key: metadata.name operator: In values: - ip-10-0-137-71.us-west-1.compute.internal containers: - args: - -conf - /etc/coredns/Corefile command: - coredns image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 5 httpGet: path: /health port: 8080 scheme: HTTP initialDelaySeconds: 60 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 5 name: dns ports: - containerPort: 5353 name: dns protocol: UDP - containerPort: 5353 name: dns-tcp protocol: TCP readinessProbe: failureThreshold: 3 httpGet: path: /ready port: 8181 scheme: HTTP initialDelaySeconds: 10 periodSeconds: 3 successThreshold: 1 timeoutSeconds: 3 resources: requests: cpu: 50m memory: 70Mi securityContext: readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/coredns name: config-volume readOnly: true - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-d9rj8 readOnly: true - args: - --logtostderr - --secure-listen-address=:9154 - --upstream=http://127.0.0.1:9153/ - --tls-cert-file=/etc/tls/private/tls.crt - --tls-private-key-file=/etc/tls/private/tls.key - --tls-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=VersionTLS12 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d017b7d199b1d54e889bb1eb6e572d8e6d94ad92610894009ee0562c2a5c0f51 imagePullPolicy: IfNotPresent name: kube-rbac-proxy ports: - containerPort: 9154 name: metrics protocol: TCP resources: requests: cpu: 10m memory: 40Mi securityContext: readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/tls/private name: metrics-tls readOnly: true - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-d9rj8 readOnly: true dnsPolicy: Default enableServiceLinks: true imagePullSecrets: - name: dns-dockercfg-wn874 nodeName: ip-10-0-137-71.us-west-1.compute.internal nodeSelector: kubernetes.io/os: linux preemptionPolicy: PreemptLowerPriority priority: 2000001000 priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: dns serviceAccountName: dns terminationGracePeriodSeconds: 30 tolerations: - key: node-role.kubernetes.io/master operator: Exists - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists - effect: NoSchedule key: node.kubernetes.io/disk-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/memory-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/pid-pressure operator: Exists - effect: NoSchedule key: node.kubernetes.io/unschedulable operator: Exists volumes: - configMap: defaultMode: 420 items: - key: Corefile path: Corefile name: dns-default name: config-volume - name: metrics-tls secret: defaultMode: 420 secretName: dns-default-metrics-tls - emptyDir: {} name: tmp-dir - name: kube-api-access-d9rj8 projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:32Z" observedGeneration: 1 status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:12Z" observedGeneration: 1 status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:42Z" observedGeneration: 1 status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:42Z" observedGeneration: 1 status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:12Z" observedGeneration: 1 status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 50m memory: 70Mi containerID: cri-o://bf243070c7ff9538b94d803255b58390348337c2f9c4a92f2fb11f3c2a46b60d image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:4023dcf758240517ab8f3060eca20eae58955d7fa97cbcff59e116b7ed8cb976 lastState: {} name: dns ready: true resources: requests: cpu: 50m memory: 70Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T08:00:31Z" user: linux: gid: 0 supplementalGroups: - 0 uid: 0 volumeMounts: - mountPath: /etc/coredns name: config-volume readOnly: true recursiveReadOnly: Disabled - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-d9rj8 readOnly: true recursiveReadOnly: Disabled - allocatedResources: cpu: 10m memory: 40Mi containerID: cri-o://b9cd499caa86e5ad51bad027854fbbf85a411572b696e6fdd88282fc0c9a6c8d image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:d017b7d199b1d54e889bb1eb6e572d8e6d94ad92610894009ee0562c2a5c0f51 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9dee0e2e50ba834cb0a6d3007372f1673488f6538561a7dc0880a239dce9d59b lastState: {} name: kube-rbac-proxy ready: true resources: requests: cpu: 10m memory: 40Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T08:00:31Z" user: linux: gid: 65534 supplementalGroups: - 65534 uid: 65534 volumeMounts: - mountPath: /etc/tls/private name: metrics-tls readOnly: true recursiveReadOnly: Disabled - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-d9rj8 readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.137.71 hostIPs: - ip: 10.0.137.71 observedGeneration: 1 phase: Running podIP: 10.132.0.16 podIPs: - ip: 10.132.0.16 qosClass: Burstable startTime: "2026-10-31T08:00:12Z" - apiVersion: v1 kind: Pod metadata: creationTimestamp: "2026-10-31T07:59:48Z" generateName: node-resolver- generation: 1 labels: controller-revision-hash: 5bd854b484 dns.operator.openshift.io/daemonset-node-resolver: "" pod-template-generation: "1" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:target.workload.openshift.io/management: {} f:generateName: {} f:labels: .: {} f:controller-revision-hash: {} f:dns.operator.openshift.io/daemonset-node-resolver: {} f:pod-template-generation: {} f:ownerReferences: .: {} k:{"uid":"a8ed4a5d-cbe6-4906-9f07-b91605198588"}: {} f:spec: f:affinity: .: {} f:nodeAffinity: .: {} f:requiredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"dns-node-resolver"}: .: {} f:command: {} f:env: .: {} k:{"name":"CLUSTER_DOMAIN"}: .: {} f:name: {} f:value: {} k:{"name":"NAMESERVER"}: .: {} f:name: {} f:value: {} k:{"name":"SERVICES"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/hosts"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:hostNetwork: {} f:nodeSelector: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"hosts-file"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"tmp-dir"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-31T07:59:48Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: f:observedGeneration: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:observedGeneration: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.0.130.190"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-10-31T07:59:59Z" name: node-resolver-49j6n namespace: openshift-dns ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: DaemonSet name: node-resolver uid: a8ed4a5d-cbe6-4906-9f07-b91605198588 resourceVersion: "5378" uid: 5d8792d8-124f-4073-88fd-718ba27f268f spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchFields: - key: metadata.name operator: In values: - ip-10-0-130-190.us-west-1.compute.internal containers: - command: - /bin/bash - -c - | #!/bin/bash set -uo pipefail trap 'jobs -p | xargs kill || true; wait; exit 0' TERM OPENSHIFT_MARKER="openshift-generated-node-resolver" HOSTS_FILE="/etc/hosts" TEMP_FILE="/tmp/hosts.tmp" IFS=', ' read -r -a services <<< "${SERVICES}" # Make a temporary file with the old hosts file's attributes. if ! cp -f --attributes-only "${HOSTS_FILE}" "${TEMP_FILE}"; then echo "Failed to preserve hosts file. Exiting." exit 1 fi while true; do declare -A svc_ips for svc in "${services[@]}"; do # Fetch service IP from cluster dns if present. We make several tries # to do it: IPv4, IPv6, IPv4 over TCP and IPv6 over TCP. The two last ones # are for deployments with Kuryr on older OpenStack (OSP13) - those do not # support UDP loadbalancers and require reaching DNS through TCP. cmds=('dig -t A @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t AAAA @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t A +tcp +retry=0 @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t AAAA +tcp +retry=0 @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"') for i in ${!cmds[*]} do ips=($(eval "${cmds[i]}")) if [[ "$?" -eq 0 && "${#ips[@]}" -ne 0 ]]; then svc_ips["${svc}"]="${ips[@]}" break fi done done # Update /etc/hosts only if we get valid service IPs # We will not update /etc/hosts when there is coredns service outage or api unavailability # Stale entries could exist in /etc/hosts if the service is deleted if [[ -n "${svc_ips[*]-}" ]]; then # Build a new hosts file from /etc/hosts with our custom entries filtered out if ! sed --silent "/# ${OPENSHIFT_MARKER}/d; w ${TEMP_FILE}" "${HOSTS_FILE}"; then # Only continue rebuilding the hosts entries if its original content is preserved sleep 60 & wait continue fi # Append resolver entries for services rc=0 for svc in "${!svc_ips[@]}"; do for ip in ${svc_ips[${svc}]}; do echo "${ip} ${svc} ${svc}.${CLUSTER_DOMAIN} # ${OPENSHIFT_MARKER}" >> "${TEMP_FILE}" || rc=$? done done if [[ $rc -ne 0 ]]; then sleep 60 & wait continue fi # TODO: Update /etc/hosts atomically to avoid any inconsistent behavior # Replace /etc/hosts with our modified version if needed cmp "${TEMP_FILE}" "${HOSTS_FILE}" || cp -f "${TEMP_FILE}" "${HOSTS_FILE}" # TEMP_FILE is not removed to avoid file create/delete and attributes copy churn fi sleep 60 & wait unset svc_ips done env: - name: SERVICES value: image-registry.openshift-image-registry.svc - name: NAMESERVER value: 172.31.0.10 - name: CLUSTER_DOMAIN value: cluster.local image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 imagePullPolicy: IfNotPresent name: dns-node-resolver resources: requests: cpu: 5m memory: 21Mi securityContext: privileged: true readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/hosts name: hosts-file - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-8pghd readOnly: true dnsPolicy: ClusterFirst enableServiceLinks: true hostNetwork: true imagePullSecrets: - name: node-resolver-dockercfg-2n69q nodeName: ip-10-0-130-190.us-west-1.compute.internal nodeSelector: kubernetes.io/os: linux preemptionPolicy: PreemptLowerPriority priority: 2000001000 priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: node-resolver serviceAccountName: node-resolver terminationGracePeriodSeconds: 30 tolerations: - operator: Exists volumes: - hostPath: path: /etc/hosts type: File name: hosts-file - emptyDir: {} name: tmp-dir - name: kube-api-access-8pghd projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:59Z" observedGeneration: 1 status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:48Z" observedGeneration: 1 status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:59Z" observedGeneration: 1 status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:59Z" observedGeneration: 1 status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:48Z" observedGeneration: 1 status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 5m memory: 21Mi containerID: cri-o://6ab04ce1a21b81b957a4f8ad30301ad643070a332e591312b68a4cc61baef2d4 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 lastState: {} name: dns-node-resolver ready: true resources: requests: cpu: 5m memory: 21Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T07:59:58Z" user: linux: gid: 0 supplementalGroups: - 0 uid: 0 volumeMounts: - mountPath: /etc/hosts name: hosts-file - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-8pghd readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.130.190 hostIPs: - ip: 10.0.130.190 observedGeneration: 1 phase: Running podIP: 10.0.130.190 podIPs: - ip: 10.0.130.190 qosClass: Burstable startTime: "2026-10-31T07:59:48Z" - apiVersion: v1 kind: Pod metadata: creationTimestamp: "2026-10-31T07:59:55Z" generateName: node-resolver- generation: 1 labels: controller-revision-hash: 5bd854b484 dns.operator.openshift.io/daemonset-node-resolver: "" pod-template-generation: "1" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:target.workload.openshift.io/management: {} f:generateName: {} f:labels: .: {} f:controller-revision-hash: {} f:dns.operator.openshift.io/daemonset-node-resolver: {} f:pod-template-generation: {} f:ownerReferences: .: {} k:{"uid":"a8ed4a5d-cbe6-4906-9f07-b91605198588"}: {} f:spec: f:affinity: .: {} f:nodeAffinity: .: {} f:requiredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"dns-node-resolver"}: .: {} f:command: {} f:env: .: {} k:{"name":"CLUSTER_DOMAIN"}: .: {} f:name: {} f:value: {} k:{"name":"NAMESERVER"}: .: {} f:name: {} f:value: {} k:{"name":"SERVICES"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/hosts"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:hostNetwork: {} f:nodeSelector: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"hosts-file"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"tmp-dir"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-31T07:59:55Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: f:observedGeneration: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:observedGeneration: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.0.131.248"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-10-31T08:00:44Z" name: node-resolver-b7qqk namespace: openshift-dns ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: DaemonSet name: node-resolver uid: a8ed4a5d-cbe6-4906-9f07-b91605198588 resourceVersion: "7213" uid: 2643d76e-2eea-4866-bd68-60eae775c0ab spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchFields: - key: metadata.name operator: In values: - ip-10-0-131-248.us-west-1.compute.internal containers: - command: - /bin/bash - -c - | #!/bin/bash set -uo pipefail trap 'jobs -p | xargs kill || true; wait; exit 0' TERM OPENSHIFT_MARKER="openshift-generated-node-resolver" HOSTS_FILE="/etc/hosts" TEMP_FILE="/tmp/hosts.tmp" IFS=', ' read -r -a services <<< "${SERVICES}" # Make a temporary file with the old hosts file's attributes. if ! cp -f --attributes-only "${HOSTS_FILE}" "${TEMP_FILE}"; then echo "Failed to preserve hosts file. Exiting." exit 1 fi while true; do declare -A svc_ips for svc in "${services[@]}"; do # Fetch service IP from cluster dns if present. We make several tries # to do it: IPv4, IPv6, IPv4 over TCP and IPv6 over TCP. The two last ones # are for deployments with Kuryr on older OpenStack (OSP13) - those do not # support UDP loadbalancers and require reaching DNS through TCP. cmds=('dig -t A @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t AAAA @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t A +tcp +retry=0 @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t AAAA +tcp +retry=0 @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"') for i in ${!cmds[*]} do ips=($(eval "${cmds[i]}")) if [[ "$?" -eq 0 && "${#ips[@]}" -ne 0 ]]; then svc_ips["${svc}"]="${ips[@]}" break fi done done # Update /etc/hosts only if we get valid service IPs # We will not update /etc/hosts when there is coredns service outage or api unavailability # Stale entries could exist in /etc/hosts if the service is deleted if [[ -n "${svc_ips[*]-}" ]]; then # Build a new hosts file from /etc/hosts with our custom entries filtered out if ! sed --silent "/# ${OPENSHIFT_MARKER}/d; w ${TEMP_FILE}" "${HOSTS_FILE}"; then # Only continue rebuilding the hosts entries if its original content is preserved sleep 60 & wait continue fi # Append resolver entries for services rc=0 for svc in "${!svc_ips[@]}"; do for ip in ${svc_ips[${svc}]}; do echo "${ip} ${svc} ${svc}.${CLUSTER_DOMAIN} # ${OPENSHIFT_MARKER}" >> "${TEMP_FILE}" || rc=$? done done if [[ $rc -ne 0 ]]; then sleep 60 & wait continue fi # TODO: Update /etc/hosts atomically to avoid any inconsistent behavior # Replace /etc/hosts with our modified version if needed cmp "${TEMP_FILE}" "${HOSTS_FILE}" || cp -f "${TEMP_FILE}" "${HOSTS_FILE}" # TEMP_FILE is not removed to avoid file create/delete and attributes copy churn fi sleep 60 & wait unset svc_ips done env: - name: SERVICES value: image-registry.openshift-image-registry.svc - name: NAMESERVER value: 172.31.0.10 - name: CLUSTER_DOMAIN value: cluster.local image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 imagePullPolicy: IfNotPresent name: dns-node-resolver resources: requests: cpu: 5m memory: 21Mi securityContext: privileged: true readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/hosts name: hosts-file - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-gksnp readOnly: true dnsPolicy: ClusterFirst enableServiceLinks: true hostNetwork: true imagePullSecrets: - name: node-resolver-dockercfg-2n69q nodeName: ip-10-0-131-248.us-west-1.compute.internal nodeSelector: kubernetes.io/os: linux preemptionPolicy: PreemptLowerPriority priority: 2000001000 priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: node-resolver serviceAccountName: node-resolver terminationGracePeriodSeconds: 30 tolerations: - operator: Exists volumes: - hostPath: path: /etc/hosts type: File name: hosts-file - emptyDir: {} name: tmp-dir - name: kube-api-access-gksnp projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:05Z" observedGeneration: 1 status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:55Z" observedGeneration: 1 status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:05Z" observedGeneration: 1 status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2026-10-31T08:00:05Z" observedGeneration: 1 status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:55Z" observedGeneration: 1 status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 5m memory: 21Mi containerID: cri-o://344534c51787b068ae413244760530c73c11caaca123752f90ef477f14e7295d image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 lastState: {} name: dns-node-resolver ready: true resources: requests: cpu: 5m memory: 21Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T08:00:04Z" user: linux: gid: 0 supplementalGroups: - 0 uid: 0 volumeMounts: - mountPath: /etc/hosts name: hosts-file - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-gksnp readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.131.248 hostIPs: - ip: 10.0.131.248 observedGeneration: 1 phase: Running podIP: 10.0.131.248 podIPs: - ip: 10.0.131.248 qosClass: Burstable startTime: "2026-10-31T07:59:55Z" - apiVersion: v1 kind: Pod metadata: creationTimestamp: "2026-10-31T07:59:43Z" generateName: node-resolver- generation: 1 labels: controller-revision-hash: 5bd854b484 dns.operator.openshift.io/daemonset-node-resolver: "" pod-template-generation: "1" managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:target.workload.openshift.io/management: {} f:generateName: {} f:labels: .: {} f:controller-revision-hash: {} f:dns.operator.openshift.io/daemonset-node-resolver: {} f:pod-template-generation: {} f:ownerReferences: .: {} k:{"uid":"a8ed4a5d-cbe6-4906-9f07-b91605198588"}: {} f:spec: f:affinity: .: {} f:nodeAffinity: .: {} f:requiredDuringSchedulingIgnoredDuringExecution: {} f:containers: k:{"name":"dns-node-resolver"}: .: {} f:command: {} f:env: .: {} k:{"name":"CLUSTER_DOMAIN"}: .: {} f:name: {} f:value: {} k:{"name":"NAMESERVER"}: .: {} f:name: {} f:value: {} k:{"name":"SERVICES"}: .: {} f:name: {} f:value: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:privileged: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/etc/hosts"}: .: {} f:mountPath: {} f:name: {} k:{"mountPath":"/tmp"}: .: {} f:mountPath: {} f:name: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:hostNetwork: {} f:nodeSelector: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:tolerations: {} f:volumes: .: {} k:{"name":"hosts-file"}: .: {} f:hostPath: .: {} f:path: {} f:type: {} f:name: {} k:{"name":"tmp-dir"}: .: {} f:emptyDir: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-10-31T07:59:43Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} k:{"type":"PodScheduled"}: f:observedGeneration: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:observedGeneration: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:observedGeneration: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.0.137.71"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-10-31T07:59:53Z" name: node-resolver-s4wcr namespace: openshift-dns ownerReferences: - apiVersion: apps/v1 blockOwnerDeletion: true controller: true kind: DaemonSet name: node-resolver uid: a8ed4a5d-cbe6-4906-9f07-b91605198588 resourceVersion: "5089" uid: 67196722-bfc1-44d8-bfc7-86ee2dabcd3e spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchFields: - key: metadata.name operator: In values: - ip-10-0-137-71.us-west-1.compute.internal containers: - command: - /bin/bash - -c - | #!/bin/bash set -uo pipefail trap 'jobs -p | xargs kill || true; wait; exit 0' TERM OPENSHIFT_MARKER="openshift-generated-node-resolver" HOSTS_FILE="/etc/hosts" TEMP_FILE="/tmp/hosts.tmp" IFS=', ' read -r -a services <<< "${SERVICES}" # Make a temporary file with the old hosts file's attributes. if ! cp -f --attributes-only "${HOSTS_FILE}" "${TEMP_FILE}"; then echo "Failed to preserve hosts file. Exiting." exit 1 fi while true; do declare -A svc_ips for svc in "${services[@]}"; do # Fetch service IP from cluster dns if present. We make several tries # to do it: IPv4, IPv6, IPv4 over TCP and IPv6 over TCP. The two last ones # are for deployments with Kuryr on older OpenStack (OSP13) - those do not # support UDP loadbalancers and require reaching DNS through TCP. cmds=('dig -t A @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t AAAA @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t A +tcp +retry=0 @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"' 'dig -t AAAA +tcp +retry=0 @"${NAMESERVER}" +short "${svc}.${CLUSTER_DOMAIN}"|grep -v "^;"') for i in ${!cmds[*]} do ips=($(eval "${cmds[i]}")) if [[ "$?" -eq 0 && "${#ips[@]}" -ne 0 ]]; then svc_ips["${svc}"]="${ips[@]}" break fi done done # Update /etc/hosts only if we get valid service IPs # We will not update /etc/hosts when there is coredns service outage or api unavailability # Stale entries could exist in /etc/hosts if the service is deleted if [[ -n "${svc_ips[*]-}" ]]; then # Build a new hosts file from /etc/hosts with our custom entries filtered out if ! sed --silent "/# ${OPENSHIFT_MARKER}/d; w ${TEMP_FILE}" "${HOSTS_FILE}"; then # Only continue rebuilding the hosts entries if its original content is preserved sleep 60 & wait continue fi # Append resolver entries for services rc=0 for svc in "${!svc_ips[@]}"; do for ip in ${svc_ips[${svc}]}; do echo "${ip} ${svc} ${svc}.${CLUSTER_DOMAIN} # ${OPENSHIFT_MARKER}" >> "${TEMP_FILE}" || rc=$? done done if [[ $rc -ne 0 ]]; then sleep 60 & wait continue fi # TODO: Update /etc/hosts atomically to avoid any inconsistent behavior # Replace /etc/hosts with our modified version if needed cmp "${TEMP_FILE}" "${HOSTS_FILE}" || cp -f "${TEMP_FILE}" "${HOSTS_FILE}" # TEMP_FILE is not removed to avoid file create/delete and attributes copy churn fi sleep 60 & wait unset svc_ips done env: - name: SERVICES value: image-registry.openshift-image-registry.svc - name: NAMESERVER value: 172.31.0.10 - name: CLUSTER_DOMAIN value: cluster.local image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 imagePullPolicy: IfNotPresent name: dns-node-resolver resources: requests: cpu: 5m memory: 21Mi securityContext: privileged: true readOnlyRootFilesystem: true terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /etc/hosts name: hosts-file - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-2fdf8 readOnly: true dnsPolicy: ClusterFirst enableServiceLinks: true hostNetwork: true imagePullSecrets: - name: node-resolver-dockercfg-2n69q nodeName: ip-10-0-137-71.us-west-1.compute.internal nodeSelector: kubernetes.io/os: linux preemptionPolicy: PreemptLowerPriority priority: 2000001000 priorityClassName: system-node-critical restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: node-resolver serviceAccountName: node-resolver terminationGracePeriodSeconds: 30 tolerations: - operator: Exists volumes: - hostPath: path: /etc/hosts type: File name: hosts-file - emptyDir: {} name: tmp-dir - name: kube-api-access-2fdf8 projected: defaultMode: 420 sources: - serviceAccountToken: expirationSeconds: 3607 path: token - configMap: items: - key: ca.crt path: ca.crt name: kube-root-ca.crt - downwardAPI: items: - fieldRef: apiVersion: v1 fieldPath: metadata.namespace path: namespace - configMap: items: - key: service-ca.crt path: service-ca.crt name: openshift-service-ca.crt status: conditions: - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:53Z" observedGeneration: 1 status: "True" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:44Z" observedGeneration: 1 status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:53Z" observedGeneration: 1 status: "True" type: Ready - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:53Z" observedGeneration: 1 status: "True" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-10-31T07:59:43Z" observedGeneration: 1 status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 5m memory: 21Mi containerID: cri-o://d07f9937bf7ad9a7d4ac2466e3984d98d1cfea35a66435eb753e5839cf050cc0 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:2a8b58f028a9a4a0345ad1f809e47fb9913d7f77c731bfd785819e1c71be9472 lastState: {} name: dns-node-resolver ready: true resources: requests: cpu: 5m memory: 21Mi restartCount: 0 started: true state: running: startedAt: "2026-10-31T07:59:53Z" user: linux: gid: 0 supplementalGroups: - 0 uid: 0 volumeMounts: - mountPath: /etc/hosts name: hosts-file - mountPath: /tmp name: tmp-dir - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-2fdf8 readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.137.71 hostIPs: - ip: 10.0.137.71 observedGeneration: 1 phase: Running podIP: 10.0.137.71 podIPs: - ip: 10.0.137.71 qosClass: Burstable startTime: "2026-10-31T07:59:44Z" kind: PodList metadata: resourceVersion: "13145"