我想引用由CRD创建的对象的属性。
下面是我的例子。我使用https://github.com/GoogleCloudPlatform/k8s-config-connector中的CRD创建了一个Cloud SQL实例。
这将生成一个具有IP的实例。我想引用另一个资源中的IP地址。
有没有类似于下游API的东西可以让我这样做?
如果我不能在本地完成,我可以使用第三方模板工具,如Helm,Helmfile或Kustomize吗?
发布于 2020-03-03 16:53:21
没有什么特别的,我们这样做的方式是,控制器在从属对象的状态子结构上公开IP或主机名等信息,然后将其复制到根对象的状态中,然后我们从中读取并将其注入到配置文件中。
https://github.com/Ridecell/ridecell-operator/blob/39344f4318ff3bcb68ce32dd4319b655a60277da/pkg/controller/summon/components/postgres.go#L58-L61是一个复制的例子,但是它在我们的框架中,所以可能不是很有帮助。
我们在其他地方使用的另一个选项是创建一个init容器,用于读取CRD状态并写出(或转换)配置文件。https://github.com/Ridecell/ridecell-operator/blob/39344f4318ff3bcb68ce32dd4319b655a60277da/cmd/initcontainer/main.go#L181-L203就是一个这样的例子
https://stackoverflow.com/questions/60501240
复制相似问题