1.8 KiB
sops и infrastructure-secrets.yaml
infrastructure-secrets.yaml хранит секретную часть k8s-секретов. В infrastructure.yaml остаётся публичное описание: имя секрета, неймспейс, тип, зависимости и набор ключей.
Формат файла:
environments:
prod:
secrets:
- name: yc-kafka-secret
namespace: eav-prod
data:
username: <base64>
password: <base64>
host: <base64>
name и namespace — реальные имя и неймспейс k8s-секрета. data — значения в том же виде, что в k8s .data, то есть base64.
resource_key в этот файл обычно не пишется. Это внутренний ключ terraform для state, а не имя секрета в кластере. Если совпадение по namespace/name невозможно, resource_key можно указать явно, но это исключение.
Редактирование:
sops infrastructure-secrets.yaml
После ручной правки расшифрованного файла:
sops -e -i infrastructure-secrets.yaml
В ci scripts/generate-pipeline.sh расшифровывает файл во временный путь и передаёт его в terragrunt через INFRA_SECRET_VALUES_FILE. Расшифрованный файл не должен попадать в git и артефакты.
Для adopt существующего секрета:
kubectl --context yc-sarex-prod -n <namespace> get secret <name> -o jsonpath='{.data}'
Полученную .data нужно перенести в environments.prod.secrets[] без декодирования.