问题描述
使用operator-sdk guide v1.0,在部署操作员时必须在生产环境中安装operator-sdk。
是否可以在不安装operator-sdk的情况下部署操作员?因为它导致更多的依赖性和复杂性。
如何仅生成CRD yaml,CR yaml和Contoller Image? 还是任何其他更方便的发布操作员的方式?
解决方法
operator-sdk不能直接在生产中运行运营商。相反,您应该将操作员作为群集中的“部署”来运行。 https://v1-0-x.sdk.operatorframework.io/docs/building-operators/golang/tutorial/#2-run-as-a-deployment-inside-the-cluster
,您可以更改make deploy命令以生成具有操作员所需的所有rbac和部署对象的deploy.yaml。 在找到解决方案之前,我一直为自己奋斗。
只需更改make文件中的deploy任务即可。
$(KUSTOMIZE) build config/default | kubectl apply -f -
收件人
$(KUSTOMIZE) build config/default > deploy.yaml
然后运行make deploy。 然后复制deploy.yaml并将其安装在您的k8s中,或从中创建一个舵图。 这对我有用,在您的环境中不需要operator-SDK。
编辑:
我没有使用CRD,而是使用它来查看现有资源。
但是看来,对于CRD和CR,install
任务也可以使用相同的解决方案。