b0768db7a7
Configure an s3 backend and initialize Terraform in CI with backend config from Gitea secrets so state persists across runs and apply operations stay consistent.
111 lines
2.0 KiB
Terraform
111 lines
2.0 KiB
Terraform
terraform {
|
|
backend "s3" {}
|
|
|
|
required_providers {
|
|
proxmox = {
|
|
source = "Telmate/proxmox"
|
|
version = "3.0.2-rc07"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "proxmox" {
|
|
pm_api_url = var.pm_api_url
|
|
pm_api_token_id = var.pm_api_token_id
|
|
pm_api_token_secret = var.pm_api_token_secret
|
|
pm_tls_insecure = true
|
|
}
|
|
|
|
resource "proxmox_vm_qemu" "alpacas" {
|
|
count = var.alpaca_vm_count
|
|
name = "alpaca-${count.index + 1}"
|
|
vmid = 500 + count.index + 1
|
|
target_node = var.target_node
|
|
clone = var.clone_template
|
|
full_clone = true
|
|
os_type = "cloud-init"
|
|
agent = 1
|
|
|
|
sockets = var.sockets
|
|
cores = var.cores
|
|
memory = var.memory
|
|
scsihw = "virtio-scsi-pci"
|
|
boot = "order=virtio0"
|
|
bootdisk = "virtio0"
|
|
ipconfig0 = "ip=dhcp"
|
|
cicustom = "user=local:snippets/cloud_init_global.yaml"
|
|
|
|
|
|
disks {
|
|
virtio {
|
|
virtio0 {
|
|
disk {
|
|
size = var.disk_size
|
|
storage = var.storage
|
|
}
|
|
}
|
|
}
|
|
|
|
ide {
|
|
ide2 {
|
|
cloudinit {
|
|
storage = var.storage
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
network {
|
|
id = 0
|
|
model = "virtio"
|
|
bridge = var.bridge
|
|
}
|
|
}
|
|
|
|
|
|
resource "proxmox_vm_qemu" "llamas" {
|
|
count = var.llama_vm_count
|
|
name = "llama-${count.index + 1}"
|
|
vmid = 600 + count.index + 1
|
|
target_node = var.target_node
|
|
clone = var.clone_template
|
|
full_clone = true
|
|
os_type = "cloud-init"
|
|
agent = 1
|
|
|
|
sockets = var.sockets
|
|
cores = var.cores
|
|
memory = var.memory
|
|
scsihw = "virtio-scsi-pci"
|
|
boot = "order=virtio0"
|
|
bootdisk = "virtio0"
|
|
ipconfig0 = "ip=dhcp"
|
|
cicustom = "user=local:snippets/cloud_init_global.yaml"
|
|
|
|
disks {
|
|
virtio {
|
|
virtio0 {
|
|
disk {
|
|
size = var.disk_size
|
|
storage = var.storage
|
|
}
|
|
}
|
|
}
|
|
|
|
ide {
|
|
ide2 {
|
|
cloudinit {
|
|
storage = var.storage
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
network {
|
|
id = 0
|
|
model = "virtio"
|
|
bridge = var.bridge
|
|
}
|
|
}
|