1

我有一个通过 kube builder 构建的运算符,它从“WATCH_NAMESPACE”环境中读取,以了解要监视的命名空间。这就是当前设置的工作方式。

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{
...
}

这工作正常。但问题是每次我们需要添加一个新的命名空间来观察时,我们都需要重启算子。我相信这里最好的选择是观看配置图并每次都从中读取。但我不确定如何进行此操作。任何建议或文档或链接都会有所帮助。

4

0 回答 0