helm.generate.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  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. HELM_DIR="${2}"
  6. if [[ "$OSTYPE" == "darwin"* ]]; then
  7. SEDPRG="gsed"
  8. else
  9. SEDPRG="sed"
  10. fi
  11. cd "${SCRIPT_DIR}"/../
  12. # Split the generated bundle yaml file to inject control flags
  13. yq e -Ns "\"${HELM_DIR}/templates/crds/\" + .spec.names.singular" ${BUNDLE_DIR}/bundle.yaml
  14. # Add helm if statement for controlling the install of CRDs
  15. for i in "${HELM_DIR}"/templates/crds/*.yml; do
  16. export CRDS_FLAG_NAME="create$(yq e '.spec.names.kind' $i)"
  17. cp "$i" "$i.bkp"
  18. if [[ "$CRDS_FLAG_NAME" == *"Cluster"* ]]; then
  19. echo "{{- if and (.Values.installCRDs) (.Values.crds.$CRDS_FLAG_NAME) }}" > "$i"
  20. elif [[ "$$CRDS_FLAG_NAME" == *"PushSecret"* ]]; then
  21. echo "{{- if and (.Values.installCRDs) (.Values.crds.$$CRDS_FLAG_NAME) }}" > "$$i"
  22. else
  23. echo "{{- if .Values.installCRDs }}" > "$i"
  24. fi
  25. cat "$i.bkp" >> "$i"
  26. echo "{{- end }}" >> "$i"
  27. rm "$i.bkp"
  28. $SEDPRG -i 's/name: kubernetes/name: {{ include "external-secrets.fullname" . }}-webhook/g' "$i"
  29. $SEDPRG -i 's/namespace: default/namespace: {{ .Release.Namespace | quote }}/g' "$i"
  30. mv "$i" "${i%.yml}.yaml"
  31. done