--- apiVersion: v1 kind: Pod metadata: annotations: k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["10.134.0.44/23"],"mac_address":"0a:58:0a:86:00:2c","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.44/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.44" ], "mac": "0a:58:0a:86:00:2c", "default": true, "dns": {} }] openshift.io/scc: restricted-v2 seccomp.security.alpha.kubernetes.io/pod: runtime/default security.openshift.io/validated-scc-subject-type: user creationTimestamp: "2026-04-17T00:00:00Z" generateName: image-pruner-29606400- generation: 1 labels: batch.kubernetes.io/controller-uid: 3b6f9814-6e81-4a22-a303-2602cbc8234f batch.kubernetes.io/job-name: image-pruner-29606400 controller-uid: 3b6f9814-6e81-4a22-a303-2602cbc8234f job-name: image-pruner-29606400 managedFields: - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:k8s.ovn.org/pod-networks: {} manager: ip-10-0-136-153 operation: Update subresource: status time: "2026-04-17T00:00:00Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:generateName: {} f:labels: .: {} f:batch.kubernetes.io/controller-uid: {} f:batch.kubernetes.io/job-name: {} f:controller-uid: {} f:job-name: {} f:ownerReferences: .: {} k:{"uid":"3b6f9814-6e81-4a22-a303-2602cbc8234f"}: {} f:spec: f:affinity: {} f:containers: k:{"name":"image-pruner"}: .: {} f:args: {} f:command: {} f:image: {} f:imagePullPolicy: {} f:name: {} f:resources: .: {} f:requests: .: {} f:cpu: {} f:memory: {} f:securityContext: .: {} f:readOnlyRootFilesystem: {} f:terminationMessagePath: {} f:terminationMessagePolicy: {} f:volumeMounts: .: {} k:{"mountPath":"/var/run/configmaps/serviceca"}: .: {} f:mountPath: {} f:name: {} f:readOnly: {} f:dnsPolicy: {} f:enableServiceLinks: {} f:priorityClassName: {} f:restartPolicy: {} f:schedulerName: {} f:securityContext: {} f:serviceAccount: {} f:serviceAccountName: {} f:terminationGracePeriodSeconds: {} f:volumes: .: {} k:{"name":"serviceca"}: .: {} f:configMap: .: {} f:defaultMode: {} f:name: {} f:name: {} manager: kube-controller-manager operation: Update time: "2026-04-17T00:00:00Z" - 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-04-17T00:00:00Z" - apiVersion: v1 fieldsType: FieldsV1 fieldsV1: f:status: f:conditions: k:{"type":"ContainersReady"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:reason: {} f:status: {} f:type: {} k:{"type":"Initialized"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:reason: {} f:status: {} f:type: {} k:{"type":"PodReadyToStartContainers"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:status: {} f:type: {} k:{"type":"Ready"}: .: {} f:lastProbeTime: {} f:lastTransitionTime: {} f:reason: {} f:status: {} f:type: {} f:containerStatuses: {} f:hostIP: {} f:hostIPs: {} f:phase: {} f:podIP: {} f:podIPs: .: {} k:{"ip":"10.134.0.44"}: .: {} f:ip: {} f:startTime: {} manager: kubelet operation: Update subresource: status time: "2026-04-17T00:00:02Z" name: image-pruner-29606400-cvrh8 namespace: openshift-image-registry ownerReferences: - apiVersion: batch/v1 blockOwnerDeletion: true controller: true kind: Job name: image-pruner-29606400 uid: 3b6f9814-6e81-4a22-a303-2602cbc8234f resourceVersion: "45375" uid: db2d0971-2c87-4895-8796-19e99f1e0b6d spec: affinity: {} containers: - args: - -c - | set -eu "$@" && exit for i in 1 2 3 4 5; do echo "attempt #$i has failed (exit code $?), going to make another attempt..." >&2 sleep $(($i * 30)) "$@" && break # this is the last command of the script, so its last failure will be exit code of the script done - arg0 - oc - adm - prune - images - --confirm=true - --certificate-authority=/var/run/configmaps/serviceca/service-ca.crt - --keep-tag-revisions=3 - --keep-younger-than=60m - --ignore-invalid-refs=true - --loglevel=1 - --prune-registry=true - --registry-url=https://image-registry.openshift-image-registry.svc:5000 command: - /bin/sh image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:331caf7efdfbf739b1585570e0004ebd8b5301a6977fbc7b2c64a07475354bc8 imagePullPolicy: IfNotPresent name: image-pruner resources: requests: cpu: 100m memory: 256Mi securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 1000300000 terminationMessagePath: /dev/termination-log terminationMessagePolicy: FallbackToLogsOnError volumeMounts: - mountPath: /var/run/configmaps/serviceca name: serviceca readOnly: true - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-gxx7f readOnly: true dnsPolicy: ClusterFirst enableServiceLinks: true imagePullSecrets: - name: pruner-dockercfg-6vd9v nodeName: ip-10-0-136-153.ec2.internal preemptionPolicy: PreemptLowerPriority priority: 2000000000 priorityClassName: system-cluster-critical restartPolicy: Never schedulerName: default-scheduler securityContext: fsGroup: 1000300000 seLinuxOptions: level: s0:c17,c14 seccompProfile: type: RuntimeDefault serviceAccount: pruner serviceAccountName: pruner terminationGracePeriodSeconds: 30 tolerations: - effect: NoExecute key: node.kubernetes.io/not-ready operator: Exists tolerationSeconds: 300 - effect: NoExecute key: node.kubernetes.io/unreachable operator: Exists tolerationSeconds: 300 - effect: NoSchedule key: node.kubernetes.io/memory-pressure operator: Exists volumes: - configMap: defaultMode: 420 name: serviceca name: serviceca - name: kube-api-access-gxx7f 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-04-17T00:00:02Z" status: "False" type: PodReadyToStartContainers - lastProbeTime: null lastTransitionTime: "2026-04-17T00:00:00Z" reason: PodCompleted status: "True" type: Initialized - lastProbeTime: null lastTransitionTime: "2026-04-17T00:00:00Z" reason: PodCompleted status: "False" type: Ready - lastProbeTime: null lastTransitionTime: "2026-04-17T00:00:00Z" reason: PodCompleted status: "False" type: ContainersReady - lastProbeTime: null lastTransitionTime: "2026-04-17T00:00:00Z" status: "True" type: PodScheduled containerStatuses: - allocatedResources: cpu: 100m memory: 256Mi containerID: cri-o://bb43781e96f6cc2539bbe487f3975437fa05e4ecdb86a820acf654ab850892b2 image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:331caf7efdfbf739b1585570e0004ebd8b5301a6977fbc7b2c64a07475354bc8 imageID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:24a4540aecd65dc2af9b2023150dfb2d385169654f781efe70df51c623076d78 lastState: {} name: image-pruner ready: false resources: requests: cpu: 100m memory: 256Mi restartCount: 0 started: false state: terminated: containerID: cri-o://bb43781e96f6cc2539bbe487f3975437fa05e4ecdb86a820acf654ab850892b2 exitCode: 0 finishedAt: "2026-04-17T00:00:01Z" reason: Completed startedAt: "2026-04-17T00:00:00Z" user: linux: gid: 0 supplementalGroups: - 0 - 1000300000 uid: 1000300000 volumeMounts: - mountPath: /var/run/configmaps/serviceca name: serviceca readOnly: true recursiveReadOnly: Disabled - mountPath: /var/run/secrets/kubernetes.io/serviceaccount name: kube-api-access-gxx7f readOnly: true recursiveReadOnly: Disabled hostIP: 10.0.136.153 hostIPs: - ip: 10.0.136.153 phase: Succeeded podIP: 10.134.0.44 podIPs: - ip: 10.134.0.44 qosClass: Burstable startTime: "2026-04-17T00:00:00Z"