Загрузка данных


# 1. ПРОВАЙДЕРЫ
terraform {
  required_providers {
    proxmox = {
      source  = "bpg/proxmox"
      version = "0.89.1"
    }
    freeipa = {
      source  = "camptocamp/freeipa"
      version = "1.0.0"
    }
  }
}

# 2. ПЕРЕМЕННЫЕ (значения берем из terraform.tfvars)
variable "pm_api_token" {}
variable "ipa_password" {}

# 3. НАСТРОЙКИ ПОДКЛЮЧЕНИЯ
provider "proxmox" {
  endpoint  = "https://<IP_PROXMOX>:8006/"
  api_token = var.pm_api_token
  insecure  = true
}

provider "freeipa" {
  host     = "ipa.au-team.cloud"
  username = "admin"
  password = var.ipa_password
}

# 4. ОПИСАНИЕ ВИРТУАЛОК (Цикл на 5 машин)
resource "proxmox_virtual_machine" "k8s_srv" {
  count     = 5
  name      = "k8s-srv${count.index + 1}"
  node_name = "pve" # Имя твоего узла в Proxmox

  cpu {
    cores = 2
  }
  memory {
    dedicated = 2048
  }

  initialization {
    user_account {
      username = "altlinux"
      password = "P@ssw0rd"
    }
    ip_config {
      ipv4 {
        # Здесь подставь начальный IP из твоей таблицы
        address = "10.10.10.${101 + count.index}/24" 
        gateway = "10.10.10.1"
      }
    }
  }

  network_device {
    bridge = "vmbr0"
  }

  disk {
    datastore_id = "local-lvm"
    file_id      = "local:iso/alt-p11-cloud-template.img"
    interface    = "virtio0"
  }
}

# 5. DNS ЗАПИСИ (A-типа)
resource "freeipa_dns_record" "k8s_dns_a" {
  count    = 5
  zone     = "au-team.cloud"
  name     = "k8s-srv${count.index + 1}"
  records  = ["10.10.10.${101 + count.index}"]
  type     = "A"
}