云原生服务中心 OSC-创建Operator项目:Operator作用域
Operator作用域
Operator的作用域分namespace级和cluster级,cluster级的operator可以监听和管理任意namespace的资源。使用kubebuilder init命令默认初始化cluster级的operator,仅支持cluster级的operator管理同级别的CRD。监听多个namespace,main.go修改代码如下:
// namespace 列表namespaces := []string{"foo", "bar"}mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{ Scheme: scheme, MetricsBindAddress: metricsAddr, Port: 9443, LeaderElection: enableLeaderElection, LeaderElectionID: "f1c5ece8.huawei.com", NewCache: cache.MultiNamespacedCacheBuilder(namespaces), // 指定多个 namespace})

在修改了Operator作用域后,需同时修改RBAC(config/rbac/... 路径下相关yaml文件),以授权Operator操作该namespace下的资源。