Как установить имя секретного ключа kubernetes при использовании --from-файла, отличного от имени файла? - PullRequest
1 голос
/ 30 апреля 2020

Есть ли способ установить имя секретного ключа kubernetes при использовании --from-file, отличного от имени файла?

У меня есть куча разных файлов конфигурации, которые я использую как secrets.json в своих контейнерах. Однако, чтобы организовать мои файлы, ни один из них не назван secrets.json на моем хосте. Например secrets.dev.json или secrets.test.json. Мои приложения знают только чтение в secrets.json.

Когда я создаю секрет с kubectl create secret generic my-app-secrets --from-file=secrets.dev.json, это приводит к тому, что имя ключа будет secrets.dev.json, а не secrets.json.

I монтирую мое секретное содержимое в виде файла (это перенос с перехода с 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"

Поскольку secrets.json не существует в качестве ключа, поскольку он использовал имя файла (secrets.dev.json), вместо этого оно превращается в каталог. В итоге я получаю этот путь монтирования: /run/secrets/secrets.json/secrets.dev.json.

Я хотел бы иметь возможность установить имя ключа на secrets.json вместо использования имени файла secrets.dev.json.

1 Ответ

3 голосов
/ 30 апреля 2020

Вы можете указать имя ключа [--from-file=[key=]source]

kubectl create secret generic my-app-secrets --from-file=secrets.json=secrets.dev.json

Здесь secrets.json - это имя ключа, а secrets.dev.json - это источник

...