95 lines
2.7 KiB
HCL
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 = {}
|
|
}
|