06c3c59ea2
- ci/generate-schemas.sh generates schemas from CRD manifests and K8s swagger - Sources: ArgoCD v3.3.2, Gateway API v1.5.1, Kubernetes v1.33.7 - Optionally fetches live cluster CRDs via kubectl when available - Generated schemas committed to schemas/ for CI use - Run `make schemas` to regenerate after CRD version bumps - validate-apps.sh and validate-clusters.sh check local schemas first
27 lines
1.0 KiB
Bash
Executable File
27 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
KUBE_VERSION="1.33.7"
|
|
|
|
SCHEMA_DIR="${SCHEMA_DIR:-schemas}"
|
|
|
|
schema_args=(
|
|
-schema-location "$SCHEMA_DIR/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json"
|
|
-schema-location "https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github_user/yannh/kubernetes-json-schema/master/{{.NormalizedKubernetesVersion}}-standalone{{.StrictSuffix}}/{{.ResourceKind}}{{.KindSuffix}}.json"
|
|
-schema-location "https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github_user/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json"
|
|
)
|
|
|
|
while IFS= read -r -d "" k; do
|
|
dir="$(dirname "$k")"
|
|
echo "==> kubeconform: $dir" >&2
|
|
|
|
kustomize build --enable-helm "$dir" \
|
|
| kubeconform \
|
|
-kubernetes-version "$KUBE_VERSION" \
|
|
-summary \
|
|
-output pretty \
|
|
-verbose \
|
|
-skip CustomResourceDefinition,GpuDevicePlugin,LBNodeAgent,ServiceGroup \
|
|
"${schema_args[@]}"
|
|
done < <(find apps/overlays -name kustomization.yaml -print0)
|