Description of problem:
We have TP feature in 4.15 for OLMv1. when we create bundledeployment with wrong bundle image (for example, it does not exist), the bundledeployment hangs for UnpackPending with type=HasValidBundle and status=true.
Version-Release number of selected component (if applicable):
[root@preserve-olm-env2 unknown]# oc get clusterversion NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version 4.15.0-0.nightly-2023-11-08-062604 True False 110m Cluster version is 4.15.0-0.nightly-2023-11-08-062604
How reproducible:
always
Steps to Reproduce:
[root@preserve-olm-env2 unknown]# oc patch featuregate cluster -p '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' --type=merge
[root@preserve-olm-env2 unknown]# cat notfound_plain.yaml
apiVersion: core.rukpak.io/v1alpha1
kind: BundleDeployment
metadata:
name: open
spec:
provisionerClassName: core-rukpak-io-plain
template:
metadata:
labels:
app: open
spec:
provisionerClassName: core-rukpak-io-plain
source:
image:
ref: quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound
type: image
[root@preserve-olm-env2 unknown]# oc apply -f notfound_plain.yaml
bundledeployment.core.rukpak.io/open created
[root@preserve-olm-env2 unknown]# oc get bd open
NAME ACTIVE BUNDLE INSTALL STATE AGE
open 35m
[root@preserve-olm-env2 unknown]# oc get bd open -o yaml
apiVersion: core.rukpak.io/v1alpha1
kind: BundleDeployment
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"core.rukpak.io/v1alpha1","kind":"BundleDeployment","metadata":{"annotations":{},"name":"open"},"spec":{"provisionerClassName":"core-rukpak-io-plain","template":{"metadata":{"labels":{"app":"open"}},"spec":{"provisionerClassName":"core-rukpak-io-plain","source":{"image":{"ref":"quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound"},"type":"image"}}}}}
creationTimestamp: "2023-11-10T02:31:18Z"
generation: 1
name: open
resourceVersion: "83975"
uid: 641e2322-eb1d-45f4-b0c3-04f28c7ed69f
spec:
provisionerClassName: core-rukpak-io-plain
template:
metadata:
labels:
app: open
spec:
provisionerClassName: core-rukpak-io-plain
source:
image:
ref: quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound
type: image
status:
conditions:
- lastTransitionTime: "2023-11-10T02:31:18Z"
message: Waiting for the open-d74984 Bundle to be unpacked
reason: UnpackPending
status: "True"
type: HasValidBundle
observedGeneration: 1
[root@preserve-olm-env2 unknown]# oc get bundle open-d74984 -o yaml
apiVersion: core.rukpak.io/v1alpha1
kind: Bundle
metadata:
creationTimestamp: "2023-11-10T02:31:18Z"
finalizers:
- core.rukpak.io/delete-cached-bundle
generation: 1
labels:
app: open
core.rukpak.io/bundle-template-hash: d74984
core.rukpak.io/owner-kind: BundleDeployment
core.rukpak.io/owner-name: open
name: open-d74984
ownerReferences:
- apiVersion: core.rukpak.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: BundleDeployment
name: open
uid: 641e2322-eb1d-45f4-b0c3-04f28c7ed69f
resourceVersion: "101414"
uid: 9a863866-8fda-436c-ad98-9b67d0a23340
spec:
provisionerClassName: core-rukpak-io-plain
source:
image:
ref: quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound
type: image
status:
conditions:
- lastTransitionTime: "2023-11-10T02:31:18Z"
message: Back-off pulling image "quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound"
reason: UnpackPending
status: "False"
type: Unpacked
observedGeneration: 1
phase: Pending
[root@preserve-olm-env2 unknown]# oc get pod -n openshift-rukpak open-d74984 -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
k8s.v1.cni.cncf.io/network-status: |-
[{
"name": "openshift-sdn",
"interface": "eth0",
"ips": [
"10.128.2.15"
],
"default": true,
"dns": {}
}]
openshift.io/scc: restricted-v2
seccomp.security.alpha.kubernetes.io/pod: runtime/default
creationTimestamp: "2023-11-10T02:31:18Z"
labels:
core.rukpak.io/owner-kind: Bundle
core.rukpak.io/owner-name: open-d74984
name: open-d74984
namespace: openshift-rukpak
ownerReferences:
- apiVersion: core.rukpak.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: Bundle
name: open-d74984
uid: 9a863866-8fda-436c-ad98-9b67d0a23340
resourceVersion: "101413"
uid: 02ecada6-1d5f-47fd-bbc1-a6187c760c5d
spec:
automountServiceAccountToken: false
containers:
- command:
- /bin/unpack
- --bundle-dir
- /
image: quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound
imagePullPolicy: IfNotPresent
name: bundle
resources: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsUser: 1000720000
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /bin
name: util
dnsPolicy: ClusterFirst
enableServiceLinks: true
imagePullSecrets:
- name: default-dockercfg-9bfh6
initContainers:
- command:
- cp
- -Rv
- /unpack
- /util/bin/unpack
image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9ff5c788179a0fa243a92d7e6cc073fac08dd478d6397a722fad978ff4ca1917
imagePullPolicy: IfNotPresent
name: install-unpacker
resources: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsUser: 1000720000
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /util/bin
name: util
nodeName: ip-10-0-75-130.us-east-2.compute.internal
preemptionPolicy: PreemptLowerPriority
priority: 0
restartPolicy: Never
schedulerName: default-scheduler
securityContext:
fsGroup: 1000720000
runAsNonRoot: false
seLinuxOptions:
level: s0:c27,c9
seccompProfile:
type: RuntimeDefault
serviceAccount: default
serviceAccountName: default
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
volumes:
- emptyDir: {}
name: util
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2023-11-10T02:31:26Z"
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: "2023-11-10T02:31:18Z"
message: 'containers with unready status: [bundle]'
reason: ContainersNotReady
status: "False"
type: Ready
- lastProbeTime: null
lastTransitionTime: "2023-11-10T02:31:18Z"
message: 'containers with unready status: [bundle]'
reason: ContainersNotReady
status: "False"
type: ContainersReady
- lastProbeTime: null
lastTransitionTime: "2023-11-10T02:31:18Z"
status: "True"
type: PodScheduled
containerStatuses:
- image: quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound
imageID: ""
lastState: {}
name: bundle
ready: false
restartCount: 0
started: false
state:
waiting:
message: Back-off pulling image "quay.io/olmqe/olmv1bundle:plain-pod-caseid-notfound"
reason: ImagePullBackOff
hostIP: 10.0.75.130
initContainerStatuses:
- containerID: cri-o://056be7f355f66bbb0e0105875c2d445c78114d7eac5965c871b603f75ff50cc2
image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:9ff5c788179a0fa243a92d7e6cc073fac08dd478d6397a722fad978ff4ca1917
imageID: 802dff5c1c8d26965381fe6f90a13579cf8b8d3c8cdc5b395d14b30204856a9f
lastState: {}
name: install-unpacker
ready: true
restartCount: 0
started: false
state:
terminated:
containerID: cri-o://056be7f355f66bbb0e0105875c2d445c78114d7eac5965c871b603f75ff50cc2
exitCode: 0
finishedAt: "2023-11-10T02:31:26Z"
reason: Completed
startedAt: "2023-11-10T02:31:26Z"
phase: Pending
podIP: 10.128.2.15
podIPs:
- ip: 10.128.2.15
qosClass: BestEffort
startTime: "2023-11-10T02:31:18Z"
[root@preserve-olm-env2 unknown]#
Actual results:
bundledeployment hangs for unpackpending
Expected results:
bundledployment fails with status error.
Additional info: