目前,我是新手,正在研究 K8s Operator-sdk。我有一个初始化 Deployment 对象的 ReconcileController,该 Deployment 需要 configmap 和秘密资源。如
Volumes: []corev1.Volume{
{
Name: "configmap-volume",
VolumeSource: corev1.VolumeSource{
ConfigMap: &corev1.ConfigMapVolumeSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: "configmap_name",
},
},
},
},
},
ImagePullSecrets: []corev1.LocalObjectReference{
{
Name: "pull-image-credential",
},
},
我想知道如何将 configmap 和秘密资源传递给控制器。我想可能有两种选择:
方法一:我先创建了configmap对象和secret对象,然后把它们的名字放在CRD里,然后ReconcileController就会收到configmap/secret的名字,就可以访问configmap对象和secret对象了。
方法 2:我将 configmap/secret 原始数据放在磁盘上,在 ReconcileController 中,我读取 configmap/secret 数据并使用 K8s API 动态生成 configmap/secret 对象,然后我的 Deployment 可以访问它们。对于这种方式,我感觉 ReconcileController 是一个循环运行,而我希望 configmap/secret 可以生成一次,我不确定是否可行。
我认为这是一个非常常见的情况,但我不知道什么是最佳实践。
我很欣赏你的想法和观点。