Bake the conformance harness toolchain into infra/devcontainer so `make -C ci gate` runs identically here and in CI: - Containerfile: install kyverno CLI (1.13.4), kyverno-json, chainsaw (0.2.12), yamllint (1.35.1), check-jsonschema (0.29.4), yq (4.44.6) via new pinned RUN block; add diffutils + python3-pip; drop stale LIBVIRT_DEFAULT_URI; refresh header for the Proxmox(bpg)+conformance toolbox; extend /etc/dev-toolchain-versions provenance. - versions.env: add KYVERNO/KYVERNO_JSON/CHAINSAW/YAMLLINT/YQ/CHECK_JSONSCHEMA; align KUBECTL 1.32.0 -> 1.31.4. dev.sh build(): pass the new --build-args. - ci/versions.env: pin CHECK_JSONSCHEMA_VERSION=0.29.4 (single source of truth). Fix harness seams so the gate can run: - dev.sh run(): mount the sibling spec repo (home-network-k3s) read-only at /home-network-k3s for ci/spec-immutability.sh (R-TEST-06); conditional so the container still runs without it. - conformance/lib/common.sh conf_dirs_for_layer(): accept a comma/space list of layers and union the dirs, so ci/conformance.sh `run.sh --layer l2,l3` selects both layers in one pass (backward compatible for single layers). NOTE: ci/versions.env pins KYVERNO_JSON_VERSION=0.0.5, which has no upstream release (max tag is v0.0.3; platform/kyverno/scripts/run-l0.sh already defaults to v0.0.3). Baked v0.0.3 and flagged for PM to correct ci/versions.env. kyverno-json is not used by any static gate stage. Co-Authored-By: Claude Opus 4.8 <[email protected]>
32 lines
1.6 KiB
Bash
32 lines
1.6 KiB
Bash
# Pinned toolchain for the home-network-k3s dev container (the reproducible baseline).
|
|
# The non-Python prereqs (OpenTofu, age, sops, flux) are Go binaries, so — per the
|
|
# operator's rule — they are baked into a container image instead of a venv. The
|
|
# conformance test toolchain (kyverno CLI, kyverno-json, chainsaw, yamllint,
|
|
# check-jsonschema, yq) is likewise baked in so `make -C ci gate` runs here == in CI.
|
|
#
|
|
# NOTE: these are best-effort pins; bump to current stable if a download 404s at build.
|
|
# The conformance-tool versions below MUST stay in lockstep with ci/versions.env.
|
|
FEDORA_VERSION=44
|
|
OPENTOFU_VERSION=1.9.0
|
|
AGE_VERSION=1.2.1
|
|
SOPS_VERSION=3.9.4
|
|
FLUX_VERSION=2.4.0
|
|
# Aligned with ci/versions.env (KUBECTL=1.31.4) and the k3s 1.31.5 cluster.
|
|
KUBECTL_VERSION=1.31.4
|
|
HELM_VERSION=3.16.0
|
|
|
|
# --- Conformance test toolchain (match ci/versions.env) ----------------------
|
|
KYVERNO_VERSION=1.13.4
|
|
# ci/versions.env pins KYVERNO_JSON_VERSION=0.0.5, but NO such release exists:
|
|
# kyverno/kyverno-json's highest tag is v0.0.3 (git ls-remote --tags), and the
|
|
# platform's own platform/kyverno/scripts/run-l0.sh already defaults to v0.0.3.
|
|
# 0.0.5 is an erroneous pin in ci/versions.env — flagged to PM to correct there.
|
|
# We bake the real, platform-aligned v0.0.3 so the image builds. kyverno-json is
|
|
# NOT invoked by any static gate stage (ci/l0.sh uses `kyverno test` + check-jsonschema).
|
|
KYVERNO_JSON_VERSION=0.0.3
|
|
CHAINSAW_VERSION=0.2.12
|
|
YAMLLINT_VERSION=1.35.1
|
|
YQ_VERSION=4.44.6
|
|
CHECK_JSONSCHEMA_VERSION=0.29.4
|
|
# Proxmox provider (bpg/proxmox) is pinned in the tofu module (infra/tofu/versions.tf), not here.
|