2021-07-23 11:00:07 +02:00
#!/bin/bash -e
2022-09-14 15:10:08 +02:00
# shellcheck disable=SC2046
2021-07-23 11:00:07 +02:00
set -e -o pipefail
PROJECT_MODULE = "github.com/traefik/traefik"
MODULE_VERSION = "v2"
IMAGE_NAME = "kubernetes-codegen:latest"
2022-09-14 15:10:08 +02:00
CURRENT_DIR = " $( pwd ) "
2021-07-23 11:00:07 +02:00
echo "Building codegen Docker image..."
2022-09-14 15:10:08 +02:00
docker build --build-arg KUBE_VERSION = v0.20.2 \
--build-arg USER = " ${ USER } " \
--build-arg UID = " $( id -u) " \
--build-arg GID = " $( id -g) " \
-f "./script/codegen.Dockerfile" \
2021-07-23 11:00:07 +02:00
-t " ${ IMAGE_NAME } " \
"."
2021-09-02 14:40:08 +02:00
echo "Generating Traefik clientSet code ..."
2021-07-23 11:00:07 +02:00
cmd = " /go/src/k8s.io/code-generator/generate-groups.sh all ${ PROJECT_MODULE } / ${ MODULE_VERSION } /pkg/provider/kubernetes/crd/generated ${ PROJECT_MODULE } / ${ MODULE_VERSION } /pkg/provider/kubernetes/crd traefik:v1alpha1 --go-header-file=/go/src/ ${ PROJECT_MODULE } /script/boilerplate.go.tmpl "
2021-09-02 14:40:08 +02:00
docker run --rm \
2022-09-14 15:10:08 +02:00
-v " ${ CURRENT_DIR } :/go/src/ ${ PROJECT_MODULE } " \
2021-09-02 14:40:08 +02:00
-w " /go/src/ ${ PROJECT_MODULE } " \
2022-09-14 15:10:08 +02:00
" ${ IMAGE_NAME } " ${ cmd }
2021-07-23 11:00:07 +02:00
2021-09-02 14:40:08 +02:00
echo "Generating DeepCopy code ..."
cmd = " deepcopy-gen --input-dirs ${ PROJECT_MODULE } / ${ MODULE_VERSION } /pkg/config/dynamic --input-dirs ${ PROJECT_MODULE } / ${ MODULE_VERSION } /pkg/tls --input-dirs ${ PROJECT_MODULE } / ${ MODULE_VERSION } /pkg/types --output-package ${ PROJECT_MODULE } / ${ MODULE_VERSION } -O zz_generated.deepcopy --go-header-file=/go/src/ ${ PROJECT_MODULE } /script/boilerplate.go.tmpl "
2021-07-23 11:00:07 +02:00
docker run --rm \
2022-09-14 15:10:08 +02:00
-v " ${ CURRENT_DIR } :/go/src/ ${ PROJECT_MODULE } " \
2021-07-23 11:00:07 +02:00
-w " /go/src/ ${ PROJECT_MODULE } " \
2022-09-14 15:10:08 +02:00
" ${ IMAGE_NAME } " ${ cmd }
2021-07-23 11:00:07 +02:00
2021-09-02 14:40:08 +02:00
echo "Generating the CRD definitions for the documentation ..."
cmd = "controller-gen crd:crdVersions=v1 paths=./pkg/provider/kubernetes/crd/traefik/v1alpha1/... output:dir=./docs/content/reference/dynamic-configuration/"
docker run --rm \
2022-09-14 15:10:08 +02:00
-v " ${ CURRENT_DIR } :/go/src/ ${ PROJECT_MODULE } " \
2021-09-02 14:40:08 +02:00
-w " /go/src/ ${ PROJECT_MODULE } " \
2022-09-14 15:10:08 +02:00
" ${ IMAGE_NAME } " ${ cmd }
2021-09-02 14:40:08 +02:00
2022-06-24 12:40:08 +02:00
echo "Concatenate the CRD definitions for publication and integration tests ..."
2022-09-14 15:10:08 +02:00
cat " ${ CURRENT_DIR } " /docs/content/reference/dynamic-configuration/traefik.containo.us_*.yaml > " ${ CURRENT_DIR } " /docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml
cp -f " ${ CURRENT_DIR } " /docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml " ${ CURRENT_DIR } " /integration/fixtures/k8s/01-traefik-crd.yml
2021-09-02 14:40:08 +02:00
2022-09-14 15:10:08 +02:00
cp -r " ${ CURRENT_DIR } / ${ MODULE_VERSION } " /* " ${ CURRENT_DIR } "
rm -rf " ${ CURRENT_DIR : ? } / ${ MODULE_VERSION } "