copy shell script changes from PR #1040 to release-0.12
This commit is contained in:
parent
4d6a2af894
commit
fa89150c95
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Copyright 2020-2021 the Pinniped contributors. All Rights Reserved.
|
# Copyright 2020-2022 the Pinniped contributors. All Rights Reserved.
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||||
@ -8,16 +8,20 @@ KUBE_VERSIONS=("$@")
|
|||||||
BASE_PKG="go.pinniped.dev"
|
BASE_PKG="go.pinniped.dev"
|
||||||
export GO111MODULE="on"
|
export GO111MODULE="on"
|
||||||
|
|
||||||
|
# Note that you can change this value to 10 to debug the Kubernetes code generator shell scripts used below.
|
||||||
|
debug_level="${CODEGEN_LOG_LEVEL:-1}"
|
||||||
|
|
||||||
# If we're not running in a container, assume that we want to loop over and run each build
|
# If we're not running in a container, assume that we want to loop over and run each build
|
||||||
# in a container.
|
# in a container.
|
||||||
if [[ -z "${CONTAINED:-}" ]]; then
|
if [[ -z "${CONTAINED:-}" ]]; then
|
||||||
for kubeVersion in "${KUBE_VERSIONS[@]}"; do
|
for kubeVersion in "${KUBE_VERSIONS[@]}"; do
|
||||||
# CODEGEN_IMAGE is the container image to use when running
|
# CODEGEN_IMAGE is the container image to use when running
|
||||||
CODEGEN_IMAGE="projects.registry.vmware.com/pinniped/k8s-code-generator-$(echo "$kubeVersion" | cut -d"." -f1-2):latest"
|
CODEGEN_IMAGE="ghcr.io/pinniped-ci-bot/k8s-code-generator-$(echo "$kubeVersion" | cut -d"." -f1-2):latest"
|
||||||
|
|
||||||
echo "generating code for ${kubeVersion} using ${CODEGEN_IMAGE}..."
|
echo "generating code for ${kubeVersion} using ${CODEGEN_IMAGE}..."
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
--env CONTAINED=1 \
|
--env CONTAINED=1 \
|
||||||
|
--env CODEGEN_LOG_LEVEL="$debug_level" \
|
||||||
--volume "${ROOT}:/work" \
|
--volume "${ROOT}:/work" \
|
||||||
--workdir "/work" \
|
--workdir "/work" \
|
||||||
"${CODEGEN_IMAGE}" \
|
"${CODEGEN_IMAGE}" \
|
||||||
@ -83,6 +87,10 @@ require (
|
|||||||
)
|
)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Generate a go.sum without changing the go.mod by running go mod download.
|
||||||
|
echo "running go mod download in ${OUTPUT_DIR}/apis/go.mod to generate a go.sum file..."
|
||||||
|
(cd "${OUTPUT_DIR}/apis" && go mod download all 2>&1 | sed "s|^|go-mod-download > |")
|
||||||
|
|
||||||
# Make the generated client code its own Go module.
|
# Make the generated client code its own Go module.
|
||||||
echo "generating ${OUTPUT_DIR}/client/go.mod..."
|
echo "generating ${OUTPUT_DIR}/client/go.mod..."
|
||||||
mkdir client
|
mkdir client
|
||||||
@ -98,33 +106,37 @@ require (
|
|||||||
k8s.io/api ${KUBE_MODULE_VERSION}
|
k8s.io/api ${KUBE_MODULE_VERSION}
|
||||||
k8s.io/apimachinery ${KUBE_MODULE_VERSION}
|
k8s.io/apimachinery ${KUBE_MODULE_VERSION}
|
||||||
k8s.io/client-go ${KUBE_MODULE_VERSION}
|
k8s.io/client-go ${KUBE_MODULE_VERSION}
|
||||||
k8s.io/apimachinery ${KUBE_MODULE_VERSION}
|
${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis v0.0.0
|
||||||
)
|
)
|
||||||
|
|
||||||
replace ${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis => ../apis
|
replace ${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis => ../apis
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
# Generate a go.sum without changing the go.mod by running go mod download.
|
||||||
|
echo "running go mod download in ${OUTPUT_DIR}/client/go.mod to generate a go.sum file..."
|
||||||
|
(cd "${OUTPUT_DIR}/client" && go mod download all 2>&1 | sed "s|^|go-mod-download > |")
|
||||||
|
|
||||||
# Generate API-related code for our public API groups
|
# Generate API-related code for our public API groups
|
||||||
echo "generating API-related code for our public API groups..."
|
echo "generating API-related code for our public API groups..."
|
||||||
(cd apis &&
|
(cd apis &&
|
||||||
bash "${GOPATH}/src/k8s.io/code-generator/generate-groups.sh" \
|
bash "${GOPATH}/src/k8s.io/code-generator/generate-groups.sh" \
|
||||||
deepcopy \
|
"deepcopy" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
||||||
"supervisor/config:v1alpha1 supervisor/idp:v1alpha1 concierge/config:v1alpha1 concierge/authentication:v1alpha1 concierge/login:v1alpha1 concierge/identity:v1alpha1" \
|
"supervisor/config:v1alpha1 supervisor/idp:v1alpha1 concierge/config:v1alpha1 concierge/authentication:v1alpha1 concierge/login:v1alpha1 concierge/identity:v1alpha1" \
|
||||||
--go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-api > |"
|
--go-header-file "${ROOT}/hack/boilerplate.go.txt" -v "$debug_level" 2>&1 | sed "s|^|gen-api > |"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Generate API-related code for our internal API groups
|
# Generate API-related code for our internal API groups
|
||||||
echo "generating API-related code for our internal API groups..."
|
echo "generating API-related code for our internal API groups..."
|
||||||
(cd apis &&
|
(cd apis &&
|
||||||
bash "${GOPATH}/src/k8s.io/code-generator/generate-internal-groups.sh" \
|
bash "${GOPATH}/src/k8s.io/code-generator/generate-internal-groups.sh" \
|
||||||
deepcopy,defaulter,conversion \
|
"deepcopy,defaulter,conversion" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client/concierge" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client/concierge" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
||||||
"concierge/login:v1alpha1 concierge/identity:v1alpha1" \
|
"concierge/login:v1alpha1 concierge/identity:v1alpha1" \
|
||||||
--go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-int-api > |"
|
--go-header-file "${ROOT}/hack/boilerplate.go.txt" -v "$debug_level" 2>&1 | sed "s|^|gen-int-api > |"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -136,19 +148,19 @@ echo "tidying ${OUTPUT_DIR}/apis/go.mod..."
|
|||||||
echo "generating client code for our public API groups..."
|
echo "generating client code for our public API groups..."
|
||||||
(cd client &&
|
(cd client &&
|
||||||
bash "${GOPATH}/src/k8s.io/code-generator/generate-groups.sh" \
|
bash "${GOPATH}/src/k8s.io/code-generator/generate-groups.sh" \
|
||||||
client,lister,informer \
|
"client,lister,informer" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client/concierge" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client/concierge" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
||||||
"concierge/config:v1alpha1 concierge/authentication:v1alpha1 concierge/login:v1alpha1 concierge/identity:v1alpha1" \
|
"concierge/config:v1alpha1 concierge/authentication:v1alpha1 concierge/login:v1alpha1 concierge/identity:v1alpha1" \
|
||||||
--go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-client > |"
|
--go-header-file "${ROOT}/hack/boilerplate.go.txt" -v "$debug_level" 2>&1 | sed "s|^|gen-client > |"
|
||||||
)
|
)
|
||||||
(cd client &&
|
(cd client &&
|
||||||
bash "${GOPATH}/src/k8s.io/code-generator/generate-groups.sh" \
|
bash "${GOPATH}/src/k8s.io/code-generator/generate-groups.sh" \
|
||||||
client,lister,informer \
|
"client,lister,informer" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client/supervisor" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/client/supervisor" \
|
||||||
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
"${BASE_PKG}/generated/${KUBE_MINOR_VERSION}/apis" \
|
||||||
"supervisor/config:v1alpha1 supervisor/idp:v1alpha1" \
|
"supervisor/config:v1alpha1 supervisor/idp:v1alpha1" \
|
||||||
--go-header-file "${ROOT}/hack/boilerplate.go.txt" 2>&1 | sed "s|^|gen-client > |"
|
--go-header-file "${ROOT}/hack/boilerplate.go.txt" -v "$debug_level" 2>&1 | sed "s|^|gen-client > |"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Tidy up the .../client module
|
# Tidy up the .../client module
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# Copyright 2020-2021 the Pinniped contributors. All Rights Reserved.
|
# Copyright 2020-2022 the Pinniped contributors. All Rights Reserved.
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@ -11,17 +11,27 @@ ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
|
|||||||
xargs -n 1 -P 8 "$ROOT/hack/lib/update-codegen.sh" < "${ROOT}/hack/lib/kube-versions.txt"
|
xargs -n 1 -P 8 "$ROOT/hack/lib/update-codegen.sh" < "${ROOT}/hack/lib/kube-versions.txt"
|
||||||
|
|
||||||
# Copy the latest version into a ./generated/latest directory so we can depend on it without nested modules.
|
# Copy the latest version into a ./generated/latest directory so we can depend on it without nested modules.
|
||||||
LATEST_VERSION="$(head -1 < "${ROOT}/hack/lib/kube-versions.txt" | cut -d"." -f1-2)"
|
LATEST_MINOR_VERSION="$(head -1 < "${ROOT}/hack/lib/kube-versions.txt" | cut -d"." -f1-2)"
|
||||||
LATEST_ROOT="$ROOT/generated/latest"
|
LATEST_ROOT="$ROOT/generated/latest"
|
||||||
rm -rf "$LATEST_ROOT"
|
rm -rf "$LATEST_ROOT"
|
||||||
cp -r "$ROOT/generated/$LATEST_VERSION/" "$LATEST_ROOT"
|
cp -r "$ROOT/generated/$LATEST_MINOR_VERSION/" "$LATEST_ROOT"
|
||||||
find "$LATEST_ROOT" \( -name "go.mod" -or -name "go.sum" -or -name "README.adoc" \) -delete
|
find "$LATEST_ROOT" \( -name "go.mod" -or -name "go.sum" -or -name "README.adoc" \) -delete
|
||||||
rm -r "$LATEST_ROOT/crds"
|
rm -r "$LATEST_ROOT/crds"
|
||||||
find "$LATEST_ROOT" -type f -print0 | xargs -0 sed -i '' -e "s|go.pinniped.dev/generated/$LATEST_VERSION|go.pinniped.dev/generated/latest|g"
|
if [[ "$(uname -s)" == "Linux" ]]; then
|
||||||
|
# docker on linux preserves the root ownership of the output files of update-codegen.sh,
|
||||||
|
# so chown the files before editing them.
|
||||||
|
sudo chown -R "$(id --user)" generated
|
||||||
|
sudo chgrp -R "$(id --group)" generated
|
||||||
|
# sed on Linux uses -i'' (no space in between).
|
||||||
|
find "$LATEST_ROOT" -type f -print0 | xargs -0 sed -i'' -e "s|go.pinniped.dev/generated/$LATEST_MINOR_VERSION|go.pinniped.dev/generated/latest|g"
|
||||||
|
else
|
||||||
|
# sed on MacOS uses -i '' (with space in between).
|
||||||
|
find "$LATEST_ROOT" -type f -print0 | xargs -0 sed -i '' -e "s|go.pinniped.dev/generated/$LATEST_MINOR_VERSION|go.pinniped.dev/generated/latest|g"
|
||||||
|
fi
|
||||||
|
|
||||||
# Copy each CRD yaml to the app which should cause it to be installed.
|
# Copy each CRD yaml to the app which should cause it to be installed.
|
||||||
cp "$ROOT"/generated/1.20/crds/*.supervisor.*.yaml "$ROOT/deploy/supervisor"
|
cp "$ROOT"/generated/"$LATEST_MINOR_VERSION"/crds/*.supervisor.*.yaml "$ROOT/deploy/supervisor"
|
||||||
cp "$ROOT"/generated/1.20/crds/*.concierge.*.yaml "$ROOT/deploy/concierge"
|
cp "$ROOT"/generated/"$LATEST_MINOR_VERSION"/crds/*.concierge.*.yaml "$ROOT/deploy/concierge"
|
||||||
|
|
||||||
# Tidy.
|
# Tidy.
|
||||||
"$ROOT/hack/module.sh" tidy
|
"$ROOT/hack/module.sh" tidy
|
||||||
|
Loading…
Reference in New Issue
Block a user