feat(aula-08): adicionar seleção de arquitetura (arm64/amd64) e detectar tofu/terraform

- Variável `arch` no Terraform: arm64 (CAX11 em nbg1) ou amd64 (CPX21 em fsn1)
- locals map traduz arch → server_type + location
- setup.sh pergunta arquitetura interativamente (default: arm64)
- Detecta OpenTofu ou Terraform automaticamente (preferência tofu)
- Autoscaler: sed troca CAX→CPX nos server_types quando amd64
- tfvars gerado inclui arch selecionado
This commit is contained in:
ArgoCD Setup
2026-05-09 03:32:06 -03:00
parent 17a2891329
commit 72ffe47528
4 changed files with 112 additions and 37 deletions
+21 -8
View File
@@ -38,6 +38,19 @@ locals {
# Endpoint: LoadBalancer IP if enabled, otherwise Floating IP
cluster_endpoint_ip = var.enable_loadbalancer ? hcloud_load_balancer.cluster[0].ipv4 : hcloud_floating_ip.control_plane[0].ip_address
# Arquitetura: mapeia arm64→CAX (Nuremberg) ou amd64→CPX (Frankfurt)
arch_config = {
arm64 = {
server_type_cp = "cax11"
location = "nbg1"
}
amd64 = {
server_type_cp = "cpx21"
location = "fsn1"
}
}
selected_arch = local.arch_config[var.arch]
common_labels = {
cluster = local.cluster_name
environment = var.environment
@@ -192,15 +205,15 @@ resource "hcloud_placement_group" "cluster" {
}
############################################################
# CONTROL PLANE NODES (HA with 3 CAX11 nodes)
# CONTROL PLANE NODES (HA com 3 nodes)
############################################################
resource "hcloud_server" "control_plane" {
count = local.control_plane_count
name = "${local.cluster_name}-cp-${count.index}"
server_type = "cax11"
server_type = local.selected_arch.server_type_cp
image = data.hcloud_image.talos.id
location = "nbg1" # CAX11 only available in Nuremberg
location = local.selected_arch.location
ssh_keys = [local.ssh_key_id]
firewall_ids = [hcloud_firewall.cluster.id]
@@ -209,7 +222,7 @@ resource "hcloud_server" "control_plane" {
labels = merge(local.common_labels, {
role = "control-plane"
node = "cp-${count.index}"
arch = "arm64"
arch = var.arch
})
public_net {
@@ -373,15 +386,15 @@ resource "hcloud_load_balancer_target" "worker" {
}
############################################################
# WORKER NODE (Single CAX11)
# WORKER NODE
############################################################
resource "hcloud_server" "worker" {
count = 1
name = "${local.cluster_name}-worker-${count.index}"
server_type = "cax11"
server_type = local.selected_arch.server_type_cp
image = data.hcloud_image.talos.id
location = "nbg1"
location = local.selected_arch.location
ssh_keys = [local.ssh_key_id]
firewall_ids = [hcloud_firewall.cluster.id]
@@ -390,7 +403,7 @@ resource "hcloud_server" "worker" {
labels = merge(local.common_labels, {
role = "worker"
node = "worker-${count.index}"
arch = "arm64"
arch = var.arch
})
public_net {