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