@@ -380,12 +380,10 @@ blockingLoop:
380380}
381381
382382func setupControllers (ctx context.Context , mgr ctrl.Manager , tracker * readiness.Tracker , setupFinished chan struct {}) error {
383- // Block until the setup (certificate generation) finishes.
384383 <- setupFinished
385384
386- // Determine which dependencies need to be created based on enabled operations
387- needsOPAClient := operations .HasValidationOperations () || * externaldata .ExternalDataEnabled
388- needsMutationSystem := mutation .Enabled () || * expansion .ExpansionEnabled
385+ needsOPAClient := operations .IsAssigned (operations .Audit ) || operations .IsAssigned (operations .Webhook ) || operations .IsAssigned (operations .Status ) || * externaldata .ExternalDataEnabled
386+ needsMutationSystem := operations .IsAssigned (operations .MutationWebhook ) || operations .IsAssigned (operations .MutationController ) || operations .IsAssigned (operations .MutationStatus ) || * expansion .ExpansionEnabled
389387 needsExpansionSystem := * expansion .ExpansionEnabled
390388 needsProviderCache := * externaldata .ExternalDataEnabled
391389
@@ -395,12 +393,9 @@ func setupControllers(ctx context.Context, mgr ctrl.Manager, tracker *readiness.
395393 var expansionSystem * expansion.System
396394 var certWatcher * certwatcher.CertWatcher
397395
398- // Setup external data provider cache if needed
399396 if needsProviderCache {
400- setupLog .Info ("setting up external data provider cache" )
401397 providerCache = frameworksexternaldata .NewCache ()
402398
403- // Set up cert watcher for external data (shared between OPA and mutation)
404399 certFile := filepath .Join (* certDir , certName )
405400 keyFile := filepath .Join (* certDir , keyName )
406401
@@ -411,16 +406,13 @@ func setupControllers(ctx context.Context, mgr ctrl.Manager, tracker *readiness.
411406 return err
412407 }
413408
414- setupLog .Info ("setting up client cert watcher" )
415409 if err := mgr .Add (certWatcher ); err != nil {
416410 setupLog .Error (err , "unable to register client cert watcher" )
417411 return err
418412 }
419413 }
420414
421- // Setup OPA client if needed for validation operations or external data
422415 if needsOPAClient {
423- setupLog .Info ("setting up OPA client" )
424416 args := []rego.Arg {rego .Tracing (false ), rego .DisableBuiltins (disabledBuiltins .ToSlice ()... )}
425417
426418 if needsProviderCache {
@@ -438,7 +430,6 @@ func setupControllers(ctx context.Context, mgr ctrl.Manager, tracker *readiness.
438430 return err
439431 }
440432
441- // Register the client cert watcher to the driver
442433 args = append (args , rego .EnableExternalDataClientAuth (), rego .AddExternalDataClientCertWatcher (certWatcher ))
443434 }
444435
@@ -483,9 +474,7 @@ func setupControllers(ctx context.Context, mgr ctrl.Manager, tracker *readiness.
483474 }
484475 }
485476
486- // Setup mutation system if needed
487477 if needsMutationSystem {
488- setupLog .Info ("setting up mutation system" )
489478 mutationOpts := mutation.SystemOpts {Reporter : mutation .NewStatsReporter ()}
490479
491480 if needsProviderCache {
@@ -496,13 +485,10 @@ func setupControllers(ctx context.Context, mgr ctrl.Manager, tracker *readiness.
496485 mutationSystem = mutation .NewSystem (mutationOpts )
497486 }
498487
499- // Setup expansion system if needed (depends on mutation system)
500488 if needsExpansionSystem {
501- setupLog .Info ("setting up expansion system" )
502489 expansionSystem = expansion .NewSystem (mutationSystem )
503490 }
504491
505- // Export system is always created
506492 exportSystem := export .NewSystem ()
507493
508494 c := mgr .GetCache ()
@@ -529,18 +515,11 @@ func setupControllers(ctx context.Context, mgr ctrl.Manager, tracker *readiness.
529515 return err
530516 }
531517
532- // processExcluder is used for namespace exclusion for specified processes in config
533518 processExcluder := process .Get ()
534519
535- // Setup all Controllers
536- setupLog .Info ("setting up controllers" )
537-
538- // Cache manager is only needed for validation operations
539520 var cm * cachemanager.CacheManager
540521 var events chan event.GenericEvent
541- if operations .HasValidationOperations () {
542- // Events ch will be used to receive events from dynamic watches registered
543- // via the registrar below.
522+ if operations .IsAssigned (operations .Audit ) || operations .IsAssigned (operations .Webhook ) || operations .IsAssigned (operations .Status ) {
544523 events = make (chan event.GenericEvent , 1024 )
545524 reg , err := wm .NewRegistrar (
546525 cachemanager .RegistrarName ,
0 commit comments