Skip to content

Commit

Permalink
Add crd generation
Browse files Browse the repository at this point in the history
Signed-off-by: Xabier Larrakoetxea <me@slok.dev>
  • Loading branch information
slok committed Mar 3, 2020
1 parent 64e0c9b commit 6960d9d
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 12 deletions.
17 changes: 11 additions & 6 deletions 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 \
Expand All @@ -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
Expand All @@ -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"]
WORKDIR /usr/bin

CMD ["update-codegen.sh"]
4 changes: 1 addition & 3 deletions 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
Expand Down
31 changes: 31 additions & 0 deletions 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}"
7 changes: 4 additions & 3 deletions 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.
Expand All @@ -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;

Expand Down

0 comments on commit 6960d9d

Please sign in to comment.