From 6960d9d3545e294d3206c08d46899f747914cd9d Mon Sep 17 00:00:00 2001 From: Xabier Larrakoetxea Date: Tue, 3 Mar 2020 19:41:52 +0100 Subject: [PATCH] Add crd generation Signed-off-by: Xabier Larrakoetxea --- Dockerfile | 17 +++++++++++------ hack/update-codegen.sh | 4 +--- hack/update-crd.sh | 31 +++++++++++++++++++++++++++++++ hack/update-openapi.sh | 7 ++++--- 4 files changed, 47 insertions(+), 12 deletions(-) create mode 100755 hack/update-crd.sh diff --git a/Dockerfile b/Dockerfile index 948b3bf..ecf6dbc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,6 @@ -FROM golang:1.13 +FROM golang:1.14 ARG CODEGEN_VERSION="1.17.3" +ARG CONTROLLER_GEN_VERSION="0.2.5" RUN apt-get update && \ apt-get install -y \ @@ -21,9 +22,12 @@ RUN wget http://github.com/kubernetes/code-generator/archive/kubernetes-${CODEGE tar zxvf kubernetes-${CODEGEN_VERSION}.tar.gz --strip 1 -C /go/src/k8s.io/api/ && \ rm kubernetes-${CODEGEN_VERSION}.tar.gz && \ \ + wget https://github.com/openshift/kubernetes-sigs-controller-tools/releases/download/v${CONTROLLER_GEN_VERSION}/controller-gen-linux-amd64 && \ + mv controller-gen-linux-amd64 /usr/bin/controller-gen && \ + chmod a+x /usr/bin/controller-gen && \ + \ go get k8s.io/kube-openapi/cmd/openapi-gen - # Create user ARG uid=1000 ARG gid=1000 @@ -32,10 +36,11 @@ RUN addgroup --gid $gid codegen && \ chown codegen:codegen -R /go COPY hack /hack -RUN chown codegen:codegen -R /hack - +RUN chown codegen:codegen -R /hack && \ + mv /hack/* /usr/bin USER codegen -WORKDIR /hack -CMD ["./update-codegen.sh"] \ No newline at end of file +WORKDIR /usr/bin + +CMD ["update-codegen.sh"] \ No newline at end of file diff --git a/hack/update-codegen.sh b/hack/update-codegen.sh index bca8c89..0891abe 100755 --- a/hack/update-codegen.sh +++ b/hack/update-codegen.sh @@ -1,8 +1,6 @@ #!/usr/bin/env bash -set -o errexit -set -o nounset -set -o pipefail ++set -eufo pipefail ## Project specific data diff --git a/hack/update-crd.sh b/hack/update-crd.sh new file mode 100755 index 0000000..bfe6576 --- /dev/null +++ b/hack/update-crd.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +set -eufo pipefail + +GO_PROJECT_ROOT="${GO_PROJECT_ROOT:-""}" +CRD_TYPES_PATH="${CRD_TYPES_PATH:-""}" +CRD_OUT_PATH="${CRD_OUT_PATH:-""}" + + +[ -z "$GO_PROJECT_ROOT" ] && echo "GO_PROJECT_ROOT env var is required" && exit 1; +[ -z "$CRD_TYPES_PATH" ] && echo "CRD_TYPES_PATH env var is required" && exit 1; +[ -z "$CRD_OUT_PATH" ] && echo "CRD_OUT_PATH env var is required" && exit 1; + + +GO_PROJECT_ROOT=$(realpath ${GO_PROJECT_ROOT}) +CRD_TYPES_PATH=$(realpath ${CRD_TYPES_PATH}) +CRD_OUT_PATH=$(realpath ${CRD_OUT_PATH}) + +cd ${GO_PROJECT_ROOT} + +# Needs relative paths. +CRD_TYPES_PATH=$(realpath --relative-to="${PWD}" ${CRD_TYPES_PATH}) +CRD_OUT_PATH=$(realpath --relative-to="${PWD}" ${CRD_OUT_PATH}) + +mkdir -p ${CRD_OUT_PATH} +echo "Generating CRD manifests..." + +controller-gen \ + crd:trivialVersions=true \ + paths="./${CRD_TYPES_PATH}/..." \ + output:dir="./${CRD_OUT_PATH}" \ No newline at end of file diff --git a/hack/update-openapi.sh b/hack/update-openapi.sh index ea4a32e..0d5a60f 100755 --- a/hack/update-openapi.sh +++ b/hack/update-openapi.sh @@ -1,8 +1,6 @@ #!/usr/bin/env bash -set -o errexit -set -o nounset -set -o pipefail +set -eufo pipefail ## CRD paths. @@ -11,6 +9,9 @@ set -o pipefail ## Openapi output path. #OPENAPI_OUTPUT_PACKAGE=github.com/someone/mypackage/openapi +CRD_PACKAGES="${CRD_PACKAGES:-""}" +OPENAPI_OUTPUT_PACKAGE="${OPENAPI_OUTPUT_PACKAGE:-""}" + [ -z "$CRD_PACKAGES" ] && echo "CRD_PACKAGES env var is required" && exit 1; [ -z "$OPENAPI_OUTPUT_PACKAGE" ] && echo "OPENAPI_OUTPUT_PATH env var is required" && exit 1;