diff --git a/aula-08/cleanup.sh b/aula-08/cleanup.sh index a27cc20..a995dad 100755 --- a/aula-08/cleanup.sh +++ b/aula-08/cleanup.sh @@ -44,7 +44,14 @@ fi if [ -f "kubeconfig" ]; then export KUBECONFIG="$SCRIPT_DIR/kubeconfig" - AUTOSCALER_WORKERS=$(kubectl get nodes -l node.kubernetes.io/instance-type=cax11 \ + # Detectar arch dos nodes para filtrar instance type correto + NODE_ARCH=$(kubectl get nodes -o jsonpath='{.items[0].metadata.labels.kubernetes\.io/arch}' 2>/dev/null || echo "arm64") + if [[ "$NODE_ARCH" == "amd64" ]]; then + INSTANCE_PATTERN="cpx" + else + INSTANCE_PATTERN="cax" + fi + AUTOSCALER_WORKERS=$(kubectl get nodes --no-headers 2>/dev/null | grep -i "$INSTANCE_PATTERN" | wc -l | tr -d ' ' || echo "0") --no-headers 2>/dev/null | wc -l | tr -d ' ' || echo "0") if [ "$AUTOSCALER_WORKERS" -gt "1" ]; then diff --git a/aula-08/outputs.tf b/aula-08/outputs.tf index 26ee0a0..eef14b9 100644 --- a/aula-08/outputs.tf +++ b/aula-08/outputs.tf @@ -116,8 +116,8 @@ output "connection_instructions" { https://${local.cluster_endpoint_ip}:6443 4. Nodes: - Control Plane: ${local.control_plane_count}x CAX11 (ARM64) - Workers: 1x CAX11 (ARM64) + Control Plane: ${local.control_plane_count}x ${local.selected_arch.server_type_cp} (${var.arch}) + Workers: 1x ${local.selected_arch.server_type_cp} (${var.arch}) ${var.enable_loadbalancer ? "Load Balancer: LB11" : "Floating IP: IPv4"} ==================================== diff --git a/aula-08/setup.sh b/aula-08/setup.sh index 809e8fd..ab96655 100755 --- a/aula-08/setup.sh +++ b/aula-08/setup.sh @@ -314,15 +314,25 @@ echo "" ENABLE_HA_CONFIG=$(grep 'enable_ha' terraform.tfvars 2>/dev/null | grep -o 'true\|false' || echo "true") ENABLE_LB_CONFIG=$(grep 'enable_loadbalancer' terraform.tfvars 2>/dev/null | grep -o 'true\|false' || echo "true") -if [ "$ENABLE_HA_CONFIG" = "true" ]; then - CP_COUNT=3 - echo " - 3x CAX11 Control Planes = 3 x \$4.59 = \$13.77" +# Custos estimados baseado na arquitetura selecionada +ARCH_CONFIG=$(grep 'arch' terraform.tfvars 2>/dev/null | grep -o 'arm64\|amd64' || echo "arm64") +if [[ "$ARCH_CONFIG" == "amd64" ]]; then + NODE_TYPE="CPX21" + NODE_COST="\$6.99" else - CP_COUNT=1 - echo " - 1x CAX11 Control Plane = 1 x \$4.59 = \$4.59" + NODE_TYPE="CAX11" + NODE_COST="\$4.59" fi -echo " - 1x CAX11 Worker = 1 x \$4.59 = \$4.59" +if [ "$ENABLE_HA_CONFIG" = "true" ]; then + CP_COUNT=3 + echo " - 3x ${NODE_TYPE} Control Planes = 3 x ${NODE_COST}" +else + CP_COUNT=1 + echo " - 1x ${NODE_TYPE} Control Plane = 1 x ${NODE_COST}" +fi + +echo " - 1x ${NODE_TYPE} Worker = 1 x ${NODE_COST}" if [ "$ENABLE_LB_CONFIG" = "true" ]; then echo " - 1x Load Balancer LB11 = \$5.99" diff --git a/aula-13/benchmarks/prepare-images.sh b/aula-13/benchmarks/prepare-images.sh index fc8b97c..63e8aed 100755 --- a/aula-13/benchmarks/prepare-images.sh +++ b/aula-13/benchmarks/prepare-images.sh @@ -21,7 +21,9 @@ set -euo pipefail REGISTRY="${REGISTRY:-gitea.kube.quest}" ORG="bench" -PLATFORM="linux/arm64" # Hetzner CAX = ARM64 +# Detectar arquitetura do cluster automaticamente +NODE_ARCH=$(kubectl get nodes -o jsonpath='{.items[0].metadata.labels.kubernetes\.io/arch}' 2>/dev/null || echo "arm64") +PLATFORM="linux/${NODE_ARCH}" RED='\033[0;31m' GREEN='\033[0;32m' diff --git a/aula-14/setup.sh b/aula-14/setup.sh index cb9eae7..fcba675 100755 --- a/aula-14/setup.sh +++ b/aula-14/setup.sh @@ -377,17 +377,19 @@ setup_app_ingress() { build_and_push_images() { echo "" echo -e "${CYAN}═══════════════════════════════════════════════════════════${NC}" - echo -e "${CYAN} Build e Push das Imagens (ARM64)${NC}" + # Detectar arquitetura do cluster para build correto + NODE_ARCH=$(kubectl get nodes -o jsonpath='{.items[0].metadata.labels.kubernetes\.io/arch}' 2>/dev/null || echo "arm64") + echo -e "${CYAN} Build e Push das Imagens (${NODE_ARCH})${NC}" echo -e "${CYAN}═══════════════════════════════════════════════════════════${NC}" local IMAGE_BASE="${REGISTRY_HOST}/${REGISTRY_PROJECT}/app-backend" - log_info "Build app-backend:v1 (linux/arm64)..." - docker buildx build --platform linux/arm64 -t "${IMAGE_BASE}:v1" --push "${SCRIPT_DIR}/app-backend/v1" + log_info "Build app-backend:v1 (linux/${NODE_ARCH})..." + docker buildx build --platform "linux/${NODE_ARCH}" -t "${IMAGE_BASE}:v1" --push "${SCRIPT_DIR}/app-backend/v1" log_success "app-backend:v1 construída e enviada" - log_info "Build app-backend:v2 (linux/arm64)..." - docker buildx build --platform linux/arm64 -t "${IMAGE_BASE}:v2" --push "${SCRIPT_DIR}/app-backend/v2" + log_info "Build app-backend:v2 (linux/${NODE_ARCH})..." + docker buildx build --platform "linux/${NODE_ARCH}" -t "${IMAGE_BASE}:v2" --push "${SCRIPT_DIR}/app-backend/v2" log_success "app-backend:v2 construída e enviada" }