0

目前,我是新手,正在研究 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 可以生成一次,我不确定是否可行。

我认为这是一个非常常见的情况,但我不知道什么是最佳实践。

我很欣赏你的想法和观点。

4

0 回答 0