#!/bin/bash set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" CONFIG_FILE="$PROJECT_DIR/config/cluster-vars.yml" echo "=== 创建Nginx应用的ArgoCD Application ===" # 读取配置 NGINX_GIT_REPO=$(yq eval '.nginx_app_git_repo_url' "$CONFIG_FILE") GIT_USERNAME=$(yq eval '.gitea_user_name' "$CONFIG_FILE") GIT_PASSWORD=$(yq eval '.gitea_user_password' "$CONFIG_FILE") # 配置Gitea仓库凭证(如果不存在) echo "🔐 配置Gitea仓库凭证..." kubectl create secret generic gitea-creds \ -n argocd \ --from-literal=username="$GIT_USERNAME" \ --from-literal=password="$GIT_PASSWORD" \ --dry-run=client -o yaml | kubectl apply -f - # 生成Application配置 cat > /tmp/nginx-argocd-app.yaml </dev/null || echo "Unknown") HEALTH=$(kubectl get application nginx-app -n argocd -o jsonpath='{.status.health.status}' 2>/dev/null || echo "Unknown") echo "[$i/12] Sync: $STATUS | Health: $HEALTH" if [ "$STATUS" = "Synced" ] && [ "$HEALTH" = "Healthy" ]; then echo "" echo "✅ 同步完成!应用已成功部署" break fi done echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "🎉 部署完成!" echo "" echo "📊 验证部署:" echo " kubectl get pods -l app=nginx-test -n default" echo " kubectl get svc nginx-test -n default" echo " kubectl get ingress nginx-test -n default" echo "" echo "🌐 访问应用:" echo " https://ng.jpc.net3w.com" echo "" echo "💡 提示:" echo " - 修改Git仓库中的配置,ArgoCD会自动同步" echo " - 查看ArgoCD UI了解详细的同步状态" echo " - 首次HTTPS访问需等待证书签发(1-2分钟)" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"