INNER CODE UNIT · Go
setupControllers
open-policy-agent/gatekeeper · main.go:420
func setupControllers(ctx context.Context, mgr ctrl.Manager, tracker *readiness.Tracker, setupFinished chan struct{}) error {
// Block until the setup (certificate generation) finishes.
<-setupFinished
var providerCache *frameworksexternaldata.ProviderCache
args := []rego.Arg{rego.Tracing(false), rego.DisableBuiltins(disabledBuiltins.ToSlice()...)}
mutationOpts := mutation.SystemOpts{Reporter: mutation.NewStatsReporter()}
if *externaldata.ExternalDataEnabled {
providerCache = frameworksexternaldata.NewCache()
args = append(args, rego.AddExternalDataProviderCache(providerCache))
mutationOpts.ProviderCache = providerCache
switch {
case *externaldataProviderResponseCacheTTL > 0:
providerResponseCache := frameworksexternaldata.NewProviderResponseCache(ctx, *externaldataProviderResponseCacheTTL)
args = append(args, rego.AddExternalDataProviderResponseCache(providerResponseCache))
mutationOpts.ProviderResponseCache = providerResponseCache
case *externaldataProviderResponseCacheTTL == 0: