Можно ли создать секретный массив строк в k8s? - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь сохранить массив строк как секрет; У меня есть secrets.yml файл, который я использую в своей локальной среде, и он отлично работает (значения приведены только для пояснения):

secrets.yml

passwordz:
  - pass_001
  - pass_002
  - pass_003

Идея состоит в том, чтобы иметь возможность хранить несколько паролей, и я хочу использовать их как часть секрета k8s, но пока мне не повезло; что-то вроде этого:

k8s-secrets.yml

apiVersion: v1
kind: Secret
metadata:
  name: master-passwordz
type: Opaque
data:
  secrets.yml: |-
    passwordz: CiAgLSBwYXNzXzAwMQogIC0gcGFzc18wMDIKICAtIHBhc3NfMDAz

На момент попытки применить этот секрет:

kubectl apply -f ./k8s-secrets.yml

I получаю следующее сообщение об ошибке:

Error from server (BadRequest): error when creating "k8s-secrets.yml": Secret in version "v1" cannot be handled as a Secret: v1.Secret.ObjectMeta: v1.ObjectMeta.TypeMeta: Kind: Data: decode base64: illegal base64 data at input byte 3

Есть идеи, если это возможно сделать sh это?

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Нет, значения должны быть []byte, то есть строкой некоторого вида. Вам придется хранить массив с какой-то кодировкой (обычно JSON), поэтому это простая строка.

1 голос
/ 16 апреля 2020

Не могли бы вы попробовать использовать "stringData" вместо "data". AFAIK этот ключ следует использовать, если вы не предоставляете полные данные в кодировке base64 в Secrets.

...