使用 --from-file 而非 filename 时如何设置 kubernetes 密钥名称?

Joe*_*son 8 kubernetes docker-secrets kubernetes-secrets

--from-file使用文件名以外的文件名时,有没有办法设置 kubernetes 密钥名称?

secrets.json我在容器中使用了一堆不同的配置文件。但是,为了组织我的文件,它们都没有secrets.json在我的主机上命名。例如secrets.dev.jsonsecrets.test.json. 我的应用程序只知道读入secrets.json.

当我使用 创建秘密时kubectl create secret generic my-app-secrets --from-file=secrets.dev.json,这会导致密钥名称为secrets.dev.json,而不是secrets.json

我将我的秘密内容作为文件安装(这是从 Docker swarm 迁移而来的遗留物)。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  template:
    spec:
      volumes:
      - name: my-secret
        secret:
          secretName: my-app-secrets
      containers:
        - name: my-app
          volumeMounts:
            - name: my-secret
              mountPath: "/run/secrets/secrets.json"
              subPath: "secrets.json"
Run Code Online (Sandbox Code Playgroud)

因为它secrets.json不作为键存在,因为它使用了文件名 ( secrets.dev.json),所以它最终会变成一个目录。我最终得到了这个安装路径:/run/secrets/secrets.json/secrets.dev.json

我希望能够将密钥名称设置为secrets.json而不是使用secrets.dev.json.

hoq*_*que 10

您可以指定键名[--from-file=[key=]source]

kubectl create secret generic my-app-secrets --from-file=secrets.json=secrets.dev.json
Run Code Online (Sandbox Code Playgroud)

这里,secrets.json是键名,secrets.dev.json是源