1

I have an operator built via kube builder that reads from a "WATCH_NAMESPACE" env to understand which namespace to watch. This is how the current setup works.

namespaces := os.Getenv("WATCH_NAMESPACE")
    if strings.Contains(namespaces, ",") {
        setupLog.Info("Operator will listen to the specific namespaces: " + namespaces)
        options.NewCache = cache.MultiNamespacedCacheBuilder(strings.Split(namespaces, ","))
    } else {
        log.Info("Operator will listen only one namespace or all namespace: " + namespaces)
        options.Namespace = namespaces
    }

    mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), options)
    if err != nil {
        log.Error(err, "unable to start manager")
        os.Exit(1)
    }

if err = (&dataplatformcontroller.DruidReconciler{
...
}

This works fine. But the problem is that every time we need to add a new namespace to watch, we need to restart the operator. I believe the best option here is the watch a configmap and read from it every time. But I am not sure how to proceed with this. Any suggestions or documentation or links can be helpful.

CSUNNY
  • 414
  • 1
  • 7
  • 23

0 Answers0