Compare commits

..

3 commits

9 changed files with 62 additions and 55 deletions

View file

@ -16,7 +16,6 @@ machine:
kubelet: kubelet:
extraArgs: extraArgs:
pod-max-pids: 1000 pod-max-pids: 1000
rotate-server-certificates: true
extraConfig: extraConfig:
imageGCHighThresholdPercent: 75 imageGCHighThresholdPercent: 75
imageGCLowThresholdPercent: 70 imageGCLowThresholdPercent: 70
@ -38,7 +37,6 @@ cluster:
disabled: true disabled: true
extraManifests: extraManifests:
- https://github.com/kubernetes-sigs/gateway-api/releases/download/v${gateway-api_version}/standard-install.yaml - https://github.com/kubernetes-sigs/gateway-api/releases/download/v${gateway-api_version}/standard-install.yaml
- https://raw.githubusercontent.com/alex1989hu/kubelet-serving-cert-approver/refs/heads/main/deploy/standalone-install.yaml
inlineManifests: inlineManifests:
- name: cilium-bootstrap - name: cilium-bootstrap
contents: | contents: |

View file

@ -19,7 +19,6 @@ machine:
kubelet: kubelet:
extraArgs: extraArgs:
pod-max-pids: 1000 pod-max-pids: 1000
rotate-server-certificates: true
extraConfig: extraConfig:
imageGCHighThresholdPercent: 75 imageGCHighThresholdPercent: 75
imageGCLowThresholdPercent: 70 imageGCLowThresholdPercent: 70
@ -51,7 +50,6 @@ cluster:
disabled: true disabled: true
extraManifests: extraManifests:
- https://github.com/kubernetes-sigs/gateway-api/releases/download/v${gateway-api_version}/standard-install.yaml - https://github.com/kubernetes-sigs/gateway-api/releases/download/v${gateway-api_version}/standard-install.yaml
- https://raw.githubusercontent.com/alex1989hu/kubelet-serving-cert-approver/refs/heads/main/deploy/standalone-install.yaml
inlineManifests: inlineManifests:
- name: cilium-bootstrap - name: cilium-bootstrap
contents: | contents: |

View file

@ -12,6 +12,7 @@ resource "proxmox_virtual_environment_vm" "talos-node" {
name = var.node.name name = var.node.name
node_name = var.node.proxmox_node node_name = var.node.proxmox_node
tags = ["tofu"] tags = ["tofu"]
bios = "ovmf"
clone { clone {
vm_id = 10000 + tonumber(replace(var.node.talos_version, ".", "")) vm_id = 10000 + tonumber(replace(var.node.talos_version, ".", ""))
@ -21,7 +22,7 @@ resource "proxmox_virtual_environment_vm" "talos-node" {
cpu { cpu {
cores = var.node.cpu cores = var.node.cpu
sockets = 1 sockets = 1
type = "x86-64-v2-AES" type = "host"
} }
memory { memory {

View file

@ -26,6 +26,7 @@ provider "registry.opentofu.org/bpg/proxmox" {
provider "registry.opentofu.org/hashicorp/http" { provider "registry.opentofu.org/hashicorp/http" {
version = "3.5.0" version = "3.5.0"
constraints = "3.5.0"
hashes = [ hashes = [
"h1:eClUBisXme48lqiUl3U2+H2a2mzDawS9biqfkd9synw=", "h1:eClUBisXme48lqiUl3U2+H2a2mzDawS9biqfkd9synw=",
"zh:0a2b33494eec6a91a183629cf217e073be063624c5d3f70870456ddb478308e9", "zh:0a2b33494eec6a91a183629cf217e073be063624c5d3f70870456ddb478308e9",

View file

@ -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"]
}

View file

@ -1,27 +1,10 @@
terraform { terraform {
backend "s3" { required_providers {
bucket = "13225-wheatley-states" proxmox = {
key = "pve01-templates.tfstate" source = "bpg/proxmox"
region = "main" version = "0.86.0"
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 = "root"
}
}
locals {
talos_versions = ["1.11.5"]
} }
data "http" "schematic" { data "http" "schematic" {
@ -40,21 +23,20 @@ locals {
} }
resource "proxmox_virtual_environment_download_file" "talos-image" { resource "proxmox_virtual_environment_download_file" "talos-image" {
for_each = toset(local.talos_versions) for_each = toset(var.talos_versions)
node_name = "pve01" node_name = "pve01"
datastore_id = "local" datastore_id = "local"
content_type = "iso" content_type = "iso"
url = "https://factory.talos.dev/image/${local.schematic_id}/v${each.value}/nocloud-amd64-secureboot.raw.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.img" file_name = "talos-${each.value}-nocloud-amd64-secureboot.iso"
decompression_algorithm = "gz"
} }
resource "proxmox_virtual_environment_vm" "talos-template" { resource "proxmox_virtual_environment_vm" "talos-template" {
depends_on = [proxmox_virtual_environment_download_file.talos-image] depends_on = [proxmox_virtual_environment_download_file.talos-image]
for_each = toset(local.talos_versions) for_each = toset(var.talos_versions)
template = true template = true
vm_id = 10000 + tonumber(replace(each.value, ".", "")) vm_id = 10000 + tonumber(replace(each.value, ".", ""))
@ -73,7 +55,7 @@ resource "proxmox_virtual_environment_vm" "talos-template" {
cpu { cpu {
cores = 2 cores = 2
sockets = 1 sockets = 1
type = "x86-64-v2-AES" type = "host"
} }
memory { memory {
dedicated = 2048 dedicated = 2048
@ -93,7 +75,4 @@ resource "proxmox_virtual_environment_vm" "talos-template" {
datastore_id = local.storagepool datastore_id = local.storagepool
version = "v2.0" version = "v2.0"
} }
network_device {
bridge = "vmbr1"
}
} }

View file

@ -1,8 +1,5 @@
variable "proxmox_endpoint" { variable talos_versions {
description = "Proxmox API endpoint" description = "List of Talos versions to create templates for"
type = string type = list(string)
} default = []
variable "proxmox_api_token" {
description = "Proxmox API token"
type = string
} }

View file

@ -0,0 +1,8 @@
variable "proxmox_endpoint" {
description = "Proxmox API endpoint"
type = string
}
variable "proxmox_api_token" {
description = "Proxmox API token"
type = string
}