fix: corrigir tipos de servidor AMD (CPX→CX), autoscaler, stdin e cleanup

- Corrigir tipos Hetzner: CPX não existe, usar CX (Intel shared vCPU)
  - CX23 (2 vCPU, 4GB) equivalente ao CAX11
  - CX33 (4 vCPU, 8GB) equivalente ao CAX21
  - CX43 (8 vCPU, 16GB) equivalente ao CAX31
- Corrigir location no autoscaler para amd64 (nbg1→fsn1)
- Remover gitlab-pool do autoscaler (substituído pelo Gitea)
- Aumentar worker-pool max para 30
- Corrigir Floating IP e Load Balancer hardcoded em nbg1
- Corrigir stdin em read interativo: usar < /dev/tty e read -p
- Corrigir cleanup de namespace: lidar com Terminating e finalizers
- Corrigir CNPG: nome do deployment, secret e endpointURL duplo
- Aulas afetadas: 08, 09, 10, 11, 12, 14, 17
This commit is contained in:
ArgoCD Setup
2026-05-09 07:24:26 -03:00
parent 3d042a29ae
commit a0cf1e6cef
18 changed files with 153 additions and 92 deletions
+14 -2
View File
@@ -56,7 +56,13 @@ kubectl delete pod curl-test -n istio --ignore-not-found=true 2>/dev/null || tru
# Remover namespace istio (aplicação demo)
if kubectl get namespace istio &> /dev/null; then
log_info "Removendo namespace istio..."
kubectl delete namespace istio --wait=false 2>/dev/null || true
kubectl delete namespace istio --timeout=120s 2>/dev/null || {
log_warn "Namespace preso em Terminating, forçando remoção..."
kubectl get namespace istio -o json | \
python3 -c "import sys,json; d=json.load(sys.stdin); d['metadata'].pop('finalizers',None); json.dump(d,sys.stdout)" | \
kubectl replace --raw /api/v1/namespaces/istio/finalize -f - 2>/dev/null || true
kubectl wait --for=delete namespace istio --timeout=60s 2>/dev/null || sleep 5
}
log_success "Namespace istio marcado para remoção"
else
log_info "Namespace istio não encontrado"
@@ -94,7 +100,13 @@ fi
# Remover namespace istio-system
if kubectl get namespace istio-system &> /dev/null; then
log_info "Removendo namespace istio-system..."
kubectl delete namespace istio-system --wait=false 2>/dev/null || true
kubectl delete namespace istio-system --timeout=120s 2>/dev/null || {
log_warn "Namespace preso em Terminating, forçando remoção..."
kubectl get namespace istio-system -o json | \
python3 -c "import sys,json; d=json.load(sys.stdin); d['metadata'].pop('finalizers',None); json.dump(d,sys.stdout)" | \
kubectl replace --raw /api/v1/namespaces/istio-system/finalize -f - 2>/dev/null || true
kubectl wait --for=delete namespace istio-system --timeout=60s 2>/dev/null || sleep 5
}
log_success "Namespace istio-system marcado para remoção"
fi
+12 -3
View File
@@ -222,7 +222,17 @@ install_istio() {
helm repo add istio https://istio-release.storage.googleapis.com/charts 2>/dev/null || true
helm repo update istio
kubectl create namespace istio-system 2>/dev/null || true
if kubectl get namespace istio-system &>/dev/null; then
NS_PHASE=$(kubectl get namespace istio-system -o jsonpath='{.status.phase}' 2>/dev/null)
if [[ "$NS_PHASE" == "Terminating" ]]; then
log_info "Namespace istio-system em Terminating, forçando remoção..."
kubectl get namespace istio-system -o json | \
python3 -c "import sys,json; d=json.load(sys.stdin); d['metadata'].pop('finalizers',None); json.dump(d,sys.stdout)" | \
kubectl replace --raw /api/v1/namespaces/istio-system/finalize -f - 2>/dev/null || true
kubectl wait --for=delete namespace istio-system --timeout=60s 2>/dev/null || sleep 5
fi
fi
kubectl create namespace istio-system --dry-run=client -o yaml | kubectl apply -f -
kubectl label namespace istio-system \
pod-security.kubernetes.io/enforce=privileged \
pod-security.kubernetes.io/warn=privileged \
@@ -577,8 +587,7 @@ main() {
echo -e "${YELLOW}⚠ Configure o DNS agora antes de continuar.${NC}"
fi
echo ""
echo -n "Pressione ENTER quando o DNS estiver configurado..."
read -r
read -r -p "Pressione ENTER quando o DNS estiver configurado..." < /dev/tty
setup_ingress
build_and_push_images