mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-13 04:51:00 +08:00
* refactor(config): normalize compute driver field names Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * refactor(config): introduce canonical gateway fields Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * refactor(config): enforce gateway schema version 2 Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): preserve compute driver runtime guarantees Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): address schema v2 review regressions Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): complete schema v2 migration safeguards Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(config): expand schema v2 regression coverage Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(config): add schema v2 parity manifest Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): correct parity manifest inventory Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * docs(config): record schema v2 intentional changes Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * docs(config): disposition schema v2 parity gaps Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): add dual schema parity harness Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): establish compute lifecycle parity baseline Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): preserve gateway option compatibility Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): record gateway option parity Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * docs(config): close gateway-wide parity gaps Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(podman): apply configured pids limit Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): validate Podman option parity Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): add Kubernetes option parity harness Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): record Kubernetes option parity Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): disposition VM parity lanes Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): add external driver parity lane Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(e2e): preserve external driver pull policy Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): attest parity artifacts and launches Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): require clean parity build sources Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): bind parity runtime artifacts Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(e2e): use isolated supervisor tags Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(e2e): qualify parity image tags Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(e2e): serve parity supervisor locally Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): isolate parity podman services Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): harden parity evidence provenance Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): pin parity sandbox artifacts Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): attest parity runtime inputs Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): bind parity runtime evidence Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): record compute boundary parity Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(e2e): disposition cross-cutting parity lanes Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(packaging): preflight gateway config upgrades Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): preserve rebase integration guarantees Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(ci): isolate temporary git signing config Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): update remaining schema v2 consumers Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(ci): provide e2fs tools to VM tests Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): align preflight with gateway startup Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(vm): preserve rootfs tar configuration Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * chore(config): adopt duration unit constructors Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(packaging): preflight RPM gateway config Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(config): address driver review findings Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(e2e): require fresh semantic parity evidence Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * fix(docker): update tests for renamed sandbox label Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> * test(gateway): preserve selective driver coverage after rebase Signed-off-by: Drew Newberry <anewberry@nvidia.com> --------- Signed-off-by: Jesse Jaggars <jjaggars@redhat.com> Signed-off-by: Drew Newberry <anewberry@nvidia.com> Co-authored-by: Drew Newberry <anewberry@nvidia.com>
77 lines
2.4 KiB
Bash
Executable File
77 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
# shellcheck source=tasks/scripts/gateway-pull-policy.sh
|
|
source "${ROOT}/tasks/scripts/gateway-pull-policy.sh"
|
|
|
|
assert_policy() {
|
|
local input=$1
|
|
local expected=$2
|
|
local actual
|
|
actual="$(normalize_image_pull_policy "${input}")"
|
|
if [[ "${actual}" != "${expected}" ]]; then
|
|
printf 'expected %q -> %q, got %q\n' "${input}" "${expected}" "${actual}" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
for input in always Always ALWAYS; do
|
|
assert_policy "${input}" always
|
|
done
|
|
for input in if_not_present IfNotPresent ifnotpresent IFNOTPRESENT missing MISSING; do
|
|
assert_policy "${input}" if_not_present
|
|
done
|
|
for input in never Never NEVER; do
|
|
assert_policy "${input}" never
|
|
done
|
|
for input in newer Newer NEWER; do
|
|
assert_policy "${input}" newer
|
|
done
|
|
|
|
if normalize_image_pull_policy sometimes >/dev/null 2>&1; then
|
|
echo "unsupported policy unexpectedly succeeded" >&2
|
|
exit 1
|
|
fi
|
|
|
|
for script in gateway.sh gateway-docker.sh gateway-podman.sh; do
|
|
if ! grep -q 'normalize_image_pull_policy' "${ROOT}/tasks/scripts/${script}"; then
|
|
echo "${script} does not normalize image pull policy" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo "gateway pull-policy tests passed"
|
|
|
|
# Empty and whitespace values are invalid rather than silently falling back to a default.
|
|
# Callers must supply one of the documented names.
|
|
assert_rejected_policy() {
|
|
local input=$1
|
|
if normalize_image_pull_policy "${input}" >/dev/null 2>&1; then
|
|
printf 'unsupported policy unexpectedly succeeded: %q\n' "${input}" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
assert_rejected_policy ""
|
|
assert_rejected_policy " "
|
|
assert_rejected_policy $'\t'
|
|
assert_rejected_policy " if_not_present"
|
|
assert_rejected_policy "if_not_present "
|
|
|
|
# The VM driver does not render an image-pull-policy field, so it is intentionally
|
|
# excluded from Docker/Podman/Kubernetes normalization. Do not add it until it consumes it.
|
|
if grep -Fq 'gateway-pull-policy.sh' "${ROOT}/tasks/scripts/gateway-vm.sh"; then
|
|
echo "gateway-vm.sh unexpectedly normalizes an unused image pull policy" >&2
|
|
exit 1
|
|
fi
|
|
if ! grep -Fq 'intentionally does not normalize this input' "${ROOT}/tasks/scripts/gateway-vm.sh"; then
|
|
echo "gateway-vm.sh does not document its pull-policy exclusion" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "gateway pull-policy edge-case tests passed"
|