gitjob/scripts/controller-gen-generate.sh

24 lines
993 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
tmpdir=$(mktemp -d)
trap 'rm -rf ${tmpdir}' EXIT
log() {
echo "$*" >&2
}
# Ensure the latest version of controller-gen is installed
CONTROLLERGEN=controller-gen
CONTROLLERGEN_VERSION=$(curl -sL https://api.github.com/repos/kubernetes-sigs/controller-tools/releases/latest | jq -r ".tag_name")
if ! $CONTROLLERGEN --version | grep -q "${CONTROLLERGEN_VERSION}" ; then
log "Downloading controller-gen ${CONTROLLERGEN_VERSION} to a temporary directory. Run 'go install sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLERGEN_VERSION}' to get a persistent installation"
GOBIN="${tmpdir}/bin" go install sigs.k8s.io/controller-tools/cmd/controller-gen@${CONTROLLERGEN_VERSION}
CONTROLLERGEN="${tmpdir}/bin/controller-gen"
fi
# Run controller-gen
${CONTROLLERGEN} object:headerFile=scripts/boilerplate.go.txt,year="$(date +%Y)" paths="./pkg/apis/..."
${CONTROLLERGEN} crd webhook paths="./pkg/apis/..." output:stdout > chart/crds/crds.yaml