a0cf1e6cef
- 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
87 lines
2.9 KiB
Bash
Executable File
87 lines
2.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# =============================================================================
|
|
# Aula 12 - Cleanup (Remove Victoria Metrics)
|
|
# =============================================================================
|
|
|
|
set -e
|
|
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
CYAN='\033[0;36m'
|
|
NC='\033[0m'
|
|
|
|
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
log_success() { echo -e "${GREEN}[OK]${NC} $1"; }
|
|
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
|
|
|
|
echo ""
|
|
echo -e "${CYAN}============================================${NC}"
|
|
echo -e "${CYAN} Cleanup - Aula 12 (Victoria Metrics)${NC}"
|
|
echo -e "${CYAN}============================================${NC}"
|
|
echo ""
|
|
|
|
log_warn "Isso vai remover:"
|
|
echo " - Victoria Metrics Stack (Helm release)"
|
|
echo " - Namespace monitoring (dados de métricas serão perdidos)"
|
|
echo " - Arquivo .env"
|
|
echo ""
|
|
read -p "Continuar? (digite 'sim' para confirmar): " confirm
|
|
|
|
if [ "$confirm" != "sim" ]; then
|
|
log_info "Operação cancelada"
|
|
exit 0
|
|
fi
|
|
|
|
echo ""
|
|
|
|
# Remover Helm release
|
|
log_info "Removendo Victoria Metrics Stack..."
|
|
if helm status monitoring -n monitoring &> /dev/null; then
|
|
helm uninstall monitoring -n monitoring --wait --timeout=120s 2>/dev/null || {
|
|
log_warn "Helm uninstall falhou, removendo com --no-hooks..."
|
|
helm uninstall monitoring -n monitoring --no-hooks 2>/dev/null || true
|
|
}
|
|
log_success "Helm release removido"
|
|
else
|
|
log_info "Helm release não encontrado"
|
|
fi
|
|
|
|
# Remover finalizers de CRDs do Victoria Metrics (podem prender o namespace)
|
|
log_info "Limpando finalizers de CRDs..."
|
|
for crd in vmagents vmalerts vmsingles vmclusters vmnodes vmrules vmauths; do
|
|
for resource in $(kubectl get $crd.operator.victoriametrics.com -n monitoring -o name 2>/dev/null); do
|
|
kubectl patch "$resource" -n monitoring --type=json \
|
|
-p='[{"op":"remove","path":"/metadata/finalizers"}]' 2>/dev/null || true
|
|
done
|
|
done
|
|
|
|
# Remover PVCs
|
|
log_info "Removendo PVCs..."
|
|
kubectl delete pvc --all -n monitoring --wait=false 2>/dev/null || true
|
|
|
|
# Remover namespace
|
|
log_info "Removendo namespace..."
|
|
if kubectl get namespace monitoring &>/dev/null; then
|
|
kubectl delete namespace monitoring --timeout=120s 2>/dev/null || {
|
|
log_warn "Namespace preso em Terminating, forçando remoção..."
|
|
kubectl get namespace monitoring -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/monitoring/finalize -f - 2>/dev/null || true
|
|
kubectl wait --for=delete namespace monitoring --timeout=60s 2>/dev/null || sleep 5
|
|
}
|
|
fi
|
|
log_success "Namespace removido"
|
|
|
|
# Remover .env
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
if [[ -f "${SCRIPT_DIR}/.env" ]]; then
|
|
rm "${SCRIPT_DIR}/.env"
|
|
log_info ".env removido"
|
|
fi
|
|
|
|
echo ""
|
|
log_success "Cleanup concluído!"
|
|
echo ""
|