Closed10

OpenTofuとProxmoxを使ってTalos LinuxのK8s クラスタを構築したい

はるはる

適当に作って壊せるKubernetes環境を作るためにやってみる

はるはる
$ touch provider.tf
$ vim provider.tf
terraform {
  required_providers {
    proxmox = {
      source = "bpg/proxmox"
      version = "0.82.1"
    }
  }
}

provider "proxmox" {
  # Configuration options
}
はるはる
~/proxmox-tofu main* 2m 51s
❯ cat provider.tf
terraform {
  required_providers {
    proxmox = {
      source = "bpg/proxmox"
      version = "0.82.1"
    }
  }
}

provider "proxmox" {
  endpoint = "https://your_proxmox_address:8006/"

  username = "root@pam"
  password = "your_root_password"

  insecure = true

  ssh {
    agent = true
  }
}
はるはる
x86_64-v2-AESにしたいけどやり方書いてない
はるはる
  cpu {
    cores = 2
    type  = "x86-64-v2-AES"
  }
はるはる

とりあえずテンプレート用main.tfが完成した

resource "proxmox_virtual_environment_vm" "ubuntu_template" {
  name        = "ubuntu-template"
  node_name   = "pve-01"
  vm_id       = 2000
  template    = true
  started     = false
  machine     = "q35"
  bios        = "seabios"
  description = "Managed by Terraform"

  cpu {
    cores = 4
    type  = "x86-64-v2-AES"
  }

  memory {
    dedicated = 4096
    floating  = 2048
  }

  # メインディスク
  disk {
    interface    = "scsi0"
    size         = 64
    datastore_id = "local-lvm"
  }

  # ISO ファイルを指定するための CD-ROM
  cdrom {
    enabled = true
    file_id = "local:iso/talos-1.10.7-longhorn.iso"
  }

  network_device {
    bridge = "vmbr0"
  }
}
はるはる

なんかテンプレートのクローンノード間だとできないっぽいから適当にClaudeに書かせた

resource "proxmox_virtual_environment_vm" "home_k8s_template_pve01" {
  name        = "talos-template"
  node_name   = "pve-01"
  vm_id       = 2000
  template    = true
  started     = false
  machine     = "q35"
  bios        = "seabios"
  description = "Managed by Terraform"

  tags = ["kubernetes", "testing"]

  cpu {
    cores = 4
    type  = "x86-64-v2-AES"
  }

  memory {
    dedicated = 4096
    floating  = 2048
  }

  disk {
    interface    = "scsi0"
    size         = 64
    datastore_id = "local-lvm"
  }

  cdrom {
    file_id = "local:iso/talos-1.10.7-longhorn.iso"
  }

  network_device {
    bridge = "vmbr0"
  }
}

resource "proxmox_virtual_environment_vm" "home_k8s_template_pve02" {
  name        = "talos-template"
  node_name   = "pve-02"
  vm_id       = 2001
  template    = true
  started     = false
  machine     = "q35"
  bios        = "seabios"
  description = "Managed by Terraform"

  tags = ["kubernetes", "testing"]

  cpu {
    cores = 4
    type  = "x86-64-v2-AES"
  }

  memory {
    dedicated = 4096
    floating  = 2048
  }

  disk {
    interface    = "scsi0"
    size         = 64
    datastore_id = "local-lvm"
  }

  cdrom {
    file_id = "local:iso/talos-1.10.7-longhorn.iso"
  }

  network_device {
    bridge = "vmbr0"
  }
}
このスクラップは2日前にクローズされました