Describe the bug
When attempting to Deploy Eclipse Che on an OpenShift cluster running on s390x worker nodes, the deployment fails before Che becomes operational.
The che-operator pod itself starts successfully on the s390x node, and most component images (che-dashboard, che-server, configbump, kube-rbac-proxy) correctly carry s390x manifests and pull without issue. The deployment breaks at the che-gateway pod, which runs four sidecar containers. Three start successfully, the fourth — the OAuth proxy authentication sidecar — enters ImagePullBackOff because its image has no s390x manifest.
The image in question is hardcoded in eclipse-che/che-operator at config/manager/manager.yaml:
- name: RELATED_IMAGE_gateway_authentication_sidecar
value: quay.io/openshift/origin-oauth-proxy:4.22
The quay.io/openshift/origin-oauth-proxy community images are built for linux/amd64 only. We verified the published tags and they don't carry an s390x manifest. As a result, Che cannot complete deployment on s390x OpenShift regardless of which version of the operator image is used, because this dependency is missing and making Che undeployable on s390x OpenShift.
Che version
next (development version)
Steps to reproduce
- Provision an OpenShift cluster running on s390x worker nodes
- Install DevWorkspace Operator
- Apply deploy/deployment/openshift/combined.yaml --server-side
- Create a CheCluster CR
- Observe che-gateway pod — oauth-proxy container enters ImagePullBackOff
Expected behavior
All four gateway containers start successfully and the Che deployment reaches a healthy state on s390x.
Runtime
OpenShift
Screenshots
Installation method
other (please specify in additional context)
Environment
other (please specify in additional context)
Eclipse Che Logs
oc describe pod -n eclipse-che che-gateway-cd77699ff-x9w76 | grep -A3 "Failed\|ErrImage\|image:"
Warning Failed 2m29s (x3 over 3m9s) kubelet Failed to pull image "quay.io/openshift/origin-oauth-proxy:4.22": unable to pull image or OCI artifact: pull image err: choosing an image from manifest list docker://quay.io/openshift/origin-oauth-proxy:4.22: no image found in manifest list for architecture "s390x", variant "", OS "linux"; artifact err: image reference: choose manifest instance: no image found in manifest list for architecture "s390x", variant "", OS "linux"
Warning Failed 2m29s (x3 over 3m9s) kubelet Error: ErrImagePull
Normal BackOff 110s (x7 over 3m4s) kubelet Back-off pulling image "quay.io/openshift/origin-oauth-proxy:4.22"
Warning Failed 110s (x7 over 3m4s) kubelet Error: ImagePullBackOff
Additional context
Installation method detail:
Direct manifest apply via oc apply --server-side -f deploy/deployment/openshift/combined.yaml from eclipse-che/che-operator
Environment detail:
OpenShift cluster running on IBM Z (s390x) hardware. Worker node architecture confirmed as s390x via oc get node.
Suggested fix — long-term:
Rather than hardcoding a community image reference for the OpenShift oauth-proxy sidecar, the operator could resolve this image dynamically from the OpenShift cluster's own release payload during CheCluster reconciliation: oc adm release info --image-for=oauth-proxy
Every OpenShift cluster carries an architecture-native oauth-proxy image in its release payload. Using this reference ensures the correct image is used on any architecture the cluster runs on — s390x, amd64, arm64, ppc64le — without maintaining per-architecture image references or depending on any external community image. This approach is consistent with how Red Hat's downstream Dev Spaces product handles this dependency.
Why this fix:
The quay.io/openshift/origin-oauth-proxy images are built by OpenShift's community CI pipeline for linux/amd64 only. This source repo (openshift/oauth-proxy) is maintained primarily through automated bot PRs with minimal human review activity is what we saw and is a forked repository too, so we are not sure if it is a practical path to add s390x build support for openshift/oauth-proxy. The fix therefore needs to live in eclipse-che/che-operator as suggested above.
Please guide us on how to proceed.
Describe the bug
When attempting to Deploy Eclipse Che on an OpenShift cluster running on s390x worker nodes, the deployment fails before Che becomes operational.
The
che-operatorpod itself starts successfully on the s390x node, and most component images (che-dashboard,che-server,configbump,kube-rbac-proxy) correctly carry s390x manifests and pull without issue. The deployment breaks at theche-gatewaypod, which runs four sidecar containers. Three start successfully, the fourth — the OAuth proxy authentication sidecar — entersImagePullBackOffbecause its image has no s390x manifest.The image in question is hardcoded in
eclipse-che/che-operatorat config/manager/manager.yaml:The quay.io/openshift/origin-oauth-proxy community images are built for
linux/amd64only. We verified the published tags and they don't carry an s390x manifest. As a result, Che cannot complete deployment on s390x OpenShift regardless of which version of the operator image is used, because this dependency is missing and making Che undeployable on s390x OpenShift.Che version
next (development version)
Steps to reproduce
Expected behavior
All four gateway containers start successfully and the Che deployment reaches a healthy state on s390x.
Runtime
OpenShift
Screenshots
Installation method
other (please specify in additional context)
Environment
other (please specify in additional context)
Eclipse Che Logs
Additional context
Installation method detail:
Direct manifest apply via
oc apply --server-side -f deploy/deployment/openshift/combined.yamlfrom eclipse-che/che-operatorEnvironment detail:
OpenShift cluster running on IBM Z (s390x) hardware. Worker node architecture confirmed as
s390xviaoc get node.Suggested fix — long-term:
Rather than hardcoding a community image reference for the OpenShift oauth-proxy sidecar, the operator could resolve this image dynamically from the OpenShift cluster's own release payload during CheCluster reconciliation:
oc adm release info --image-for=oauth-proxyEvery OpenShift cluster carries an architecture-native oauth-proxy image in its release payload. Using this reference ensures the correct image is used on any architecture the cluster runs on — s390x, amd64, arm64, ppc64le — without maintaining per-architecture image references or depending on any external community image. This approach is consistent with how Red Hat's downstream Dev Spaces product handles this dependency.
Why this fix:
The quay.io/openshift/origin-oauth-proxy images are built by OpenShift's community CI pipeline for
linux/amd64only. This source repo (openshift/oauth-proxy) is maintained primarily through automated bot PRs with minimal human review activity is what we saw and is a forked repository too, so we are not sure if it is a practical path to add s390x build support for openshift/oauth-proxy. The fix therefore needs to live in eclipse-che/che-operator as suggested above.Please guide us on how to proceed.