about blog github

29 Jul 2020
将namespace-scoped的operator修改成cluster-scoped

修改main函数

在main.go中,manager.New时,将namespace参数修改成空。

修改api的scope

在types.go文件中,修改scope为Cluster.

生成新的crd

operator-sdk generate crds

修改rbac

将rbac从role修改成clusterrole,rolebinding修改成clusterrolebind。

修改operator.yaml

将operator.yaml中的WATCH_NAMESPACE修改成空,然后就可以重新编译测试了。需要注意,代码中使用WATCH_NAMESPACE的地方都需要修改。并确保修改获取cluster-scoped的obj的相关代码。

修改cr.Namespace

当crd是cluster-scoped时,cr.Namespace会变成空,这部分需要特殊处理。

ref

https://developers.redhat.com/blog/2020/06/26/migrating-a-namespace-scoped-operator-to-a-cluster-scoped-operator/



LEo at 12:12

about blog github