All checks were successful
- Ajout script Python (v1.0) pour gestion automatique des ressources LINSTOR * Vérifie et crée les ressources si nécessaires * Redimensionne les volumes (augmentation uniquement) * Lecture automatique depuis fichiers Terraform * Opérations idempotentes - Intégration dans pipeline CI/CD pour pve1 et pve2 * Copie et exécution du script sur chaque noeud * Lecture dynamique de la config Terraform - Améliorations configuration Terraform pour toutes les VMs * Ajout Standard VGA (résout "No Bootable Device") * Configuration CPU type "host" pour meilleures performances * BIOS et boot order explicites * Gestion VMs existantes (force_create approprié) * Lifecycle simplifié pour permettre mises à jour Auteur script: BENE Maël
79 lines
1.6 KiB
HCL
79 lines
1.6 KiB
HCL
terraform {
|
|
required_version = ">= 1.6.0"
|
|
|
|
required_providers {
|
|
proxmox = {
|
|
source = "telmate/proxmox"
|
|
version = "3.0.2-rc05"
|
|
}
|
|
local = {
|
|
source = "hashicorp/local"
|
|
version = "~> 2.1"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "proxmox" {
|
|
pm_api_url = var.proxmox_api_url
|
|
pm_api_token_id = var.proxmox_token_id
|
|
pm_api_token_secret = var.proxmox_token_secret
|
|
pm_tls_insecure = var.proxmox_tls_insecure
|
|
}
|
|
|
|
# etcd Witness VM on thinkpad
|
|
resource "proxmox_vm_qemu" "etcd_witness" {
|
|
vmid = 1002
|
|
name = "etcd-witness"
|
|
target_node = "thinkpad"
|
|
clone = var.ubuntu_template
|
|
full_clone = true
|
|
|
|
# Gère les VMs existantes - force recréation si VM existe déjà
|
|
force_create = true
|
|
|
|
cpu {
|
|
cores = var.etcd_witness_config.cores
|
|
sockets = 1
|
|
type = "host"
|
|
}
|
|
|
|
memory = var.etcd_witness_config.memory
|
|
agent = 1
|
|
|
|
bios = "seabios"
|
|
boot = "order=scsi0"
|
|
|
|
# Utilise Standard VGA pour la compatibilité
|
|
vga {
|
|
type = "std"
|
|
}
|
|
|
|
scsihw = "virtio-scsi-single"
|
|
onboot = true
|
|
|
|
network {
|
|
id = 0
|
|
model = "virtio"
|
|
bridge = var.k3s_network_bridge
|
|
}
|
|
|
|
disk {
|
|
slot = "scsi0"
|
|
size = var.etcd_witness_config.disk_size
|
|
type = "disk"
|
|
storage = var.etcd_witness_storage_pool
|
|
iothread = true
|
|
}
|
|
|
|
ipconfig0 = "ip=${var.etcd_witness_config.ip},gw=${var.k3s_gateway}"
|
|
cicustom = "user=${var.snippets_storage}:snippets/cloud-init-etcd-witness.yaml"
|
|
nameserver = join(" ", var.k3s_dns)
|
|
|
|
lifecycle {
|
|
ignore_changes = [
|
|
clone
|
|
]
|
|
}
|
|
|
|
depends_on = [local_file.etcd_witness_cloud_init]
|
|
}
|