Translate all Portuguese text to English

This commit is contained in:
2025-09-25 21:05:41 -03:00
parent f8279933d6
commit f38689d9dd
19 changed files with 509 additions and 509 deletions

View File

@@ -1,117 +1,117 @@
#!/bin/bash
# Script para deploy automático após GitHub Actions
# Este script pode ser executado localmente ou via webhook
# Auto-deploy script after GitHub Actions
# This script can be executed locally or via webhook
set -e
# Cores para output
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configurações
# Configuration
IMAGE_NAME="resource-governance"
REGISTRY="andersonid"
NAMESPACE="resource-governance"
IMAGE_TAG=${1:-latest}
echo -e "${BLUE}🚀 Auto-Deploy para OpenShift${NC}"
echo -e "${BLUE}Auto-Deploy to OpenShift${NC}"
echo "================================"
echo "Imagem: ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
echo "Image: ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
echo "Namespace: ${NAMESPACE}"
echo ""
# 1. Verificar login no OpenShift
# 1. Check OpenShift login
if ! oc whoami > /dev/null 2>&1; then
echo -e "${RED}❌ Não logado no OpenShift. Por favor, faça login com 'oc login'.${NC}"
echo -e "${RED}ERROR: Not logged into OpenShift. Please login with 'oc login'.${NC}"
exit 1
fi
echo -e "${GREEN}✅ Logado no OpenShift como: $(oc whoami)${NC}"
echo -e "${GREEN}SUCCESS: Logged into OpenShift as: $(oc whoami)${NC}"
echo ""
# 2. Verificar se a imagem existe no Docker Hub
echo -e "${BLUE}🔍 Verificando imagem no Docker Hub...${NC}"
# 2. Check if image exists on Docker Hub
echo -e "${BLUE}Checking image on Docker Hub...${NC}"
if ! skopeo inspect docker://${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} > /dev/null 2>&1; then
echo -e "${RED} Imagem ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} não encontrada no Docker Hub!${NC}"
echo -e "${RED}ERROR: Image ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} not found on Docker Hub!${NC}"
exit 1
fi
echo -e "${GREEN}✅ Imagem encontrada no Docker Hub${NC}"
echo -e "${GREEN}SUCCESS: Image found on Docker Hub${NC}"
echo ""
# 3. Verificar se o namespace existe
# 3. Check if namespace exists
if ! oc get namespace ${NAMESPACE} > /dev/null 2>&1; then
echo -e "${BLUE}📋 Criando namespace ${NAMESPACE}...${NC}"
echo -e "${BLUE}Creating namespace ${NAMESPACE}...${NC}"
oc create namespace ${NAMESPACE}
else
echo -e "${GREEN} Namespace ${NAMESPACE} existe${NC}"
echo -e "${GREEN}SUCCESS: Namespace ${NAMESPACE} already exists${NC}"
fi
echo ""
# 4. Aplicar manifests básicos
echo -e "${BLUE}📋 Aplicando manifests básicos...${NC}"
# 4. Apply basic manifests
echo -e "${BLUE}Applying basic manifests...${NC}"
oc apply -f k8s/rbac.yaml -n ${NAMESPACE}
oc apply -f k8s/configmap.yaml -n ${NAMESPACE}
echo ""
# 5. Verificar se o deployment existe
# 5. Check if deployment exists
if oc get deployment ${IMAGE_NAME} -n ${NAMESPACE} > /dev/null 2>&1; then
echo -e "${BLUE}🔄 Deployment existente encontrado. Iniciando atualização...${NC}"
echo -e "${BLUE}Existing deployment found. Starting update...${NC}"
# Obter imagem atual
# Get current image
CURRENT_IMAGE=$(oc get deployment ${IMAGE_NAME} -n ${NAMESPACE} -o jsonpath='{.spec.template.spec.containers[0].image}')
echo "Imagem atual: ${CURRENT_IMAGE}"
echo "Nova imagem: ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
echo "Current image: ${CURRENT_IMAGE}"
echo "New image: ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}"
# Verificar se a imagem mudou
# Check if image changed
if [ "${CURRENT_IMAGE}" = "${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}" ]; then
echo -e "${YELLOW}⚠️ Imagem já está atualizada. Nenhuma ação necessária.${NC}"
echo -e "${YELLOW}WARNING: Image already up to date. No action needed.${NC}"
exit 0
fi
# Atualizar deployment com nova imagem
echo -e "${BLUE}🔄 Atualizando imagem do deployment...${NC}"
# Update deployment with new image
echo -e "${BLUE}Updating deployment image...${NC}"
oc set image deployment/${IMAGE_NAME} ${IMAGE_NAME}=${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} -n ${NAMESPACE}
# Aguardar rollout
echo -e "${BLUE}⏳ Aguardando rollout (pode levar alguns minutos)...${NC}"
# Wait for rollout
echo -e "${BLUE}Waiting for rollout (may take a few minutes)...${NC}"
oc rollout status deployment/${IMAGE_NAME} -n ${NAMESPACE} --timeout=300s
echo -e "${GREEN} Rollout concluído com sucesso!${NC}"
echo -e "${GREEN}SUCCESS: Rollout completed successfully!${NC}"
else
echo -e "${BLUE}📦 Deployment não encontrado. Criando novo deployment...${NC}"
# Aplicar deployment, service e route
echo -e "${BLUE}Deployment not found. Creating new deployment...${NC}"
# Apply deployment, service and route
oc apply -f k8s/deployment.yaml -n ${NAMESPACE}
oc apply -f k8s/service.yaml -n ${NAMESPACE}
oc apply -f k8s/route.yaml -n ${NAMESPACE}
# Aguardar rollout inicial
echo -e "${BLUE}⏳ Aguardando rollout inicial...${NC}"
# Wait for initial rollout
echo -e "${BLUE}Waiting for initial rollout...${NC}"
oc rollout status deployment/${IMAGE_NAME} -n ${NAMESPACE} --timeout=300s
echo -e "${GREEN}✅ Rollout inicial concluído com sucesso!${NC}"
echo -e "${GREEN}SUCCESS: Initial rollout completed successfully!${NC}"
fi
echo ""
# 6. Verificar status final
echo -e "${BLUE}📊 STATUS FINAL:${NC}"
# 6. Check final status
echo -e "${BLUE}FINAL STATUS:${NC}"
echo "================"
oc get deployment ${IMAGE_NAME} -n ${NAMESPACE}
echo ""
oc get pods -n ${NAMESPACE} -l app.kubernetes.io/name=${IMAGE_NAME}
echo ""
# 7. Obter URLs de acesso
# 7. Get access URLs
ROUTE_URL=$(oc get route ${IMAGE_NAME}-route -n ${NAMESPACE} -o jsonpath='{.spec.host}' 2>/dev/null || echo "")
echo -e "${BLUE}🌐 URLs de acesso:${NC}"
echo -e "${BLUE}Access URLs:${NC}"
if [ -n "$ROUTE_URL" ]; then
echo " OpenShift: https://$ROUTE_URL"
else
echo " OpenShift: Rota não encontrada ou não disponível."
echo " OpenShift: Route not found or not available."
fi
echo " Port-forward: http://localhost:8080 (se ativo)"
echo " Port-forward: http://localhost:8080 (if active)"
echo ""
echo -e "${GREEN} Auto-deploy concluído com sucesso!${NC}"
echo -e "${BLUE}🔄 Estratégia: Rolling Update com maxUnavailable=0 (zero downtime)${NC}"
echo -e "${GREEN}SUCCESS: Auto-deploy completed successfully!${NC}"
echo -e "${BLUE}Strategy: Rolling Update with maxUnavailable=0 (zero downtime)${NC}"