diff --git a/pve01.wheatley.in/templates/talos/.terraform.lock.hcl b/pve01.wheatley.in/templates/.terraform.lock.hcl similarity index 97% rename from pve01.wheatley.in/templates/talos/.terraform.lock.hcl rename to pve01.wheatley.in/templates/.terraform.lock.hcl index 9f1211b..a6f5d9e 100644 --- a/pve01.wheatley.in/templates/talos/.terraform.lock.hcl +++ b/pve01.wheatley.in/templates/.terraform.lock.hcl @@ -25,7 +25,8 @@ provider "registry.opentofu.org/bpg/proxmox" { } provider "registry.opentofu.org/hashicorp/http" { - version = "3.5.0" + version = "3.5.0" + constraints = "3.5.0" hashes = [ "h1:eClUBisXme48lqiUl3U2+H2a2mzDawS9biqfkd9synw=", "zh:0a2b33494eec6a91a183629cf217e073be063624c5d3f70870456ddb478308e9", diff --git a/pve01.wheatley.in/templates/main.tf b/pve01.wheatley.in/templates/main.tf new file mode 100644 index 0000000..f07e7ab --- /dev/null +++ b/pve01.wheatley.in/templates/main.tf @@ -0,0 +1,25 @@ +terraform { + backend "s3" { + bucket = "13225-wheatley-states" + key = "pve01-templates.tfstate" + region = "main" + skip_credentials_validation = true + skip_metadata_api_check = true + skip_region_validation = true + force_path_style = true + } +} + +provider "proxmox" { + endpoint = var.proxmox_endpoint + api_token = var.proxmox_api_token + ssh { + agent = true + username = "tofu" + } +} + +module "talos" { + source = "./talos" + talos_versions = ["1.11.5"] +} diff --git a/pve01.wheatley.in/templates/talos/providers.tf b/pve01.wheatley.in/templates/providers.tf similarity index 100% rename from pve01.wheatley.in/templates/talos/providers.tf rename to pve01.wheatley.in/templates/providers.tf diff --git a/pve01.wheatley.in/templates/talos/main.tf b/pve01.wheatley.in/templates/talos/main.tf index 61cbd78..bafe748 100644 --- a/pve01.wheatley.in/templates/talos/main.tf +++ b/pve01.wheatley.in/templates/talos/main.tf @@ -1,29 +1,12 @@ terraform { - backend "s3" { - bucket = "13225-wheatley-states" - key = "pve01-templates.tfstate" - region = "main" - skip_credentials_validation = true - skip_metadata_api_check = true - skip_region_validation = true - force_path_style = true + required_providers { + proxmox = { + source = "bpg/proxmox" + version = "0.86.0" + } } } -provider "proxmox" { - endpoint = var.proxmox_endpoint - api_token = var.proxmox_api_token - ssh { - agent = true - username = "root" - } -} - - -locals { - talos_versions = ["1.11.5"] -} - data "http" "schematic" { url = "https://factory.talos.dev/schematics" method = "POST" @@ -40,21 +23,20 @@ locals { } resource "proxmox_virtual_environment_download_file" "talos-image" { - for_each = toset(local.talos_versions) + for_each = toset(var.talos_versions) node_name = "pve01" datastore_id = "local" content_type = "iso" - url = "https://factory.talos.dev/image/${local.schematic_id}/v${each.value}/nocloud-amd64-secureboot.raw.gz" - file_name = "talos-${each.value}-nocloud-amd64-secureboot.img" - decompression_algorithm = "gz" + url = "https://factory.talos.dev/image/${local.schematic_id}/v${each.value}/nocloud-amd64-secureboot.iso" + file_name = "talos-${each.value}-nocloud-amd64-secureboot.iso" } resource "proxmox_virtual_environment_vm" "talos-template" { depends_on = [proxmox_virtual_environment_download_file.talos-image] - for_each = toset(local.talos_versions) + for_each = toset(var.talos_versions) template = true vm_id = 10000 + tonumber(replace(each.value, ".", "")) @@ -73,7 +55,7 @@ resource "proxmox_virtual_environment_vm" "talos-template" { cpu { cores = 2 sockets = 1 - type = "x86-64-v2-AES" + type = "host" } memory { dedicated = 2048 @@ -93,7 +75,4 @@ resource "proxmox_virtual_environment_vm" "talos-template" { datastore_id = local.storagepool version = "v2.0" } - network_device { - bridge = "vmbr1" - } } diff --git a/pve01.wheatley.in/templates/talos/variables.tf b/pve01.wheatley.in/templates/talos/variables.tf index 086f9ff..22784bb 100644 --- a/pve01.wheatley.in/templates/talos/variables.tf +++ b/pve01.wheatley.in/templates/talos/variables.tf @@ -1,8 +1,5 @@ -variable "proxmox_endpoint" { - description = "Proxmox API endpoint" - type = string -} -variable "proxmox_api_token" { - description = "Proxmox API token" - type = string +variable talos_versions { + description = "List of Talos versions to create templates for" + type = list(string) + default = [] } diff --git a/pve01.wheatley.in/templates/variables.tf b/pve01.wheatley.in/templates/variables.tf new file mode 100644 index 0000000..086f9ff --- /dev/null +++ b/pve01.wheatley.in/templates/variables.tf @@ -0,0 +1,8 @@ +variable "proxmox_endpoint" { + description = "Proxmox API endpoint" + type = string +} +variable "proxmox_api_token" { + description = "Proxmox API token" + type = string +}