Оказалось, что не было проблемы с расшифровкой секрета. Модуль 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.