variable "proxmox_apiuser" {
  type    = string
  default = "packer"
}

variable "proxmox_apitoken" {
  type    = string
  default = "changeme"
}

source "proxmox-iso" "debian-12" {
  template_name            = "debian-12"
  template_description     = "Debian 12.9, generated on ${timestamp()}"
  vm_id                    = "203"
  boot_wait                = "10s"
  boot_key_interval        = "200ms"
  boot_command             = ["<esc><wait1s>", "auto url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/debian.cfg", "<enter><wait>"]

  http_directory           = "http"
  http_port_max            = "8089"
  http_port_min            = "8080"

  os                       = "l26"
  cores                    = "2"
  sockets                  = "1"
  cpu_type                 = "host"
  memory                   = "2048"
  scsi_controller          = "virtio-scsi-single"
  disks {
    disk_size              = "30G"
    storage_pool           = "templates"
    type                   = "scsi"
    format                 = "qcow2"
  }
  network_adapters {
    bridge                 = "vmbr0"
    model                  = "virtio"
  }

  proxmox_url              = "https://kamino.int.metaunix.net:8006/api2/json/"
  insecure_skip_tls_verify = true
  username                 = "${var.proxmox_apiuser}"
  password                 = "${var.proxmox_apitoken}"
  node                     = "kamino"
  pool                     = "Templates"

  boot_iso {
    type                   = "scsi"
    iso_url                = "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.9.0-amd64-netinst.iso"
    iso_checksum           = "sha256:1257373c706d8c07e6917942736a865dfff557d21d76ea3040bb1039eb72a054"
    iso_download_pve       = true
    iso_storage_pool       = "iso"
    unmount                = true
  }

  ssh_username             = "xadmin"
  ssh_password             = "packer"
  ssh_timeout              = "20m"
}

build {
  sources = ["source.proxmox-iso.debian-12"]

  provisioner "shell" {
    script = "scripts/debian-install.sh"
  }

  provisioner "file" {
    source      = "scripts/initial-setup.sh"
    destination = "/home/xadmin/initial-setup.sh"
  }
}