creation_rules: - path_regex: infrastructure-secrets\.yaml$ # Точечное шифрование: только значения под буквально именованным ключом # `data` (рекурсивно, весь его поддерево). ВСЕ секретные значения обязаны # лежать именно под data - это структурный инвариант файла, а не # опциональное соглашение. См. environments..vault.data.{common, # infrastructure} и environments..secrets[].data. Несекретная # конфигурация (enabled/kv_mount/features/applications-policy-config/ # namespaces/databases/kafka-topics и т.д.) остаётся читаемой в git-diff. # # ВНИМАНИЕ: если добавляешь новое секретное поле НЕ под ключ data - оно # уйдёт в git открытым текстом молча, без ошибки. Именно так эта ветка уже # один раз утекла (плоское дерево vault.common/vault.infrastructure без # обёртки data). Прежде чем добавлять новый путь для секрета - убедиться, # что он физически вложен под data, а не просто "выглядит как секрет". encrypted_regex: "^(data)$" # Переходный период разделения ключей по окружениям: старый общий ключ # (все три окружения) остаётся вторым получателем, пока CI-переменная # SOPS_AGE_KEY не переключена на новый contour-only ключ в каждой Gitea # контура. После переключения старый recipient убрать отсюда. age: age1ztyyem7qy3fn7vjprnadhsv2txds8a63pr76uut264qwnwxv8v9qwpkagt,age198ea80z7gan2ruetn288ln6rl2qh7xtsqqpwrjtyn8maya3364fsvpdd63