Skip to content

test(e2e): support configurable Kata RuntimeClass - #4454

Open
jiripetrlik wants to merge 1 commit into
NVIDIA:mainfrom
jiripetrlik:e2e-runtimeclass
Open

jiripetrlik wants to merge 1 commit into
NVIDIA:mainfrom
jiripetrlik:e2e-runtimeclass

Conversation

@jiripetrlik

@jiripetrlik jiripetrlik commented Oct 13, 2026 •

Copy link
Copy Markdown

Pass KATA_CONTAINERS_RUNTIME_CLASS to the Helm chart and label the selected RuntimeClass for sandbox resource admission.

Summary

Allow Kubernetes e2e runs to select a Kata RuntimeClass through KATA_CONTAINERS_RUNTIME_CLASS. Label the selected RuntimeClass for sandbox resource admission before installing OpenShell.

Related Issue

Changes

  • Pass KATA_CONTAINERS_RUNTIME_CLASS to Helm as server.defaultRuntimeClassName.
  • Set openshell.ai/sandbox-attachable=true on the selected RuntimeClass.
  • Preserve existing behavior when the variable is unset or empty.
  • Update the related deployment and e2e workflow guidance.

Testing

  • Bash syntax, ShellCheck, and git diff --check passed.

  • Ran Kubernetes e2e on Podman-backed Kind with kata-qemu and IMAGE_TAG=dev.

  • Confirmed RuntimeClass labeling and Kata workload execution.

  • All 6 CLI conformance scenarios passed.

  • Rust e2e results: 81 passed, 1 failed, 15 timed out, 3 skipped.

  • Kubernetes reported Kata sandbox creation errors:
    "Creating watcher returned error too many open files".

  • The assertion failure concerned an SSH session failing to reattach.

  • [*] Checks appropriate to the affected code and behavior pass

  • Unit tests added/updated (not applicable)

  • E2E tests added/updated (harness updated; no new test cases

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (not applicable)

Pass KATA_CONTAINERS_RUNTIME_CLASS to the Helm chart and label
the selected RuntimeClass for sandbox resource admission.

Signed-off-by: Jiri Petrlik <jpetrlik@redhat.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 13, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@Bobbins228 Bobbins228 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The configurable RuntimeClass wiring looks correct. Please restore the RuntimeClass's prior admission label after e2e runs against an existing cluster; the inline comment explains the persistent cluster-wide effect.

Comment thread e2e/with-kube-gateway.sh
helm_extra_args+=(--set "server.telemetryEnabled=${OPENSHELL_TELEMETRY_ENABLED}")
helm_extra_args+=(--set supervisor.sandboxRuntime.networkPolicyEnforced=true)
if [ -n "${KATA_CONTAINERS_RUNTIME_CLASS:-}" ]; then
kctl label runtimeclass "${KATA_CONTAINERS_RUNTIME_CLASS}" \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On an existing cluster (OPENSHELL_E2E_KUBE_CONTEXT), this overwrites a cluster-scoped admission label, but cleanup() never restores its previous value. Before the run, an unlabeled RuntimeClass (or one labeled false) is not approved for sandbox attachment. After the run, other OpenShell workspaces on that cluster can select it even though the test release is gone. Please record the previous label and restore it during cleanup, including when the run fails.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants