如何在configmap中设置密码

时间:2020-01-28 06:47:12

标签: docker kubernetes yaml devops configmap

我想在配置映射中配置密码。YAML而不是Deployment.yaml。可以设置用户名和其他变量。请访问我正在使用的配置映射.YAML文件。

kind: ConfigMap
apiVersion: v1
metadata:
  name: poc-configmapconfiguration-configmap
data:
  Environment: [[.Environment]]
  dockerRegistryUrl: [[.Env.dockerRegistryUrl]]
  CassandraSettings__CassandraPassword:
          valueFrom:
             secretKeyRef:
                name: abcd-passwords
                key: "[[ .Environment ]]-abcd-cassandra-password

2 个答案:

答案 0 :(得分:2)

正如已经建议的使用机密存储密码的更好做法 秘密使用Base64编码来掩盖您的数据,因此,与使用ConfigMap相比,最好将秘密用于机密数据。

如果您在ConfigMap字段上执行解释以从CLI获取更多详细信息,它将自动在ConfigMap.data上接受字符串映射。

$ kubectl explain ConfigMap.data
KIND:     ConfigMap
VERSION:  v1

FIELD:    data <map[string]string>

DESCRIPTION:
     Data contains the configuration data. Each key must consist of alphanumeric
     characters, '-', '_' or '.'. Values with non-UTF-8 byte sequences must use
     the BinaryData field. The keys stored in Data must not overlap with the
     keys in the BinaryData field, this is enforced during validation process.

因此,在您使用的 yaml结构上方,应该在创建时抛出错误,如下所示。.

invalid type for io.k8s.api.core.v1.ConfigMap.data

将此git请求用于此类功能请求,该功能请求已关闭,不考虑任何支持。

https://github.com/kubernetes/kubernetes/issues/79224

答案 1 :(得分:1)

secretKeyRef中可以看到,使用Secret更为常见,但是存在等效的configMapRef,并且以相同的方式使用。