Merge e2e kubernetes openshift - #1
Closed
jgarciao wants to merge 1 commit into
Closed
Conversation
Running `mise run e2e:kubernetes` on OpenShift required manual namespace
creation, SCC grants, Helm value overrides, and cleanup. A separate
`e2e:openshift` task existed but only checked pod readiness without
running the Rust e2e test suite, and even with the suite wired up the
SSH-relay `sandbox connect` path stalled to the ready timeout because
`kubectl port-forward` cannot carry round-trip-heavy SSH over the
internet.
The harness now auto-detects OpenShift via the `route.openshift.io` API
group and, on OpenShift, both configures the cluster and switches the
gateway transport automatically:
- Drives the gateway through a passthrough OpenShift Route secured with
mandatory mTLS instead of port-forward, so the connect suites
(live_policy_update, port_forward, sync, connect-based
sandbox_lifecycle, settings_management) actually pass. Computes the
Route host from the cluster ingress domain, extracts client mTLS
material from the openshell-client-tls secret, waits for the Route to
serve mTLS, asserts a certless caller is rejected at the TLS
handshake, and registers an mTLS CLI gateway pointing at the Route.
- Applies an SCC-compatible Helm values overlay that removes hardcoded
runAsUser/fsGroup, letting OpenShift assign UIDs from the namespace
range.
- Grants the privileged SCC to openshell-sandbox before Helm install
and removes it during cleanup.
- Grants the anyuid SCC to the PostgreSQL fixture service account in
DB scenarios and removes it during cleanup.
- All oc commands use --context to target the correct cluster.
The OpenShift e2e overlay (ci/values-openshift-e2e.yaml) turns TLS back
on, enables the Route, promotes the cert-verified caller to a dev
principal, and forces `image.pullPolicy`/`supervisor.image.pullPolicy`
to Always so runs against the `latest` upstream image use it instead of
a stale copy cached on the cluster nodes. Every OpenShift branch is
gated on OPENSHIFT_DETECTED, so the vanilla-Kubernetes port-forward path
is unchanged.
The Helm template for podSecurityContext is wrapped with {{- with }} so
null values omit the block instead of rendering invalid YAML.
The separate e2e:openshift task and e2e-openshift.sh script are removed
since e2e:kubernetes now covers OpenShift.
TESTING.md is updated with Kubernetes e2e documentation including
OpenShift auto-detection, dropping the e2e-host-gateway feature on
remote clusters, pinning IMAGE_TAG when the CLI and image versions
differ, task variants, and environment variables.
The debug-openshell-cluster skill gains an OpenShift platform row and
two SCC failure patterns (gateway rejected over hardcoded runAsUser,
sandbox missing the privileged SCC) covering the SCC handling and
podSecurityContext behavior this change introduces.
Signed-off-by: Jorge Garcia Oncins <jgarciao@redhat.com>
jgarciao
changed the base branch from
main
to
fix/3033-helm-podsecuritycontext-null
August 31, 2026 14:49
jgarciao
changed the base branch from
fix/3033-helm-podsecuritycontext-null
to
main
August 31, 2026 14:49
Owner
Author
|
Sent opendatahub-io#30 instead to get CodeRabbit reviews |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Running
mise run e2e:kuberneteson OpenShift required manual namespace creation, SCC grants, Helm value overrides, and cleanup. A separatee2e:openshifttask existed but only checked pod readiness without running the Rust e2e test suite, and even with the suite wired up the SSH-relaysandbox connectpath stalled to the ready timeout becausekubectl port-forwardcannot carry round-trip-heavy SSH over the internet.The harness now auto-detects OpenShift via the
route.openshift.ioAPI group and, on OpenShift, both configures the cluster and switches the gateway transport automatically:The OpenShift e2e overlay (ci/values-openshift-e2e.yaml) turns TLS back on, enables the Route, promotes the cert-verified caller to a dev principal, and forces
image.pullPolicy/supervisor.image.pullPolicyto Always so runs against thelatestupstream image use it instead of a stale copy cached on the cluster nodes. Every OpenShift branch is gated on OPENSHIFT_DETECTED, so the vanilla-Kubernetes port-forward path is unchanged.The Helm template for podSecurityContext is wrapped with {{- with }} so null values omit the block instead of rendering invalid YAML.
The separate e2e:openshift task and e2e-openshift.sh script are removed since e2e:kubernetes now covers OpenShift.
TESTING.md is updated with Kubernetes e2e documentation including OpenShift auto-detection, dropping the e2e-host-gateway feature on remote clusters, pinning IMAGE_TAG when the CLI and image versions differ, task variants, and environment variables.
The debug-openshell-cluster skill gains an OpenShift platform row and two SCC failure patterns (gateway rejected over hardcoded runAsUser, sandbox missing the privileged SCC) covering the SCC handling and podSecurityContext behavior this change introduces.