我正在尝试使用client-go
库开发一个简单的控制器。
有一个要求,就是每次在群集上更新密钥和/或ConfigMap时,我都要使用这些密钥/ ConfigMap对对象执行特定的操作。
我知道如何使用informers监视特定对象的更改。
我的问题是,通过访问Secret / ConfigMap来自动列出使用它们的对象(部署,作业等)是否可行。
答案 0 :(得分:0)
我认为没有一种方法可以按照您描述的方式自动列出对象的所有相关对象。
但是,您可以有一个控制器来监视您感兴趣的对象(例如,部署,作业等),并用打算使用它们的对象更新机密和配置映射的metadata.ownerReferences
。
尽管这通常是出于GC的目的,但是当您对密钥或configmap执行kubectl describe
时,这些对象将被“列出”。
metadata.owner参考
此对象依赖的对象列表。如果列表中的所有对象都具有 被删除后,该对象将被垃圾回收。如果这个对象是 由控制器管理,则此列表中的条目将指向此 控制器,控制器字段设置为true。不能有更多 而不是一个总经理。
OwnerReference包含足够的信息,可让您识别所有权 目的。拥有对象必须与从属对象位于同一名称空间中,或者 处于群集范围,因此没有名称空间字段。
来源