是否可以获取`.env`文件来创建Kubernetes的秘密?

mar*_*ins 11 kubernetes

文档指出的是

要从一个或多个文件创建机密,请使用--from-file.只要文件包含键值对,就可以指定任何纯文本格式的文件,例如.txt或.env.

.测试秘密

NAME=martin
GENDER=male
Run Code Online (Sandbox Code Playgroud)

测试基于我的.test-secret文件创建秘密.

kubectl create secret generic person --from-file .test-secret -o yml

$ kubectl get secret person -o yaml
apiVersion: v1
data:
  .test-secret: TkFNRT1tYXJ0aW4KR0VOREVSPW1hbGUK
kind: Secret
metadata:
  creationTimestamp: 2018-07-19T09:23:05Z
  name: person
  namespace: default
  resourceVersion: "229992"
  selfLink: /api/v1/namespaces/default/secrets/person
  uid: 579198ab-8b35-11e8-8895-42010a840008
type: Opaque
Run Code Online (Sandbox Code Playgroud)

是否可以读取这样的键/值列表?甚至可以从.env文件中这样做吗?kubectl get pods返回CreateContainerConfigError

我-app.yml

 77             - name: NAME
 78               valueFrom:
 79                 secretKeyRef:
 80                   name: person
 81                   key: NAME
Run Code Online (Sandbox Code Playgroud)

Ign*_*lán 19

是的,使用选项--from-env-file

kubectl create secret generic person --from-env-file=.test-secret
Run Code Online (Sandbox Code Playgroud)

  • `--from-env-file` 选项具有极其粗略的解析,例如,如果您的 .env 文件包含引号或内联注释,它们将成为您值的一部分。这句话可以帮助:`kubectl create Secret generic person --from-env-file=<(env -i sh -c "set -a; . .test-secret; printenv | grep -v '^PWD=' ”)` (4认同)
  • 这是做OP所需要的正确方法.cloud.google.com doc似乎不正确地说`--from-file`应该被使用,我在他们的页面上发布了反馈. (3认同)
  • `--from-env-file`是一个救生员:) (3认同)