diff --git a/terraform/main.tf b/terraform/main.tf index 05b9cf9..ff6e82e 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -1,13 +1,36 @@ +terraform { + required_providers { + # Мы называем локальный алиас "proxmox" + proxmox = { + source = "bpg/proxmox" + version = "0.70.0" + } + } + backend "http" {} +} + +provider "proxmox" { + endpoint = var.proxmox_api_url + api_token = "${var.proxmox_api_token_id}=${var.proxmox_api_token_secret}" + insecure = true + ssh { + agent = false + } +} + resource "proxmox_virtual_machine" "k8s_nodes" { + # Явно указываем, какой провайдер использовать для этого ресурса + provider = proxmox + for_each = var.vm_nodes - node_name = "pve-main" + node_name = "pve" name = each.value.name vm_id = each.value.id - # Указываем клонирование шаблона + # Мы перешли на клонирование шаблона (Шаг 9000 из прошлой инструкции) clone { - vm_id = 9000 # ID шаблона, который мы создали выше + vm_id = 9000 } cpu { @@ -23,15 +46,13 @@ resource "proxmox_virtual_machine" "k8s_nodes" { bridge = "vmbr0" } - # Диск теперь настраивается через переопределение диска шаблона disk { datastore_id = "local-lvm" - interface = "scsi0" # Тот же интерфейс, что в шаблоне + interface = "scsi0" size = 20 } initialization { - # Эти параметры Cloud-Init применит к склонированной машине ip_config { ipv4 { address = "${each.value.ip}/24" @@ -40,7 +61,7 @@ resource "proxmox_virtual_machine" "k8s_nodes" { } user_account { username = "ubuntu" - keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPkMcT6PGm4xwBlwwwLkzdzTF/pgtADIcdejf5xALbxQ semaphore-gitea-key"] # Твой ключ + keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPkMcT6PGm4xwBlwwwLkzdzTF/pgtADIcdejf5xALbxQ semaphore-gitea-key"] } } } \ No newline at end of file