@@ -50,6 +50,14 @@ import (
5050 "github.com/fluxcd/pkg/runtime/pprof"
5151 "github.com/fluxcd/pkg/runtime/probes"
5252
53+ // FluxCD controller APIs - only used when CacheFluxObjects is enabled
54+ helmv2 "github.com/fluxcd/helm-controller/api/v2"
55+ imageautov1 "github.com/fluxcd/image-automation-controller/api/v1beta2"
56+ imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta2"
57+ kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1"
58+ sourcev1 "github.com/fluxcd/source-controller/api/v1"
59+ sourcev1beta2 "github.com/fluxcd/source-controller/api/v1beta2"
60+
5361 apiv1 "github.com/fluxcd/notification-controller/api/v1"
5462 apiv1b2 "github.com/fluxcd/notification-controller/api/v1beta2"
5563 apiv1b3 "github.com/fluxcd/notification-controller/api/v1beta3"
@@ -163,6 +171,19 @@ func main() {
163171 disableCacheFor = append (disableCacheFor , & corev1.Secret {}, & corev1.ConfigMap {})
164172 }
165173
174+ cacheFluxObjects , err := features .Enabled (features .CacheFluxObjects )
175+ if err != nil {
176+ setupLog .Error (err , "unable to check feature gate " + features .CacheFluxObjects )
177+ os .Exit (1 )
178+ }
179+ if cacheFluxObjects {
180+ if err := registerFluxSchemes (scheme ); err != nil {
181+ setupLog .Error (err , "unable to register Flux controller schemes" )
182+ os .Exit (1 )
183+ }
184+ setupLog .Info ("FluxCD object caching enabled via informers" )
185+ }
186+
166187 restConfig := client .GetConfigOrDie (clientOptions )
167188 mgrConfig := ctrl.Options {
168189 Scheme : scheme ,
@@ -301,3 +322,23 @@ func main() {
301322 os .Exit (1 )
302323 }
303324}
325+
326+ // registerFluxSchemes registers FluxCD controller schemes for caching
327+ func registerFluxSchemes (scheme * runtime.Scheme ) error {
328+ if err := sourcev1 .AddToScheme (scheme ); err != nil {
329+ return err
330+ }
331+ if err := sourcev1beta2 .AddToScheme (scheme ); err != nil {
332+ return err
333+ }
334+ if err := kustomizev1 .AddToScheme (scheme ); err != nil {
335+ return err
336+ }
337+ if err := helmv2 .AddToScheme (scheme ); err != nil {
338+ return err
339+ }
340+ if err := imagev1 .AddToScheme (scheme ); err != nil {
341+ return err
342+ }
343+ return imageautov1 .AddToScheme (scheme )
344+ }
0 commit comments