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