terraform-contour-mirror/SOPS.md

44 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# sops и infrastructure-secrets.yaml
`infrastructure-secrets.yaml` хранит секретную часть k8s-секретов. В `infrastructure.yaml` остаётся публичное описание: имя секрета, неймспейс, тип, зависимости и набор ключей.
Формат файла:
```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` можно указать явно, но это исключение.
Редактирование:
```bash
sops infrastructure-secrets.yaml
```
После ручной правки расшифрованного файла:
```bash
sops -e -i infrastructure-secrets.yaml
```
В ci `scripts/generate-pipeline.sh` расшифровывает файл во временный путь и передаёт его в terragrunt через `INFRA_SECRET_VALUES_FILE`. Расшифрованный файл не должен попадать в git и артефакты.
Для adopt существующего секрета:
```bash
kubectl --context yc-sarex-prod -n <namespace> get secret <name> -o jsonpath='{.data}'
```
Полученную `.data` нужно перенести в `environments.prod.secrets[]` без декодирования.