mirror of
https://github.com/0x1d/terraform-proxmox-talos.git
synced 2025-12-14 05:56:50 +01:00
60 lines
3.1 KiB
HCL
60 lines
3.1 KiB
HCL
resource "talos_machine_secrets" "machine_secrets" {}
|
|
|
|
data "talos_client_configuration" "talosconfig" {
|
|
cluster_name = var.cluster_name
|
|
client_configuration = talos_machine_secrets.machine_secrets.client_configuration
|
|
endpoints = [for config in var.talos_controlplane_config : config.ip]
|
|
}
|
|
|
|
data "talos_machine_configuration" "machineconfig_cp" {
|
|
for_each = { for machine in var.talos_controlplane_config : machine.name => machine }
|
|
cluster_name = var.cluster_name
|
|
cluster_endpoint = "https://${each.value.ip}:6443"
|
|
machine_type = "controlplane"
|
|
machine_secrets = talos_machine_secrets.machine_secrets.machine_secrets
|
|
}
|
|
|
|
resource "talos_machine_configuration_apply" "cp_config_apply" {
|
|
for_each = { for machine in var.talos_controlplane_config : machine.name => machine }
|
|
depends_on = [proxmox_virtual_environment_vm.talos_cp]
|
|
client_configuration = talos_machine_secrets.machine_secrets.client_configuration
|
|
machine_configuration_input = data.talos_machine_configuration.machineconfig_cp[each.value.name].machine_configuration
|
|
node = each.value.ip
|
|
}
|
|
|
|
data "talos_machine_configuration" "machineconfig_worker" {
|
|
for_each = { for machine in var.talos_worker_config : machine.name => machine }
|
|
cluster_name = var.cluster_name
|
|
cluster_endpoint = "https://${var.talos_controlplane_config[0].ip}:6443"
|
|
machine_type = "worker"
|
|
machine_secrets = talos_machine_secrets.machine_secrets.machine_secrets
|
|
}
|
|
|
|
resource "talos_machine_configuration_apply" "worker_config_apply" {
|
|
for_each = { for machine in var.talos_worker_config : machine.name => machine }
|
|
depends_on = [proxmox_virtual_environment_vm.talos_worker]
|
|
client_configuration = talos_machine_secrets.machine_secrets.client_configuration
|
|
machine_configuration_input = data.talos_machine_configuration.machineconfig_worker[each.value.name].machine_configuration
|
|
node = each.value.ip
|
|
}
|
|
|
|
resource "talos_machine_bootstrap" "bootstrap" {
|
|
depends_on = [talos_machine_configuration_apply.cp_config_apply]
|
|
client_configuration = talos_machine_secrets.machine_secrets.client_configuration
|
|
node = var.talos_controlplane_config[0].ip
|
|
}
|
|
|
|
data "talos_cluster_health" "health" {
|
|
depends_on = [talos_machine_configuration_apply.cp_config_apply, talos_machine_configuration_apply.worker_config_apply]
|
|
client_configuration = data.talos_client_configuration.talosconfig.client_configuration
|
|
control_plane_nodes = [for config in var.talos_controlplane_config : config.ip]
|
|
worker_nodes = [for config in var.talos_worker_config : config.ip]
|
|
endpoints = data.talos_client_configuration.talosconfig.endpoints
|
|
}
|
|
|
|
resource "talos_cluster_kubeconfig" "kubeconfig" {
|
|
depends_on = [talos_machine_bootstrap.bootstrap, data.talos_cluster_health.health]
|
|
client_configuration = talos_machine_secrets.machine_secrets.client_configuration
|
|
node = var.talos_controlplane_config[0].ip
|
|
}
|