Compare commits

...

3 Commits

Author SHA1 Message Date
Augusto Ribeiro
dfa49943e6
Merge 042eb6c579 into 08ab561429 2026-02-09 21:44:00 +01:00
Augusto Ribeiro
042eb6c579
Merge branch 'cloudnative-pg:main' into watchworkspace 2026-02-02 14:58:54 +01:00
augusto.ribeiro
5d514f481f adding a watch-namespace option in order to only watch one namespace if set
Signed-off-by: augusto.ribeiro <augusto.ribeiro@cloudkitchens.com>
Signed-off-by: augustoribeiro <augusto.mcc@gmail.com>
2026-02-02 14:57:43 +01:00
2 changed files with 17 additions and 0 deletions

View File

@ -103,5 +103,12 @@ func NewCmd() *cobra.Command {
_ = viper.BindEnv("sidecar-image", "SIDECAR_IMAGE")
cmd.Flags().String(
"watch-namespace",
"",
"The namespace to watch for CloudNativePG clusters. If empty, all namespaces will be watched.",
)
_ = viper.BindPFlag("watch-namespace", cmd.Flags().Lookup("watch-namespace"))
return cmd
}

View File

@ -31,6 +31,7 @@ import (
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
clientgoscheme "k8s.io/client-go/kubernetes/scheme"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/metrics/filters"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
@ -102,6 +103,14 @@ func Start(ctx context.Context) error {
metricsServerOptions.FilterProvider = filters.WithAuthenticationAndAuthorization
}
var cacheOptions cache.Options
if viper.GetString("watch-namespace") != "" {
setupLog.Info("Watching a single namespace", "namespace", viper.GetString("watch-namespace"))
cacheOptions = cache.Options{
DefaultNamespaces: map[string]cache.Config{viper.GetString("watch-namespace"): {}},
}
}
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
Metrics: metricsServerOptions,
@ -120,6 +129,7 @@ func Start(ctx context.Context) error {
// if you are doing or is intended to do any operation such as perform cleanups
// after the manager stops then its usage might be unsafe.
LeaderElectionReleaseOnCancel: true,
Cache: cacheOptions,
})
if err != nil {
setupLog.Error(err, "unable to start manager")