Настройка sops / helm-секретов в потоке - PullRequest
0 голосов
/ 24 января 2020

В настоящее время у меня Flux и оператор helm установлены в моем кластере через таблицы управления. Развертывание потока отслеживает репо git, где у меня есть файл .flux.yaml, который я передаю контексту папки через флаг развертывания потока git-path. Это используется для запуска kustomize для исправления файлов значений, которые я хочу использовать для развертывания. В некоторых из этих сред есть файлы, зашифрованные с помощью сопля.

Я настроил Flux с включенным соплом. sops / helm secrets использует ключ aws kms, поэтому локально я принимаю роль, которой я предоставил доступ для шифрования / дешифрования с указанным kms arn. Проблема, с которой я сталкиваюсь, заключается в том, чтобы расшифровать эти секреты до развертывания руля. В настоящее время я получаю зашифрованные значения в последнем ресурсе kubernetes. Кажется, что Cant может найти любую дополнительную документацию о настройке aws ключей доступа / секрета для использования sops на стороне потока или что-либо в операторе helm, чтобы потенциально сделать это через секреты helm. Любые советы будут с благодарностью!

1 Ответ

0 голосов
/ 31 января 2020

Оказалось, что не было проблемы с расшифровкой секрета. Модуль Flux выполняет Sops, используя роль узла (которой я предоставил доступ к decypt с необходимым ключом KMS), и успешно расшифровывал секреты. Я проверил это, вставив в модуль и попробовав sops -d на файле, содержащем мои секреты.

В итоге проблема заключалась в том, что я фактически не передавал расшифрованный файл своему гельмрелизу. Я закончил тем, что выполнил это, используя следующий файл .flux.yaml:

version: 1
patchUpdated:
  generators:
    - command: sops -d --output secrets.yaml secrets.enc.yaml && kustomize build .
    - command: rm secrets.yaml
  patchFile: ../base/flux-patch.yaml

Первоначально мой файл секретов был отформатирован как файл значений helm, но вместо этого обновил его, чтобы иметь возможность исправлять базовые значения файла helmrelease раздел с расшифрованными значениями. Это приводит к тому, что все дешифрованные значения потребляются гельмрелизом. Вторая команда удаляет дешифрованный файл secrets.yaml, чтобы он не возвращался в репозиторий.

Имейте в виду, что это приводит к высвобождению helm в кластере, содержащем все ваши секреты, поэтому вам нужно соответственно управлять доступом к объектам helmrelease.

...