Install and verify Knative Serving v1.22
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

This commit is contained in:
codex 2026-07-26 20:16:30 +02:00
parent a2e6ac46e8
commit 0703e8e1dd
6 changed files with 67 additions and 6 deletions

12
install/knative/README.md Normal file
View file

@ -0,0 +1,12 @@
# Knative Serving installation
`install.sh` verifies repository-pinned SHA-256 checksums for the upstream
Serving and Kourier v1.22.0 assets before applying them over SSH. It is
idempotent. Kourier is kept `ClusterIP`; public entry through Traefik, DNS, and
TLS requires separate reef admission evidence.
Run `install.sh railiance01`, then `verify.sh railiance01`.
Before workload admission, rollback deletes Kourier, Serving core, then CRDs
using the same verified assets. After Knative Services exist, removal requires
a workload migration and backup review and is not unattended.

24
install/knative/install.sh Executable file
View file

@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -euo pipefail
root="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$root/release-lock.env"
target="${1:-railiance01}"
stage="$(mktemp -d)"
trap 'rm -rf "$stage"' EXIT
download() {
curl -fsSL --retry 3 "$1" -o "$2"
printf '%s %s\n' "$3" "$2" | sha256sum --check --status
}
serving="https://github.com/knative/serving/releases/download/knative-v${KNATIVE_VERSION}"
kourier="https://github.com/knative-extensions/net-kourier/releases/download/knative-v${KNATIVE_VERSION}"
download "$serving/serving-crds.yaml" "$stage/crds.yaml" "$SERVING_CRDS_SHA256"
download "$serving/serving-core.yaml" "$stage/core.yaml" "$SERVING_CORE_SHA256"
download "$kourier/kourier.yaml" "$stage/kourier.yaml" "$KOURIER_SHA256"
ssh "$target" kubectl apply -f - < "$stage/crds.yaml"
ssh "$target" kubectl apply -f - < "$stage/core.yaml"
ssh "$target" kubectl wait --for=condition=Available deployment --all -n knative-serving --timeout=300s
ssh "$target" kubectl apply -f - < "$stage/kourier.yaml"
ssh "$target" kubectl set image deployment/3scale-kourier-gateway -n kourier-system "kourier-gateway=$ENVOY_IMAGE"
ssh "$target" kubectl patch configmap/config-network -n knative-serving --type merge -p '{"data":{"ingress-class":"kourier.ingress.networking.knative.dev"}}'
ssh "$target" kubectl patch service/kourier -n kourier-system --type merge -p '{"spec":{"type":"ClusterIP"}}'
ssh "$target" kubectl wait --for=condition=Available deployment --all -n kourier-system --timeout=300s

View file

@ -0,0 +1,5 @@
KNATIVE_VERSION=1.22.0
SERVING_CRDS_SHA256=b7876869026e571fe41cef6c7345f37f8190a80f6a23b45010981347f97f97bc
SERVING_CORE_SHA256=86049684cb235763fc230763f2a0ca740f47ed47119b7851fab2da96cec1bf6e
KOURIER_SHA256=6f050d6149020164e83aef96a4d9388534830b9c2943abdbbed816220fe8126c
ENVOY_IMAGE=docker.io/envoyproxy/envoy@sha256:1c2b79776c6e3b38e8b0113b825e6a599f9bfc08d680c199d80bf8964856c529

9
install/knative/verify.sh Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
target="${1:-railiance01}"
ssh "$target" 'set -e
test "$(kubectl get namespace knative-serving -o go-template="{{index .metadata.labels \"app.kubernetes.io/version\"}}")" = "1.22.0"
test "$(kubectl get service kourier -n kourier-system -o jsonpath="{.spec.type}")" = "ClusterIP"
test "$(kubectl get configmap config-network -n knative-serving -o jsonpath="{.data.ingress-class}")" = "kourier.ingress.networking.knative.dev"
kubectl wait --for=condition=Available deployment --all -n knative-serving --timeout=120s
kubectl wait --for=condition=Available deployment --all -n kourier-system --timeout=120s'