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

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

source "proxmox-iso" "freebsd-14" {
  template_name            = "freebsd-14"
  template_description     = "FreeBSD 14.1, generated on ${timestamp()}"
  vm_id                    = "202"
  boot_wait                = "10s"
  boot_key_interval        = "200ms"
  boot_command             = ["<enter>", "<wait15s>", "<enter><wait1s>", "<enter><wait1s>", "freebsd", "<enter><wait1s>", "<enter><wait1s>", "<enter><wait1s>", "<enter><wait1s>", "<enter><wait1s>", "<enter><wait5s>", "<right><enter><wait1s>", "<enter><wait1s>", "<enter><wait4s>", "<enter><wait1s>", "<enter><wait1s>", " <enter><wait1s>", "<left><enter><wait1s>", "<enter><wait80s>", "packer<enter><wait1s>", "packer<enter><wait1s>", "<down><down><enter><wait1s>", "95<up><enter><wait1s>", "<enter><wait1s>", "<enter><wait1s>", "<enter><wait1s>", "<enter><wait1s>", "<down><down><down> <enter><wait1s>", "<down><down><down><down><down><down><down><down> <enter><wait1s>", "<enter><wait1s>", "xadmin<enter>", "Remote admin user<enter>", "<enter>", "<enter>", "wheel<enter>", "<enter>", "<enter>", "<enter>", "<enter>", "<enter>", "<enter>", "<enter>", "<enter>", "packer<enter>", "packer<enter>", "<enter>", "<enter>", "<enter><wait1s>", "<enter><wait1s>", "<left><enter><wait1s>", "pkg update && pkg install -y bash sudo qemu-guest-agent<enter><wait3s>", "y<enter><wait40s>", "echo 'xadmin ALL=(ALL:ALL) NOPASSWD:ALL' > /usr/local/etc/sudoers.d/xadmin<enter><wait1s>", "echo 'qemu_guest_agent_enable=\"YES\"' >> /etc/rc.conf<enter><wait1s>", "exit<enter><wait1s>", "<enter><wait40s>"]

  os                       = "other"
  cores                    = "2"
  sockets                  = "1"
  cpu_type                 = "host"
  memory                   = "2048"
  scsi_controller          = "virtio-scsi-single"
  disks {
    disk_size              = "30G"
    storage_pool           = "templates"
    type                   = "scsi"
  }
  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"

  iso_url                  = "https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.1/FreeBSD-14.1-RELEASE-amd64-bootonly.iso"
  iso_checksum             = "sha256:e40f99eaef691b1545149e242d0ca3808bfcd9711a08bd11e2cb5e62d290c884"
  iso_storage_pool         = "iso"
  unmount_iso              = true
  iso_download_pve         = true

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

build {
  sources = ["source.proxmox-iso.freebsd-14"]

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

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