Files
iac-homelab/terraform/prod/variables.tf
Damien a9fdb3ac45
All checks were successful
Terraform PR / Validate (pull_request) Successful in 5s
Terraform PR / Plan (pull_request) Successful in 5s
Add DNS configuration for VMs
2026-06-10 08:18:37 +02:00

95 lines
2.7 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 "dns_servers" {
description = "Liste des serveurs DNS pour les VMs (utilisés au bootstrap, avant la prise en charge éventuelle par Tailscale ou un autre service)."
type = list(string)
default = ["192.168.1.254"]
}
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 = {}
}