resource "matchbox_group" "server" {
  name = "server"
  profile = matchbox_profile.server.name
  selector = {
    #mac = "52:54:00:c5:88:ad"
    mac = "c0:3f:d5:6a:02:a3"
  }
}
resource "matchbox_profile" "server" {
  name   = "server"
  kernel = local.kernel
  initrd = [
    "--name main ${local.initrd}"
  ]
  args = [
    "ip=dhcp",
    "initrd=main",
    "coreos.live.rootfs_url=${local.rootfs}",
    "coreos.inst.install_dev=/dev/sda",
    "coreos.inst.ignition_url=${var.matchbox_http_endpoint}/ignition?uuid=$${uuid}&mac=$${mac:hexhyp}",
    "console=tty0",
    "console=ttyS0",
  ]
  raw_ignition = data.ignition_config.server.rendered
}

data "ignition_config" "server" {
  users = [
    data.ignition_user.core.rendered
  ]
  systemd = [
    #data.ignition_systemd_unit.qemu_ga.rendered,
    data.ignition_systemd_unit.k3s_server_install.rendered,
  ]
  files = [
#    data.ignition_file.worker-options.rendered,
    data.ignition_file.k3s_server_install_script.rendered,
    data.ignition_file.k3s_server_hostname.rendered,
    data.ignition_file.k3s_server_updates.rendered,
  ]
}

data "ignition_file" "k3s_server_updates" {
  path = "/etc/zincati/config.d/55-updates-strategy.toml"
  content {
    content = file("${path.module}/files/55-updates-strategy.toml")
  }
}
data "ignition_file" "k3s_server_install_script" {
  path = "/opt/k3s-server-install.sh"
  mode = 700
  content {
    content = templatefile(
      "${path.module}/files/k3s-server-install.sh",
      {
        "k3s_token" = var.k3s_agent_token
      }
    )
  }
}
data "ignition_systemd_unit" "k3s_server_install" {
  name = "k3s-install.service"
  depends_on = [
    data.ignition_file.k3s_server_install_script
  ]
  content = file("${path.module}/units/k3s-server-install.service")
}

data "ignition_file" "k3s_server_hostname" {
  path = "/etc/hostname"
  mode = 0644
  content {
    content = "kubemaster0.lab.cowley.tech"
  }
}