【问题标题】:Retrieve objets using a specific secret / configmap via client-go library通过 client-go 库使用特定的 secret / configmap 检索对象
【发布时间】:2020-04-18 01:01:36
【问题描述】:

我正在尝试使用client-go 库开发一个简单的控制器。

要求每次更新集群上的密钥和/或 ConfigMap 时,我使用这些密钥/ConfigMap 对对象执行特定操作。

我知道如何使用 informers 观察特定对象的变化。

我的问题是,通过访问 Secret / ConfigMap 来自动列出使用它们的对象(部署、作业等)是否可行。

【问题讨论】:

  • 不,没有用于列出谁在使用特定 Secret 或 ConfigMap 的 api

标签: kubernetes client-go


【解决方案1】:

我认为没有办法按照您描述的方式自动列出对象的所有依赖对象。

但是,您可以有一个控制器来监视您感兴趣的对象(例如部署、作业等)并使用打算使用它们的对象更新您的秘密和配置映射的 metadata.ownerReferences

虽然这通常用于 GC 目的,但当您在密钥或 configmap 上执行 kubectl describe 时,这些对象将被“列出”。

metadata.ownerReferences

此对象所依赖的对象列表。如果列表中的所有对象都有 被删除,这个对象将被垃圾回收。如果这个对象是 由控制器管理,则此列表中的条目将指向此 控制器,控制器字段设置为 true。不能有更多 不止一个管理控制器。

OwnerReference 包含足够的信息,可以让您识别所有权 目的。拥有对象必须与依赖对象位于同一命名空间中,或者 是集群范围的,所以没有命名空间字段。

来源

【讨论】:

    猜你喜欢
    • 2021-02-21
    • 2019-02-01
    • 2023-03-14
    • 1970-01-01
    • 2019-07-07
    • 2016-03-29
    • 1970-01-01
    • 2021-11-02
    • 2022-07-19
    相关资源
    最近更新 更多