mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-22 06:19:47 +08:00
* feat(helm): split gateway and workspace charts Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com> * fix(helm): preserve split chart upgrade compatibility Keep workspace manifests valid after value validation and default legacy reused values to the combined resource topology. * fix(ci): preserve VM runtime for E2E The Rust cache restores target/ after VM runtime artifacts are staged, overwriting target/vm-runtime-compressed before openshell-driver-vm is built. Stage the compressed runtime outside target and pass that location through OPENSHELL_VM_RUNTIME_COMPRESSED_DIR so build.rs can embed the supervisor. Also locate the Helm split-ownership test repository root from the script path rather than git rev-parse. The test runs in a container where the GitHub checkout can be owned by a different UID and rejected as dubious ownership. Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com> * fix(ci): install yq for Helm ownership test The split-chart ownership regression uses yq to inspect rendered YAML, but the Helm CI container installs only tools declared in mise. Declare and lock yq so mise install --locked provides the test dependency. Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com> --------- Signed-off-by: Dhiraj Bokde <dbokde@nvidia.com>
62 lines
1.8 KiB
YAML
62 lines
1.8 KiB
YAML
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
suite: workspace namespace resources
|
|
templates:
|
|
- templates/serviceaccount.yaml
|
|
- templates/role.yaml
|
|
- templates/rolebinding.yaml
|
|
- templates/networkpolicy.yaml
|
|
release:
|
|
name: tenant-a
|
|
namespace: app-a
|
|
|
|
tests:
|
|
- it: creates the workspace role in the release namespace
|
|
template: templates/role.yaml
|
|
asserts:
|
|
- hasDocuments:
|
|
count: 1
|
|
- equal:
|
|
path: metadata.namespace
|
|
value: app-a
|
|
|
|
- it: binds the shared gateway service account
|
|
template: templates/rolebinding.yaml
|
|
set:
|
|
gateway.serviceAccount.name: shared-gateway
|
|
gateway.serviceAccount.namespace: openshell-system
|
|
asserts:
|
|
- equal:
|
|
path: metadata.namespace
|
|
value: app-a
|
|
- equal:
|
|
path: subjects[0].name
|
|
value: shared-gateway
|
|
- equal:
|
|
path: subjects[0].namespace
|
|
value: openshell-system
|
|
|
|
- it: selects gateway pods in the gateway namespace
|
|
template: templates/networkpolicy.yaml
|
|
set:
|
|
gateway.serviceAccount.namespace: openshell-system
|
|
gateway.networkPolicy.podSelector:
|
|
app.kubernetes.io/name: openshell
|
|
app.kubernetes.io/instance: central
|
|
asserts:
|
|
- equal:
|
|
path: spec.ingress[0].from[0].namespaceSelector.matchLabels["kubernetes.io/metadata.name"]
|
|
value: openshell-system
|
|
- equal:
|
|
path: spec.ingress[0].from[0].podSelector.matchLabels["app.kubernetes.io/instance"]
|
|
value: central
|
|
|
|
- it: supports a pre-existing sandbox service account
|
|
template: templates/serviceaccount.yaml
|
|
set:
|
|
sandboxServiceAccount.create: false
|
|
asserts:
|
|
- hasDocuments:
|
|
count: 0
|