schemas/gen-missing-crd-schemas.sh
Rama main · réplica de lectura del repositorio original.
#!/usr/bin/env bash
# run from root
# this script will create a tar.gz with missing crds, for consumption by kubeval (validate-templates)
cd schemas/ || exit
export FILENAME_FORMAT='{kind}-{group}-{version}'
input_folder="input-crds"
gen_folder="generated-crd-schemas"
mkdir $gen_folder >/dev/null
#rm -rf ./$gen_folder/*
mkdir $input_folder >/dev/null
rm -rf $input_folder/*
# match all the crds of charts that didn't ship crds (some operators don't), and pull them
# (expects kube context to have a cluster that has them all)
# for pkg in "argoproj" "operators.coreos" "cert-manager" "istio" "kiali" "knative" "cnpg"; do
for pkg in "pipeline" "pipelinerun" "task" "taskrun" ; do
pkg_file="$input_folder/$pkg.yaml"
echo '' >$pkg_file
for crd in $(kubectl get crd | grep $pkg | awk '{print $1}'); do kubectl get crd $crd -o yaml | yq 'del(.metadata, .status)' - >>$pkg_file && printf "\n---\n" >>$pkg_file; done
pushd $gen_folder || exit
../crd2jsonschema.py ../input-crds/$pkg.yaml
popd || exit
done
cd $gen_folder && tar -zcvf ../$gen_folder.tar.gz .
rm -rf $input_folder $gen_folder