@@ -18,51 +18,55 @@ set -o errexit
18
18
set -o nounset
19
19
set -o pipefail
20
20
21
+ TMP_VENDOR_DIR=gen-vendor
22
+
23
+ function cleanup() {
24
+ echo " Cleaning up..."
25
+ rm -rf ${TMP_VENDOR_DIR}
26
+ rm sigs.k8s.io
27
+ # We need to clean up the go.mod file since code-generator adds temporary library to the go.mod file.
28
+ " ${GO_CMD} " mod tidy
29
+ }
30
+
31
+ trap cleanup EXIT
21
32
GO_CMD=${1:- go}
22
33
NFD_ROOT=$( realpath $( dirname ${BASH_SOURCE[0]} ) /..)
23
34
24
- go mod vendor
25
-
26
- CODEGEN_PKG=${CODEGEN_PKG:- $(cd " ${NFD_ROOT} " ; ls -d -1 ./ vendor/ k8s.io/ code-generator 2>/ dev/ null || echo ../ code-generator)}
35
+ " ${GO_CMD} " mod vendor
27
36
28
- cd $( dirname ${BASH_SOURCE[0]} ) /..
37
+ # Go generate
38
+ " ${GO_CMD} " generate ./cmd/... ./pkg/... ./source/...
29
39
30
- source " ${CODEGEN_PKG} /kube_codegen.sh"
40
+ # Generate CRDs
41
+ controller-gen object crd output:crd:stdout paths=./api/... > deployment/base/nfd-crds/nfd-api-crds.yaml
42
+ mkdir -p deployment/helm/node-feature-discovery/crds
43
+ cp deployment/base/nfd-crds/nfd-api-crds.yaml deployment/helm/node-feature-discovery/crds
31
44
32
- # TODO: remove the workaround when the issue is solved in the code-generator
33
- # (https://github.com/kubernetes/code-generator/issues/165).
34
- # Here, we create the soft link named "sigs.k8s.io" to the parent directory of
35
- # node-feature-discovery to ensure the layout required by the kube_codegen.sh script.
36
- ln -s .. sigs.k8s.io
37
- trap " rm sigs.k8s.io" EXIT
45
+ # Generate clientset and informers
46
+ mv vendor ${TMP_VENDOR_DIR}
47
+ CODEGEN_PKG=${CODEGEN_PKG:- $(ls -d -1 ./ ${TMP_VENDOR_DIR} / k8s.io/ code-generator 2>/ dev/ null || echo ../ code-generator)}
38
48
39
- CODEGEN_PKG= ${CODEGEN_PKG :- $(ls -d -1 . / vendor / k8s.io / code-generator 2> / dev / null || echo .. / code-generator)}
49
+ cd $( dirname ${BASH_SOURCE[0]} ) /..
40
50
41
51
source " ${CODEGEN_PKG} /kube_codegen.sh"
42
52
43
- go generate ./cmd/... ./pkg/... ./source/...
44
-
45
- controller-gen object crd output:crd:stdout paths=./apis/... > deployment/base/nfd-crds/nfd-api-crds.yaml
46
-
47
- mkdir -p deployment/helm/node-feature-discovery/crds
48
- cp deployment/base/nfd-crds/nfd-api-crds.yaml deployment/helm/node-feature-discovery/crds
53
+ # TODO: https://github.com/kubernetes/code-generator/issues/165 has been closed
54
+ # we need to bump the version of code-generator to v0.30.0 once it's released
55
+ ln -s .. sigs.k8s.io
49
56
50
57
# Generating conversion and defaults functions
51
58
kube::codegen::gen_helpers \
52
- --input-pkg-root sigs.k8s.io/node-feature-discovery/apis \
59
+ --input-pkg-root sigs.k8s.io/node-feature-discovery/api/nfd \
53
60
--output-base " ${NFD_ROOT} " \
54
61
--boilerplate ${NFD_ROOT} /hack/boilerplate.go.txt
55
62
63
+ # HACK: manually patching the auto-generated code as code-generator cannot
64
+ # properly handle deepcopy of MatchExpressionSet.
65
+ sed s' /out = new(map\[string\]\*MatchExpression)/out = new(MatchExpressionSet)/' -i api/nfd/v1alpha1/zz_generated.deepcopy.go
66
+
56
67
kube::codegen::gen_client \
57
- --input-pkg-root sigs.k8s.io/node-feature-discovery/apis \
58
- --output-pkg-root sigs.k8s.io/node-feature-discovery/generated \
68
+ --input-pkg-root sigs.k8s.io/node-feature-discovery/api \
69
+ --output-pkg-root sigs.k8s.io/node-feature-discovery/api/ generated \
59
70
--output-base " ${NFD_ROOT} " \
60
71
--boilerplate ${NFD_ROOT} /hack/boilerplate.go.txt \
61
72
--with-watch
62
-
63
- # HACK: manually patching the auto-generated code as code-generator cannot
64
- # properly handle deepcopy of MatchExpressionSet.
65
- sed s' /out = new(map\[string\]\*MatchExpression)/out = new(MatchExpressionSet)/' -i apis/nfd/v1alpha1/zz_generated.deepcopy.go
66
-
67
- # We need to clean up the go.mod file since code-generator adds temporary library to the go.mod file.
68
- " ${GO_CMD} " mod tidy
0 commit comments