Credenciais de registry
O código pode precisar baixar charts e imagens de registries com login (Harbor, GHCR, Docker Hub) ou módulos e providers de um registry Terraform privado. As credenciais podem vir das configurações ou do repositório.
Nas configurações
São herdadas por host: o nível mais próximo vence, e hosts diferentes se somam.
curl -X PUT -H "$H" $O/settings -d '{
"registries": [
{"host": "harbor.example.com", "username": "robot$infra", "password": "..."},
{"host": "ghcr.io", "username": "bot", "password_vault": {"path": "secret/ci/ghcr", "field": "token"}},
{"host": "tf.example.com", "kind": "terraform", "password": "..."}
]
}'
kind é oci por padrão, ou terraform para um registry privado de módulos e providers. A senha nunca é devolvida. Mandada vazia, a guardada continua. Sem o campo registries, as credenciais do nível ficam como estão; [] remove todas.
Um
PUTde configurações substitui o que o nível define. Mande as variáveis e as outras configurações do nível junto comregistries. Veja Organizações, pastas e stacks.
No repositório
Use registries no config.yaml, com as mesmas fontes da declaração ({var: ...}, {vault: ...}):
registries:
- host: harbor.example.com
username: robot$infra
password: { vault: secret/infra/harbor, field: token }
Para o mesmo host, vencem as configurações.
No run
- O Firstlume escreve o
config.jsondo Docker no HOME da fase e apontaDOCKER_CONFIGeHELM_REGISTRY_CONFIGpara ele. O providerhelme o própriohelmleem daí. - Para registries do tipo
terraform, exportaTF_TOKEN_<host>. - Senhas e o
usuário:senhaem base64 são mascarados no log. - O apply usa as credenciais do plan.
Credenciais de registry valem só para registries. Não servem para clonar Git, e o token do Git não serve para registries.