问题描述
olm书中提到安装期间的依赖关系解析,请您介绍一下卸载/清理的工作原理。
OLM共享共享依赖项时,是否保留依赖项运算符的引用计数器? 如何清除依赖运算符以及何时执行此操作?
olm-book:https://operator-framework.github.io/olm-book/docs/operator-dependencies-and-requirements.html
解决方法
我可以说明operator-sdk cleanup
command的工作原理,同时卸载由OLM管理的操作员捆绑包/包裹清单。
该过程的第一步是识别并删除subscription,以便我们停止所有升级或进一步安装。接下来,我们得到要从预订本身中卸载的特定运算符的ClusterServiceVersion。 OLM创建资源时,会将所有者引用/所有者标签添加到CSV中指定的每个命名空间/群集作用域资源中。因此,当删除CSV时,OLM垃圾收集器会通过所有者引用来标识从属资源并将其删除。
如果要手动清理操作员,我建议只删除installplan中引用的ClusterServiceVersion,然后将其留给OLM和Kubebuilder GC删除资源。