@@ -134,6 +134,9 @@ func kubebuilderCreate(store store.Store) error {
134
134
if err = createAPI (r ); err != nil {
135
135
return err
136
136
}
137
+ if err = createWebhook (r ); err != nil {
138
+ return err
139
+ }
137
140
}
138
141
139
142
return nil
@@ -153,18 +156,12 @@ func getInitArgs(store store.Store) []string {
153
156
return args
154
157
}
155
158
156
- func createAPI (resource resource.Resource ) error {
157
- var args []string
158
- args = append (args , "create" )
159
- args = append (args , "api" )
160
- args = append (args , getAPIGVKFlags (resource )... )
161
- args = append (args , getAPIResourceFlags (resource )... )
162
- return util .RunCmd ("kubebuilder create api" , "kubebuilder" , args ... )
163
- }
164
-
165
- func getAPIGVKFlags (resource resource.Resource ) []string {
159
+ func getGVKFlags (resource resource.Resource ) []string {
166
160
var args []string
167
161
162
+ if len (resource .Plural ) > 0 {
163
+ args = append (args , "--plural" , resource .Plural )
164
+ }
168
165
if len (resource .Group ) > 0 {
169
166
args = append (args , "--group" , resource .Group )
170
167
}
@@ -177,6 +174,15 @@ func getAPIGVKFlags(resource resource.Resource) []string {
177
174
return args
178
175
}
179
176
177
+ func createAPI (resource resource.Resource ) error {
178
+ var args []string
179
+ args = append (args , "create" )
180
+ args = append (args , "api" )
181
+ args = append (args , getGVKFlags (resource )... )
182
+ args = append (args , getAPIResourceFlags (resource )... )
183
+ return util .RunCmd ("kubebuilder create api" , "kubebuilder" , args ... )
184
+ }
185
+
180
186
func getAPIResourceFlags (resource resource.Resource ) []string {
181
187
var args []string
182
188
if resource .API == nil || resource .API .IsEmpty () {
@@ -196,3 +202,29 @@ func getAPIResourceFlags(resource resource.Resource) []string {
196
202
}
197
203
return args
198
204
}
205
+
206
+ func createWebhook (resource resource.Resource ) error {
207
+ if resource .Webhooks == nil || resource .Webhooks .IsEmpty () {
208
+ return nil
209
+ }
210
+ var args []string
211
+ args = append (args , "create" )
212
+ args = append (args , "webhook" )
213
+ args = append (args , getGVKFlags (resource )... )
214
+ args = append (args , getWebhookResourceFlags (resource )... )
215
+ return util .RunCmd ("kubebuilder create webhook" , "kubebuilder" , args ... )
216
+ }
217
+
218
+ func getWebhookResourceFlags (resource resource.Resource ) []string {
219
+ var args []string
220
+ if resource .HasConversionWebhook () {
221
+ args = append (args , "--conversion" )
222
+ }
223
+ if resource .HasValidationWebhook () {
224
+ args = append (args , "--programmatic-validation" )
225
+ }
226
+ if resource .HasDefaultingWebhook () {
227
+ args = append (args , "--defaulting" )
228
+ }
229
+ return args
230
+ }
0 commit comments