66 lines
1.5 KiB
HCL
66 lines
1.5 KiB
HCL
terraform {
|
||
required_providers {
|
||
# Мы говорим: "В этом коде имя proxmox означает провайдер bpg"
|
||
proxmox = {
|
||
source = "bpg/proxmox"
|
||
version = "0.70.0"
|
||
}
|
||
}
|
||
backend "http" {}
|
||
}
|
||
|
||
provider "proxmox" {
|
||
# Указываем, что этот блок настроек относится к провайдеру bpg
|
||
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" {
|
||
for_each = var.vm_nodes
|
||
node_name = "pve" # Убедись, что в Proxmox нода называется именно pve
|
||
|
||
name = each.value.name
|
||
vm_id = each.value.id
|
||
|
||
# Клонируем шаблон, который ты сделал из Cloud-Image (ID 9000)
|
||
clone {
|
||
vm_id = 9000
|
||
}
|
||
|
||
cpu {
|
||
cores = 2
|
||
type = "host"
|
||
}
|
||
|
||
memory {
|
||
dedicated = 4096
|
||
}
|
||
|
||
network_device {
|
||
bridge = "vmbr0"
|
||
}
|
||
|
||
disk {
|
||
datastore_id = "local-lvm"
|
||
interface = "scsi0"
|
||
size = 20
|
||
}
|
||
|
||
initialization {
|
||
ip_config {
|
||
ipv4 {
|
||
address = "${each.value.ip}/24"
|
||
gateway = "10.33.33.1"
|
||
}
|
||
}
|
||
user_account {
|
||
username = "ubuntu"
|
||
# Сюда вставь свой публичный ключ
|
||
keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPkMcT6PGm4xwBlwwwLkzdzTF/pgtADIcdejf5xALbxQ semaphore-gitea-key"]
|
||
}
|
||
}
|
||
} |