aula-07 e aula-08: Cluster Talos HA na Hetzner com Autoscaler

aula-07: Criação de imagem Talos customizada na Hetzner Cloud
- Usa Talos Factory para gerar imagem ARM64/AMD64
- Inclui extensões: qemu-guest-agent, hcloud

aula-08: Provisionamento de cluster Kubernetes Talos via OpenTofu
- 3 Control Planes em HA (CAX11 ARM64)
- 1 Worker Node (CAX11 ARM64)
- Rede privada, Floating IP, Firewall
- Cluster Autoscaler para Hetzner (0-5 workers extras)
- Setup interativo com validação de pré-requisitos
- Custo estimado: ~€18/mês (base)

Também inclui:
- .gitignore para ignorar arquivos sensíveis
- CLAUDE.md com instruções do projeto
This commit is contained in:
Allyson de Paula
2025-12-27 07:12:58 -03:00
parent 7efb774be8
commit aa2bcfce46
17 changed files with 1844 additions and 27 deletions

View File

@@ -0,0 +1,53 @@
# Exemplo de arquivo terraform.tfvars
# Copie este arquivo para terraform.tfvars e preencha com seus valores
# ============================================
# CREDENCIAIS (OBRIGATÓRIO)
# ============================================
# Token da API Hetzner Cloud
# Obtenha em: https://console.hetzner.cloud/projects/[PROJECT_ID]/security/tokens
hcloud_token = "seu_token_hetzner_aqui"
# Chave SSH pública para acesso emergencial aos nodes
# Obtenha com: cat ~/.ssh/id_rsa.pub
ssh_public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC... seu@email.com"
# ID da imagem Talos customizada (criada na aula-07)
# Obtenha com: hcloud image list --type snapshot
talos_image_id = 123456789
# ============================================
# CONFIGURAÇÃO DO CLUSTER
# ============================================
# Ambiente (prod, staging, dev)
environment = "workshop"
# Versão do Talos OS (opcional - default: v1.11.2)
# talos_version = "v1.11.2"
# ============================================
# MONITORAMENTO
# ============================================
# Habilitar Victoria Metrics
enable_monitoring = true
# ============================================
# AUTO-SCALING
# ============================================
# Thresholds de CPU para scaling
scale_up_threshold = 70 # Escala quando CPU > 70%
scale_down_threshold = 30 # Reduz quando CPU < 30%
# ============================================
# LABELS CUSTOMIZADAS (OPCIONAL)
# ============================================
# Labels adicionais para todos os recursos
custom_labels = {
projeto = "k8s-base"
responsavel = "devops"
}