feat: support SSH key injection via Gitea secrets for CI pipelines #12
Reference in New Issue
Block a user
Delete Branch "feat/ci-ssh-key-support"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problème
Le provider Proxmox (
bpg/proxmox) nécessite une connexion SSH pour uploader les fichiers cloud-init sur le noeud Proxmox. En local, cela fonctionne via l'agent SSH (agent = true), mais en CI (Gitea Actions), l'agent SSH n'est pas disponible et la clé privée n'est pas accessible.De même, le cloud-init utilise
file(var.admin_ssh_public_key_path)pour lire la clé publique depuis le disque, ce qui échoue en CI.Solution
Fichiers modifiés
terraform/prod/variables.tf— Ajout de deux nouvelles variables :proxmox_ssh_private_key: contenu de la clé SSH privée (pour le provider)admin_ssh_public_key: contenu de la clé SSH publique (pour cloud-init)terraform/prod/providers.tf— Le bloc SSH du provider est maintenant conditionnel :proxmox_ssh_private_keyest fourni → utiliseprivate_keydirectementagent = true(comportement local inchangé)terraform/prod/02-cloud-init.tf— Ajout d'unlocalspour résoudre la clé publique :admin_ssh_public_keyest fourni → utilise le contenu directementadmin_ssh_public_key_path(comportement local inchangé).gitea/workflows/terraform-deploy.ymletterraform-pr.yml— Ajout des variables d'environnement :TF_VAR_proxmox_ssh_private_key: ${{ secrets.PROXMOX_SSH_PRIVATE_KEY }}TF_VAR_admin_ssh_public_key: ${{ secrets.ADMIN_SSH_PUBLIC_KEY }}Secrets Gitea à configurer
Ajouter dans Settings > Actions > Secrets du repo
iac-homelab:PROXMOX_SSH_PRIVATE_KEY-----BEGIN/END-----)ADMIN_SSH_PUBLIC_KEYssh-rsa AAAA... user@host)Rétrocompatibilité
En local, aucun changement nécessaire : les variables ont des valeurs par défaut vides, donc le comportement existant (agent SSH + lecture fichier) est préservé.
🔍 Terraform Plan
Exit code:
00= No changes2= Changes detectedClick to expand plan output