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


terraform {
  required_providers {
    proxmox = {
      source  = "bpg/proxmox"
      version = "0.89.1"
    }
    freeipa = {
      source  = "camptocamp/freeipa"
      version = "1.0.0"
    }
  }
}

variable "pm_api_token" {}
variable "ipa_password" {}

provider "proxmox" {
  endpoint  = "https://172.16.40"
  api_token = var.pm_api_token
  insecure  = true
}

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

# 1. Возвращаем имя ресурса proxmox_virtual_machine (актуально для bpg)
resource "proxmox_virtual_machine" "k8s_srv" {
  count       = 5
  name        = "k8s-srv${count.index + 1}"
  node_name   = "dc"

  clone {
    vm_id = 101
  }

  cpu {
    cores = 2
  }

  memory {
    dedicated = 2048
  }

  initialization {
    user_account {
      username = "altlinux"
      password = "P@ssw0rd"
    }
    ip_config {
      ipv4 {
        address = "192.168.0.${201 + count.index}/24"
        gateway = "192.168.0.254"
      }
    }
  }

  network_device {
    bridge = "cloudzon"
  }

  disk {
    datastore_id = "storage"
    interface    = "virtio0"
    size         = 20
  }
}

# 2. Исправляем FreeIPA: используем records и type как просит ошибка
resource "freeipa_dns_record" "k8s_dns_a" {
  count           = 5
  dnszoneidnsname = "au-team.cloud"
  idnsname        = "k8s-srv${count.index + 1}"
  type            = "A"
  records         = ["192.168.0.${201 + count.index}"]
}

resource "freeipa_dns_record" "k8s_dns_ptr" {
  count           = 5
  dnszoneidnsname = "0.168.192.in-addr.arpa"
  idnsname        = "${201 + count.index}"
  type            = "PTR"
  records         = ["k8s-srv${count.index + 1}.au-team.cloud."]
}