Как изменить зашифрованный секрет sops без повторного развертывания

Как изменить зашифрованный секрет sops без повторного развертывания

У меня развернут cronjob. Мне нужно обновить параметр -- сменить ключ AES -- содержащийся в секрете. Секрет зашифрован sops.

Можно ли обновить ключ AES без повторного развертывания задания?

Что я пробовал:

"kubectl edit secret jobsecret" -- edits the sops encrypted file but it is still encrypted
"helm edit secrets jobsecret.yaml" -- edits/encrypts the parameter file before deploy

Моя следующая мысль — создать файл, затем зашифровать его с помощью sops и скопировать/вставить результат в редактор для "kubectl edit secret jobsecret". Я надеялся, что есть лучший способ.

Я разработчик, а не админ k8s. Но не по выбору. Заполняю, пока не решим проблему "нет админа k8s".

решение1

TL;DR

Вы можете использовать $ kubectl patchдля обновления полей ресурсов.

Пример:

kubectl patch secret YOUR_SECRET -p '{"data":{"key":"NEW_BASE64_ENCODED_VALUE"}}'

Дополнительную информацию можно найти здесь:

Ниже я привел более подробные пояснения.


Пример «исправления» секрета:

  • $ secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: super-secret
data:
  username: a3J1aw==
  password: b2xkLXBhc3N3b3Jk

Примечание!

Значения ключей, таких как usernameи , passwordзакодированы в base64!

Чтобы изменить значение passwordвам необходимо выполнить:

  • kubectl patch super-secret -p '{"data":{"password":"bmV3LXBhc3N3b3Jk"}}'

Отображение недавно обновленного секрета должно показать (вывод только частичный):

  • $ kubectl get secret super-secret -o yaml
data:
  password: bmV3LXBhc3N3b3Jk 
  username: a3J1aw==

Я настоятельно рекомендую вам ознакомиться с дополнительной информацией:

Связанный контент