Files
iac-homelab/terraform/prod/variables.tf
Damien Arnodo 3bb9c97d69 feat: add SSH key variables for CI support
Add proxmox_ssh_private_key for provider SSH in CI pipelines.
Add admin_ssh_public_key as content-based alternative to file path.
Both default to empty string for backward compatibility with local usage.
2026-05-03 17:02:31 +00:00

89 lines
2.4 KiB
HCL

# Fichier: terraform/environments/prod/variables.tf
variable "target_node" {
description = "Le nom du noeud Proxmox sur lequel déployer les VMs."
type = string
default = "pve01"
}
variable "proxmox_url" {
description = "URL du noeud Proxmox sur lequel déployer les VMs."
type = string
}
variable "proxmox_api_token" {
description = "Token pour accéder à l'API Proxmox"
type = string
sensitive = true
}
variable "proxmox_ssh_private_key" {
description = "Clé SSH privée pour la connexion Proxmox (utilisée en CI). Si vide, l'agent SSH local est utilisé."
type = string
sensitive = true
default = ""
}
variable "tailscale_auth_key" {
description = "Clé d'authentification Tailscale pour enregistrer les noeuds."
type = string
sensitive = true
}
variable "admin_ssh_public_key" {
description = "Contenu de la clé SSH publique à autoriser (utilisé en CI). Prioritaire sur admin_ssh_public_key_path."
type = string
default = ""
}
variable "admin_ssh_public_key_path" {
description = "Chemin vers le fichier de la clé SSH publique à autoriser."
type = string
default = "~/.ssh/id_rsa.pub"
}
variable "domain_suffix" {
description = "Suffixe de domaine pour les VMs (ex: taila5ad8.ts.net)"
type = string
default = "taila5ad8.ts.net"
}
variable "default_vm_user" {
description = "Utilisateur par défaut pour les VMs"
type = string
default = "root"
}
variable "virtual_machines" {
description = "Configuration des machines virtuelles à déployer"
type = map(object({
# Configuration de base
os = string
cores = number
memory = number
disk_gb = number
ip = string
gateway = string
# Configuration optionnelle
cpu_type = optional(string, "host")
netmask = optional(string, "24")
datastore = optional(string, "local-lvm")
disk_format = optional(string, "raw")
network_bridge = optional(string, "vmbr0")
network_model = optional(string, "virtio")
username = optional(string, "damien")
on_boot = optional(bool, true)
tags = optional(list(string), [])
# Disques supplémentaires (optionnel)
additional_disks = optional(list(object({
interface = string
datastore = string
size = number
format = optional(string, "raw")
})), [])
}))
default = {}
}