mirror of
https://github.com/sredevopsorg/deepseek-kubernetes-sandbox.git
synced 2026-11-03 01:13:24 +00:00
Remove obsolete layout/migration prose and legacy gateway-alias references, reconcile the required-check policy, fix version-label/RBAC/workspace/channel drift, and de-duplicate the example and gateway docs. Rename the minimal manifest to 10-sandboxtemplate.yaml and mount the dsh-home PVC's workspace subPath at /workspace so the documented persistence is real. Enforce numbered top-level manifests in check-examples.sh. Verified with make check, yamllint, shellcheck, a Markdown link/anchor scan, and git diff --check. Co-authored-by: SREDevOpsAgents <agents@sredevops.org>
82 lines
3.3 KiB
YAML
82 lines
3.3 KiB
YAML
# Manifest shape validation and server-side dry-run. Split from ci.yaml so this
|
|
# job can use native on.pull_request.paths filtering and skip PRs that do not
|
|
# touch manifests, scripts or versions.env. The job name is `manifests`; because
|
|
# it is path-filtered it is an on-demand check, not a required branch-protection
|
|
# check (see docs/gitflow.md).
|
|
name: CI (manifests)
|
|
|
|
on:
|
|
pull_request:
|
|
paths:
|
|
- examples/**/manifests/**
|
|
- scripts/check-manifests.py
|
|
- versions.env
|
|
- .github/workflows/ci-manifests.yaml
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ci-manifests-${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
manifests:
|
|
name: manifests
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 25
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
persist-credentials: false
|
|
- name: Create kind cluster
|
|
uses: helm/kind-action@1544676c07bb3570fcb70166beaa07c4528fd4aa # v1.15.1
|
|
with:
|
|
version: v0.33.0
|
|
cluster_name: dsh-ci
|
|
- name: Read versions.env
|
|
run: |
|
|
set -euo pipefail
|
|
while IFS= read -r line; do
|
|
case "$line" in ''|'#'*) continue ;; esac
|
|
echo "$line" >> "$GITHUB_ENV"
|
|
done < versions.env
|
|
- name: Install agent-sandbox and Gateway API CRDs
|
|
run: |
|
|
set -euo pipefail
|
|
kubectl apply -f "https://github.com/kubernetes-sigs/agent-sandbox/releases/download/$AGENT_SANDBOX_VERSION/sandbox-with-extensions.yaml"
|
|
kubectl wait --for=condition=Established crd/sandboxtemplates.extensions.agents.x-k8s.io --timeout=180s
|
|
kubectl wait --for=condition=Established crd/sandboxwarmpools.extensions.agents.x-k8s.io --timeout=180s
|
|
kubectl wait --for=condition=Established crd/sandboxclaims.extensions.agents.x-k8s.io --timeout=180s
|
|
kubectl wait --for=condition=Established crd/sandboxes.agents.x-k8s.io --timeout=180s
|
|
kubectl apply -f "https://github.com/kubernetes-sigs/gateway-api/releases/download/$GATEWAY_API_VERSION/standard-install.yaml"
|
|
kubectl wait --for=condition=Established crd/gateways.gateway.networking.k8s.io --timeout=180s
|
|
kubectl wait --for=condition=Established crd/httproutes.gateway.networking.k8s.io --timeout=180s
|
|
- name: Set up Python
|
|
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
|
|
with:
|
|
python-version: "3.12"
|
|
- name: Install check dependencies
|
|
run: pip install "pyyaml==6.0.3"
|
|
- name: Validate manifest shape
|
|
run: python scripts/check-manifests.py
|
|
- name: Validate manifests (server dry-run)
|
|
run: |
|
|
set -euo pipefail
|
|
kubectl create namespace dsh-demo
|
|
shopt -s globstar nullglob
|
|
count=0
|
|
for file in examples/*/manifests/**/*.yaml; do
|
|
case "$file" in *.yaml.example) continue ;; esac
|
|
echo "== $file =="
|
|
kubectl apply --dry-run=server -f "$file"
|
|
count=$((count + 1))
|
|
done
|
|
if [ "$count" -eq 0 ]; then
|
|
echo "no manifests were validated" >&2
|
|
exit 1
|
|
fi
|
|
echo "validated $count manifests"
|