FluxCD: настройка подписи коммитов
Чтобы настроить подпись коммитов у FluxCD, необходимо его бутстрапить с _бинарным файлом подписи. На примере Terraform
:
-
Создаем подпись:
resource "gpg_private_key" "fluxcd" {
name = "fluxcd[bot]"
email = "XXXXXXXX+fluxcd[bot]@users.noreply.github.com"
rsa_bits = 4096
}Провайдеры:
terraform {
required_version = ">= 1.10"
required_providers {
flux = {
source = "fluxcd/flux"
version = ">= 1.4"
}
gpg = {
source = "Olivr/gpg"
version = ">= 0.2"
}
}
} -
Коммитим приватный ключ в GitHub:
resource "github_repository_file" "default" {
repository = "ТЕКУЩИЙ_РЕПОЗИТОРИЙ"
branch = "master"
file = "ПУТЬ_ДО_ФАЙЛА"
content = gpg_private_key.fluxcd.private_key
commit_message = "СООБЩЕНИЕ_КОММИТА"
overwrite_on_create = true
} -
Переводим закомиченный файл с ASCII ключом
gpg --dearmor ПУТЬ_ДО_ФАЙЛА_ИЗ_КОММИТА
-
Выводим ID ключа
gpg --list-packets --verbose ПУТЬ_ДО_ФАЙЛА_ИЗ_КОММИТА
, берем егоkeyid
-
По итогу наш провайдера FluxCD будет выглядеть так:
provider "flux" {
kubernetes = {
...
}
git = {
...
gpg_key_ring = "ПУТЬ_ДО_БИНАРНОГО_ФАЙЛА_ИЗ_ПУНКТА_3"
gpg_key_id = "keyid_ИЗ_ПУНКТА_4"
gpg_passphrase = gpg_private_key.fluxcd.passphrase
...
ssh = {
username = "git"
...
}
}
}