Open3

Proxmox & Talos LinuxでKubernetes Clusterを作る

rabe1028rabe1028
terraform {
  required_providers {
    proxmox = {
      source  = "telmate/proxmox"
      version = "3.0.1-rc4"
    }
  }
}

provider "proxmox" {
  pm_api_url = "https://192.168.100.5:8006/api2/json"
  pm_tls_insecure = true
  pm_log_enable = true
  pm_log_file   = "terraform-plugin-proxmox.log"
  pm_debug      = true
  pm_timeout    = 600 # 10 minutes
  pm_log_levels = {
    _default    = "debug"
    _capturelog = ""
  }
}

resource "proxmox_vm_qemu" "talos-control-plane" {
  count = 1
  name = "talos-cp-${count.index}"
  target_node = "sargas"
  vmid = 200 + count.index

  cores   = 4
  memory  = 4096
  sockets = 1

  scsihw = "virtio-scsi-single"
  # os_type = "Linux 5.x - 2.6 Kernel"
  # qemu_os = "l26"

  boot = "order=ide0;ide2;scsi0"

  disks {
    ide {
      ide0 {
        cloudinit {
          storage = "local-lvm"
        }
      }
      ide2 {
        cdrom {
          iso = "local:iso/metal-amd64.iso"
        }
      }
    }
    scsi {
      scsi0 {
        disk {
          storage = "local-lvm"
          size = "100G"
        }
      }
    }
  }

  network {
    model = "virtio"
    bridge = "vmbr0"
    firewall = true
  }

  # Activate QEMU agent for this VM
  agent = 1

  # Cloud-Init configuration
  os_type   = "cloud-init"
  ipconfig0 = "ip=192.168.100.${count.index + 200}/24,gw=192.168.100.1,ip6=dhcp"
  skip_ipv6  = true
}

telmate/proxmoxを利用して、VMを作ることができることは確認。
ただ、cloud-initを介して、起動時にIPを指定できなかった。

rabe1028rabe1028

上記で作成したTerraformの難点

  1. VMが起動していると設定変更のApplyやDestroyできない
    起動時にIP設定ができているかどうかを試したいが、VMを止めないと動かない。VMを止めるのは手動のみ。
  2. ISOはWeb上からDownloadできるけど、このあたりはTerraformで一括で管理できない
  3. cloud-initによるIP固定が効かない