crd.generate.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
  4. BUNDLE_DIR="${1}"
  5. CRD_DIR="${2}"
  6. BUNDLE_YAML="${BUNDLE_DIR}/bundle.yaml"
  7. cd "${SCRIPT_DIR}"/../
  8. go run sigs.k8s.io/controller-tools/cmd/controller-gen \
  9. object:headerFile="hack/boilerplate.go.txt" \
  10. paths="./..."
  11. go run sigs.k8s.io/controller-tools/cmd/controller-gen crd \
  12. paths="./..." \
  13. output:crd:artifacts:config="${CRD_DIR}/bases"
  14. # Remove extra header lines in generated CRDs
  15. # This is needed for building the helm chart
  16. for f in "${CRD_DIR}"/bases/*.yaml; do
  17. if [[ $f == *kustomization.yaml ]];
  18. then
  19. continue;
  20. fi;
  21. tail -n +2 < "$f" > "$f.bkp"
  22. cp "$f.bkp" "$f"
  23. rm "$f.bkp"
  24. done
  25. shopt -s extglob
  26. yq e \
  27. '.spec.conversion.strategy = "Webhook" | .spec.conversion.webhook.conversionReviewVersions = ["v1"] | .spec.conversion.webhook.clientConfig.service.name = "kubernetes" | .spec.conversion.webhook.clientConfig.service.namespace = "default" | .spec.conversion.webhook.clientConfig.service.path = "/convert"' \
  28. "${CRD_DIR}"/bases/!(kustomization).yaml > "${BUNDLE_YAML}"