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

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

source "proxmox-iso" "rocky-9" {
  template_name            = "rocky-9"
  template_description     = "Rocky Linux 9.5, generated on ${timestamp()}"
  vm_id                    = "201"
  boot_wait                = "10s"
  boot_key_interval        = "200ms"
  boot_command             = ["<tab><wait1s>", " inst.ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/rocky-9-server.ks<enter><wait5m>"]

  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"

  iso_url                  = "https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.5-x86_64-boot.iso"
  iso_checksum             = "sha256:628c069c9685477360640a6b58dc919692a11c44b49a50a024b5627ce3c27d5f"
  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.rocky-9"]

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

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