@@ -13,9 +13,14 @@ $(LOCALBIN):
13
13
14
14
# # Tool Versions
15
15
CONTROLLER_TOOLS_VERSION ?= v0.9.2
16
+ CODEGEN_VERSION ?= v0.20.15
16
17
17
18
# # Tool Binaries
18
19
CONTROLLER_GEN ?= $(LOCALBIN ) /controller-gen
20
+ APPLYCONFIGURATION_GEN ?= $(LOCALBIN ) /applyconfiguration-gen
21
+ CLIENT_GEN ?= $(LOCALBIN ) /client-gen
22
+ LISTER_GEN ?= $(LOCALBIN ) /lister-gen
23
+ INFORMER_GEN ?= $(LOCALBIN ) /informer-gen
19
24
20
25
# Reset branch name if this a Travis CI environment
21
26
ifneq ($(strip $(TRAVIS_BRANCH ) ) ,)
@@ -70,12 +75,77 @@ init:
70
75
verify-tag-name : print-global-variables
71
76
# Check for invalid tag name
72
77
t=${TAG} && [ $$ {# t} -le 128 ] || { echo "Target name $$t has 128 or more chars"; false; }
78
+ .PHONY : generate-client # # Generate client packages
79
+ generate-client : code-generator
80
+ rm -rf pkg/client/clientset/versioned pkg/client/informers/externalversions pkg/client/listers/controller/v1beta1
81
+ # TODO: add this back when the version of the tool has been updated and supports this executable
82
+ # $(APPLYCONFIGURATION_GEN) \
83
+ # --input-dirs="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1" \
84
+ # --go-header-file="hack/boilerplate/boilerplate.go.txt" \
85
+ # --output-package="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/applyconfiguration" \
86
+ # --trim-path-prefix "github.com/project-codeflare/multi-cluster-app-dispatcher"
87
+ $(CLIENT_GEN) \
88
+ --input="pkg/apis/controller/v1beta1" \
89
+ --input-base="github.com/project-codeflare/multi-cluster-app-dispatcher" \
90
+ --go-header-file="hack/boilerplate/boilerplate.go.txt" \
91
+ --clientset-name "versioned" \
92
+ --output-package="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/clientset" \
93
+ --output-base="."
94
+ # TODO: add the following line back once the tool has been upgraded
95
+ # --trim-path-prefix "github.com/project-codeflare/multi-cluster-app-dispatcher"
96
+ $(LISTER_GEN) \
97
+ --input-dirs="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1" \
98
+ --go-header-file="hack/boilerplate/boilerplate.go.txt" \
99
+ --output-base="." \
100
+ --output-package="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/listers"
101
+ # TODO: add the following line back once the tool has been upgraded
102
+ # --trim-path-prefix "github.com/project-codeflare/multi-cluster-app-dispatcher"
103
+ $(INFORMER_GEN) \
104
+ --input-dirs="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/apis/controller/v1beta1" \
105
+ --versioned-clientset-package="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/clientset/versioned" \
106
+ --listers-package="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/listers" \
107
+ --go-header-file="hack/boilerplate/boilerplate.go.txt" \
108
+ --output-base="." \
109
+ --output-package="github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/informers"
110
+ # TODO: add the following line back once the tool has been upgraded
111
+ # --trim-path-prefix "github.com/project-codeflare/multi-cluster-app-dispatcher"
112
+ # TODO: remove the following lines once the tool has been upgraded and they are no longer needed.
113
+ # The `mv` and `rm` are necessary as the generators write to the gihub.com/... path.
114
+ mv -f github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/clientset/versioned pkg/client/clientset/versioned
115
+ mv -f github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/informers/externalversions pkg/client/informers/externalversions
116
+ mv -f github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client/listers/controller/v1beta1 pkg/client/listers/controller/v1beta1
117
+ rm -rf github.com/project-codeflare/multi-cluster-app-dispatcher/pkg/client
73
118
74
119
.PHONY : controller-gen
75
120
controller-gen : $(CONTROLLER_GEN ) # # Download controller-gen locally if necessary.
76
121
$(CONTROLLER_GEN ) : $(LOCALBIN )
77
122
test -s $(LOCALBIN ) /controller-gen || GOBIN=$(LOCALBIN ) go install sigs.k8s.io/controller-tools/cmd/controller-gen@$(CONTROLLER_TOOLS_VERSION )
78
123
124
+ .PHONY : code-generator
125
+ # TODO: add $(APPLYCONFIGURATION_GEN) as a dependency when the tool is supported
126
+ code-generator : $(CLIENT_GEN ) $(LISTER_GEN ) $(INFORMER_GEN ) $(CONTROLLER_GEN )
127
+
128
+ # TODO: enable this target once the tools is supported
129
+ # .PHONY: applyconfiguration-gen
130
+ # applyconfiguration-gen: $(APPLYCONFIGURATION_GEN)
131
+ # $(APPLYCONFIGURATION_GEN): $(LOCALBIN)
132
+ # test -s $(LOCALBIN)/applyconfiguration-gen || GOBIN=$(LOCALBIN) go install k8s.io/code-generator/cmd/applyconfiguration-gen@$(CODEGEN_VERSION)
133
+
134
+ .PHONY : client-gen
135
+ client-gen : $(CLIENT_GEN )
136
+ $(CLIENT_GEN ) : $(LOCALBIN )
137
+ test -s $(LOCALBIN ) /client-gen || GOBIN=$(LOCALBIN ) go install k8s.io/code-generator/cmd/client-gen@$(CODEGEN_VERSION )
138
+
139
+ .PHONY : lister-gen
140
+ lister-gen : $(LISTER_GEN )
141
+ $(LISTER_GEN ) : $(LOCALBIN )
142
+ test -s $(LOCALBIN ) /lister-gen || GOBIN=$(LOCALBIN ) go install k8s.io/code-generator/cmd/lister-gen@$(CODEGEN_VERSION )
143
+
144
+ .PHONY : informer-gen
145
+ informer-gen : $(INFORMER_GEN )
146
+ $(INFORMER_GEN ) : $(LOCALBIN )
147
+ test -s $(LOCALBIN ) /informer-gen || GOBIN=$(LOCALBIN ) go install k8s.io/code-generator/cmd/informer-gen@$(CODEGEN_VERSION )
148
+
79
149
.PHONY : manifests
80
150
manifests : controller-gen # # Generate CustomResourceDefinition objects.
81
151
$(CONTROLLER_GEN ) crd:allowDangerousTypes=true paths=" ./pkg/apis/..." output:crd:artifacts:config=config/crd/bases
0 commit comments