@@ -236,22 +236,6 @@ func (r *Reconciler) writeSingleton(ctx context.Context, inst *api.HNCConfigurat
236
236
}
237
237
238
238
func (r * Reconciler ) syncObjectWebhookConfigs (ctx context.Context ) error {
239
- // Group GR by group
240
- groups := make (map [string ][]string )
241
- for gr := range r .activeGVKMode {
242
- groups [gr .Group ] = append (groups [gr .Group ], gr .Resource )
243
- }
244
-
245
- var rules []apiadmissionregistrationv1.RuleWithOperations
246
- for g , res := range groups {
247
- rule := apiadmissionregistrationv1.RuleWithOperations {}
248
- rule .APIGroups = []string {g }
249
- rule .Resources = res
250
- rule .APIVersions = []string {"*" }
251
- rule .Operations = []apiadmissionregistrationv1.OperationType {apiadmissionregistrationv1 .Create , apiadmissionregistrationv1 .Update , apiadmissionregistrationv1 .Delete }
252
- rules = append (rules , rule )
253
- }
254
-
255
239
vwc := & apiadmissionregistrationv1.ValidatingWebhookConfiguration {}
256
240
if err := r .Get (ctx , client.ObjectKey {Name : webhooks .ValidatingWebhookConfigurationName }, vwc ); err != nil {
257
241
if errors .IsNotFound (err ) {
@@ -265,13 +249,32 @@ func (r *Reconciler) syncObjectWebhookConfigs(ctx context.Context) error {
265
249
266
250
for i , wh := range vwc .Webhooks {
267
251
if wh .Name == webhooks .ObjectsWebhookName {
268
- vwc .Webhooks [i ].Rules = rules
252
+ vwc .Webhooks [i ].Rules = objectWebhookRules ( r . activeGVKMode )
269
253
return r .Patch (ctx , vwc , client .MergeFrom (cleanVWC ))
270
254
}
271
255
}
272
256
return fmt .Errorf ("webhook %q not found in ValidatingWebhookConfiguration %q" , webhooks .ObjectsWebhookName , webhooks .ValidatingWebhookConfigurationName )
273
257
}
274
258
259
+ func objectWebhookRules (mode gr2gvkMode ) []apiadmissionregistrationv1.RuleWithOperations {
260
+ // Group GR by group to make nicer rules
261
+ g2r := make (map [string ][]string )
262
+ for gr := range mode {
263
+ g2r [gr .Group ] = append (g2r [gr .Group ], gr .Resource )
264
+ }
265
+
266
+ var rules []apiadmissionregistrationv1.RuleWithOperations
267
+ for g , r := range g2r {
268
+ rule := apiadmissionregistrationv1.RuleWithOperations {}
269
+ rule .APIGroups = []string {g }
270
+ rule .Resources = r
271
+ rule .APIVersions = []string {"*" }
272
+ rule .Operations = []apiadmissionregistrationv1.OperationType {apiadmissionregistrationv1 .Create , apiadmissionregistrationv1 .Update , apiadmissionregistrationv1 .Delete }
273
+ rules = append (rules , rule )
274
+ }
275
+ return rules
276
+ }
277
+
275
278
// syncObjectReconcilers creates or syncs ObjectReconcilers.
276
279
//
277
280
// For newly added types in the HNC configuration, the method will create corresponding ObjectReconcilers and
0 commit comments