chore: Refactor templates into modules
This commit is contained in:
parent
f2acafd737
commit
0e37a64198
6 changed files with 49 additions and 39 deletions
|
|
@ -1,42 +0,0 @@
|
|||
# This file is maintained automatically by "tofu init".
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.opentofu.org/bpg/proxmox" {
|
||||
version = "0.86.0"
|
||||
constraints = "0.86.0"
|
||||
hashes = [
|
||||
"h1:brQxwkXGxNw5N2gNwwefF9XxzrudYgSyjHrRhdvAdjo=",
|
||||
"zh:09b627b92a59848769fadfc3d8103eebf070a3800144bf03cb93f44472327f44",
|
||||
"zh:0e19eb7f1047d541e50b97d7ac440ea73685d0c28ed2dbe64217cbe2f0b353e0",
|
||||
"zh:20f1e70091ff3056876618c93afd79527c8995f955d153993e8fbb10fa42593b",
|
||||
"zh:3920315be565976f5a9da0803f8f1a108221282f1bc9e21160669d793af4e0c8",
|
||||
"zh:5133b2a2027428d3926eaa3bcdc0ab65a75305d54f6cbc7c54cce746dfddbc8e",
|
||||
"zh:514c588b04738d55c9e6b1c5a4e3fb1ef4041dfb809d2268f14d29839ecfba59",
|
||||
"zh:55916034025b4833bd6a93bb5948dfb7d00830a772ef74fa70898c6f7de0da0b",
|
||||
"zh:58b485a4b0bde56ca7032fca0ac09cb4c6ff2579e06cf4f2a311bb695baa0df1",
|
||||
"zh:75ebe44e6da4108af5fe02a9cd99ed0189985b486a2a56594952098d161ceb3d",
|
||||
"zh:a8c870bfb5958a3d49d639db3c2761cfb453c6a6f95e5e241890922b11c8a4d8",
|
||||
"zh:c2df2748b9be47a6c3e613667c64874d5cb1d3fbb5b985d6eb9c3af5af298454",
|
||||
"zh:c3059668f4f81e450e555a47310e7042044b335f131643262fd51f9ba96f2214",
|
||||
"zh:ddbbb23910666f70cf4a9587ba57b45f5f58c53a1f8d7cee1d6f90a3d3ef38ef",
|
||||
"zh:e430138b897edcd3b64e4309db34ac872526187782626aa074d8d1647a0abfa8",
|
||||
"zh:f26e0763dbe6a6b2195c94b44696f2110f7f55433dc142839be16b9697fa5597",
|
||||
]
|
||||
}
|
||||
|
||||
provider "registry.opentofu.org/hashicorp/http" {
|
||||
version = "3.5.0"
|
||||
hashes = [
|
||||
"h1:eClUBisXme48lqiUl3U2+H2a2mzDawS9biqfkd9synw=",
|
||||
"zh:0a2b33494eec6a91a183629cf217e073be063624c5d3f70870456ddb478308e9",
|
||||
"zh:180f40124fa01b98b3d2f79128646b151818e09d6a1a9ca08e0b032a0b1e9cb1",
|
||||
"zh:3e29e1de149dc10bf78620526c7cb8c62cd76087f5630dfaba0e93cda1f3aa7b",
|
||||
"zh:4420950200cf86042ec940d0e2c9b7c89966bf556bf8038ba36217eae663bca5",
|
||||
"zh:5d1f7d02109b2e2dca7ec626e5563ee765583792d0fd64081286f16f9433bd0d",
|
||||
"zh:8500b138d338b1994c4206aa577b5c44e1d7260825babcf43245a7075bfa52a5",
|
||||
"zh:b42165a6c4cfb22825938272d12b676e4a6946ac4e750f85df870c947685df2d",
|
||||
"zh:b919bf3ee8e3b01051a0da3433b443a925e272893d3724ee8fc0f666ec7012c9",
|
||||
"zh:d13b81ea6755cae785b3e11634936cdff2dc1ec009dc9610d8e3c7eb32f42e69",
|
||||
"zh:f1c9d2eb1a6b618ae77ad86649679241bd8d6aacec06d0a68d86f748687f4eb3",
|
||||
]
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "bpg/proxmox"
|
||||
version = "0.86.0"
|
||||
}
|
||||
http = {
|
||||
source = "hashicorp/http"
|
||||
version = "3.5.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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 = []
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue