Skip to content

Che deployment blocked on OpenShift for IBM Z(s390x) — quay.io/openshift/origin-oauth-proxy has no s390x manifest #23895

Description

@swapnilsingh-ibm

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

  1. Provision an OpenShift cluster running on s390x worker nodes
  2. Install DevWorkspace Operator
  3. Apply deploy/deployment/openshift/combined.yaml --server-side
  4. Create a CheCluster CR
  5. 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

Image Image

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.

Metadata

Metadata

Assignees

Labels

area/che-operatorIssues and PRs related to Eclipse Che Kubernetes Operatorkind/bugOutline of a bug - must adhere to the bug report template.severity/P2Has a minor but important impact to the usage or development of the system.team/BThis team is responsible for the Web Terminal, the DevWorkspace Operator.

Type

No type

Projects

Status
Analyzing

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions