Skip to content

Commit

Permalink
Merge pull request #1662 from ArangoGutierrez/fixgenerated
Browse files Browse the repository at this point in the history
Fix Make generate
  • Loading branch information
k8s-ci-robot authored Apr 9, 2024
2 parents da7ca56 + 50d9874 commit 86a3817
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 65 deletions.
48 changes: 41 additions & 7 deletions api/nfd/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

60 changes: 32 additions & 28 deletions hack/update_codegen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,51 +18,55 @@ set -o errexit
set -o nounset
set -o pipefail

TMP_VENDOR_DIR=gen-vendor

function cleanup() {
echo "Cleaning up..."
rm -rf ${TMP_VENDOR_DIR}
rm sigs.k8s.io
# We need to clean up the go.mod file since code-generator adds temporary library to the go.mod file.
"${GO_CMD}" mod tidy
}

trap cleanup EXIT
GO_CMD=${1:-go}
NFD_ROOT=$(realpath $(dirname ${BASH_SOURCE[0]})/..)

go mod vendor

CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${NFD_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
"${GO_CMD}" mod vendor

cd $(dirname ${BASH_SOURCE[0]})/..
# Go generate
"${GO_CMD}" generate ./cmd/... ./pkg/... ./source/...

source "${CODEGEN_PKG}/kube_codegen.sh"
# Generate CRDs
controller-gen object crd output:crd:stdout paths=./api/... > deployment/base/nfd-crds/nfd-api-crds.yaml
mkdir -p deployment/helm/node-feature-discovery/crds
cp deployment/base/nfd-crds/nfd-api-crds.yaml deployment/helm/node-feature-discovery/crds

# TODO: remove the workaround when the issue is solved in the code-generator
# (https://github.com/kubernetes/code-generator/issues/165).
# Here, we create the soft link named "sigs.k8s.io" to the parent directory of
# node-feature-discovery to ensure the layout required by the kube_codegen.sh script.
ln -s .. sigs.k8s.io
trap "rm sigs.k8s.io" EXIT
# Generate clientset and informers
mv vendor ${TMP_VENDOR_DIR}
CODEGEN_PKG=${CODEGEN_PKG:-$(ls -d -1 ./${TMP_VENDOR_DIR}/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}

CODEGEN_PKG=${CODEGEN_PKG:-$(ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
cd $(dirname ${BASH_SOURCE[0]})/..

source "${CODEGEN_PKG}/kube_codegen.sh"

go generate ./cmd/... ./pkg/... ./source/...

controller-gen object crd output:crd:stdout paths=./apis/... > deployment/base/nfd-crds/nfd-api-crds.yaml

mkdir -p deployment/helm/node-feature-discovery/crds
cp deployment/base/nfd-crds/nfd-api-crds.yaml deployment/helm/node-feature-discovery/crds
# TODO: https://github.com/kubernetes/code-generator/issues/165 has been closed
# we need to bump the version of code-generator to v0.30.0 once it's released
ln -s .. sigs.k8s.io

# Generating conversion and defaults functions
kube::codegen::gen_helpers \
--input-pkg-root sigs.k8s.io/node-feature-discovery/apis \
--input-pkg-root sigs.k8s.io/node-feature-discovery/api/nfd \
--output-base "${NFD_ROOT}" \
--boilerplate ${NFD_ROOT}/hack/boilerplate.go.txt

# HACK: manually patching the auto-generated code as code-generator cannot
# properly handle deepcopy of MatchExpressionSet.
sed s'/out = new(map\[string\]\*MatchExpression)/out = new(MatchExpressionSet)/' -i api/nfd/v1alpha1/zz_generated.deepcopy.go

kube::codegen::gen_client \
--input-pkg-root sigs.k8s.io/node-feature-discovery/apis \
--output-pkg-root sigs.k8s.io/node-feature-discovery/generated \
--input-pkg-root sigs.k8s.io/node-feature-discovery/api \
--output-pkg-root sigs.k8s.io/node-feature-discovery/api/generated \
--output-base "${NFD_ROOT}" \
--boilerplate ${NFD_ROOT}/hack/boilerplate.go.txt \
--with-watch

# HACK: manually patching the auto-generated code as code-generator cannot
# properly handle deepcopy of MatchExpressionSet.
sed s'/out = new(map\[string\]\*MatchExpression)/out = new(MatchExpressionSet)/' -i apis/nfd/v1alpha1/zz_generated.deepcopy.go

# We need to clean up the go.mod file since code-generator adds temporary library to the go.mod file.
"${GO_CMD}" mod tidy
60 changes: 31 additions & 29 deletions pkg/labeler/labeler.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/labeler/labeler.proto
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ syntax = "proto3";

option go_package = "sigs.k8s.io/node-feature-discovery/pkg/labeler";

import "pkg/apis/nfd/v1alpha1/generated.proto";
import "sigs.k8s.io/node-feature-discovery/api/nfd/v1alpha1/generated.proto";

package labeler;

Expand Down

0 comments on commit 86a3817

Please sign in to comment.