chore: Refactor talos image creation
This commit is contained in:
parent
de4faf86ca
commit
1a791f6c37
3 changed files with 27 additions and 48 deletions
|
|
@ -40,20 +40,3 @@ provider "registry.opentofu.org/hashicorp/http" {
|
||||||
"zh:f1c9d2eb1a6b618ae77ad86649679241bd8d6aacec06d0a68d86f748687f4eb3",
|
"zh:f1c9d2eb1a6b618ae77ad86649679241bd8d6aacec06d0a68d86f748687f4eb3",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "registry.opentofu.org/hashicorp/null" {
|
|
||||||
version = "3.2.4"
|
|
||||||
hashes = [
|
|
||||||
"h1:i+WKhUHL2REY5EGmiHjfUljJB8UKZ9QdhdM5uTeUhC4=",
|
|
||||||
"zh:1769783386610bed8bb1e861a119fe25058be41895e3996d9216dd6bb8a7aee3",
|
|
||||||
"zh:32c62a9387ad0b861b5262b41c5e9ed6e940eda729c2a0e58100e6629af27ddb",
|
|
||||||
"zh:339bf8c2f9733fce068eb6d5612701144c752425cebeafab36563a16be460fb2",
|
|
||||||
"zh:36731f23343aee12a7e078067a98644c0126714c4fe9ac930eecb0f2361788c4",
|
|
||||||
"zh:3d106c7e32a929e2843f732625a582e562ff09120021e510a51a6f5d01175b8d",
|
|
||||||
"zh:74bcb3567708171ad83b234b92c9d63ab441ef882b770b0210c2b14fdbe3b1b6",
|
|
||||||
"zh:90b55bdbffa35df9204282251059e62c178b0ac7035958b93a647839643c0072",
|
|
||||||
"zh:ae24c0e5adc692b8f94cb23a000f91a316070fdc19418578dcf2134ff57cf447",
|
|
||||||
"zh:b5c10d4ad860c4c21273203d1de6d2f0286845edf1c64319fa2362df526b5f58",
|
|
||||||
"zh:e05bbd88e82e1d6234988c85db62fd66f11502645838fff594a2ec25352ecd80",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,13 @@
|
||||||
provider "proxmox" {
|
provider "proxmox" {
|
||||||
endpoint = var.proxmox_endpoint
|
endpoint = var.proxmox_endpoint
|
||||||
api_token = var.proxmox_api_token
|
api_token = var.proxmox_api_token
|
||||||
|
ssh {
|
||||||
|
agent = true
|
||||||
|
username = "root"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
locals {
|
locals {
|
||||||
talos_versions = ["1.11.5"]
|
talos_versions = ["1.11.5"]
|
||||||
}
|
}
|
||||||
|
|
@ -22,33 +27,21 @@ locals {
|
||||||
storagepool = "nvme-fastpool"
|
storagepool = "nvme-fastpool"
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "null_resource" "local_download_talos_image" {
|
resource "proxmox_virtual_environment_download_file" "talos-image" {
|
||||||
for_each = toset(local.talos_versions)
|
|
||||||
|
|
||||||
provisioner "local-exec" {
|
|
||||||
command = <<EOT
|
|
||||||
curl -L https://factory.talos.dev/image/${local.schematic_id}/v${each.value}/nocloud-amd64-secureboot.raw.xz -o ${path.module}/talos-${each.value}-nocloud-amd64-secureboot.raw.xz
|
|
||||||
xz -d ${path.module}/talos-${each.value}-nocloud-amd64-secureboot.raw.xz
|
|
||||||
EOT
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "proxmox_virtual_environment_file" "talos-image" {
|
|
||||||
depends_on = [null_resource.local_download_talos_image]
|
|
||||||
for_each = toset(local.talos_versions)
|
for_each = toset(local.talos_versions)
|
||||||
|
|
||||||
node_name = "pve01"
|
node_name = "pve01"
|
||||||
content_type = "import"
|
|
||||||
datastore_id = "local"
|
datastore_id = "local"
|
||||||
overwrite = true
|
content_type = "iso"
|
||||||
|
|
||||||
source_file {
|
|
||||||
path = "${path.module}/talos-${each.value}-nocloud-amd64-secureboot.raw"
|
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"
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "proxmox_virtual_environment_vm" "talos-template" {
|
resource "proxmox_virtual_environment_vm" "talos-template" {
|
||||||
depends_on = [proxmox_virtual_environment_file.talos-image]
|
depends_on = [proxmox_virtual_environment_download_file.talos-image]
|
||||||
for_each = toset(local.talos_versions)
|
for_each = toset(local.talos_versions)
|
||||||
|
|
||||||
template = true
|
template = true
|
||||||
|
|
@ -76,8 +69,7 @@ resource "proxmox_virtual_environment_vm" "talos-template" {
|
||||||
disk {
|
disk {
|
||||||
datastore_id = local.storagepool
|
datastore_id = local.storagepool
|
||||||
interface = "virtio0"
|
interface = "virtio0"
|
||||||
import_from = proxmox_virtual_environment_file.talos-image[each.value].id
|
file_id = proxmox_virtual_environment_download_file.talos-image[each.value].id
|
||||||
size = 10
|
|
||||||
file_format = "raw"
|
file_format = "raw"
|
||||||
}
|
}
|
||||||
efi_disk {
|
efi_disk {
|
||||||
|
|
|
||||||
|
|
@ -4,5 +4,9 @@ terraform {
|
||||||
source = "bpg/proxmox"
|
source = "bpg/proxmox"
|
||||||
version = "0.86.0"
|
version = "0.86.0"
|
||||||
}
|
}
|
||||||
|
http = {
|
||||||
|
source = "hashicorp/http"
|
||||||
|
version = "3.5.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue