#!/bin/bash # # Quick Start Script: Добавление Loki Ingress в ArgoCD GitOps # # Использование: # ./deploy-loki-ingress.sh # set -e # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo -e "${BLUE}═══════════════════════════════════════════════════════════${NC}" echo -e "${BLUE} Loki Ingress Deployment для ArgoCD GitOps${NC}" echo -e "${BLUE}═══════════════════════════════════════════════════════════${NC}" echo "" # Проверяем что находимся в правильной директории if [ ! -d "apps/loki" ]; then echo -e "${RED}❌ Ошибка: Директория apps/loki не найдена${NC}" echo -e "${YELLOW}Убедись что ты находишься в корне git репозитория k3s-gitops${NC}" exit 1 fi echo -e "${GREEN}✓ Найдена директория apps/loki${NC}" # Копируем файлы echo "" echo -e "${BLUE}Копирование файлов...${NC}" FILES=( "secret-basic-auth.yaml" "middleware-auth.yaml" "ingress-loki.yaml" ) for file in "${FILES[@]}"; do if [ -f "$file" ]; then cp "$file" apps/loki/ echo -e "${GREEN}✓ Скопирован: $file${NC}" else echo -e "${RED}❌ Файл не найден: $file${NC}" exit 1 fi done # Git операции echo "" echo -e "${BLUE}Git операции...${NC}" git add apps/loki/secret-basic-auth.yaml git add apps/loki/middleware-auth.yaml git add apps/loki/ingress-loki.yaml echo -e "${GREEN}✓ Файлы добавлены в git${NC}" # Проверяем изменения echo "" echo -e "${YELLOW}Изменения для коммита:${NC}" git status --short # Спрашиваем подтверждение echo "" read -p "Продолжить с коммитом и push? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo -e "${YELLOW}Отменено пользователем${NC}" exit 0 fi # Commit git commit -m "feat(loki): Add Ingress with HTTPS and Basic Auth for loki.thedevops.dev - Add Basic Auth Secret with default credentials - Add Traefik Middleware for authentication - Add Ingress with Let's Encrypt TLS - Enable access via https://loki.thedevops.dev" echo -e "${GREEN}✓ Commit создан${NC}" # Push git push origin main echo -e "${GREEN}✓ Push выполнен${NC}" # Проверка ArgoCD echo "" echo -e "${BLUE}Проверка ArgoCD...${NC}" if command -v argocd &> /dev/null; then echo -e "${YELLOW}Синхронизация ArgoCD приложения...${NC}" argocd app sync loki echo -e "${GREEN}✓ ArgoCD sync запущен${NC}" else echo -e "${YELLOW}⚠ argocd CLI не установлен, пропускаем sync${NC}" echo -e "${YELLOW}ArgoCD автоматически синхронизирует изменения в течение 3 минут${NC}" fi # Проверка ресурсов echo "" echo -e "${BLUE}Проверка Kubernetes ресурсов...${NC}" sleep 5 echo "" echo -e "${YELLOW}Ingress:${NC}" kubectl get ingress -n loki echo "" echo -e "${YELLOW}Secret:${NC}" kubectl get secret loki-basic-auth -n loki 2>/dev/null || echo "Secret еще не создан" echo "" echo -e "${YELLOW}Middleware:${NC}" kubectl get middleware -n loki 2>/dev/null || echo "Middleware еще не создан" echo "" echo -e "${YELLOW}Certificate:${NC}" kubectl get certificate -n loki 2>/dev/null || echo "Certificate еще не создан" # Финальные инструкции echo "" echo -e "${BLUE}═══════════════════════════════════════════════════════════${NC}" echo -e "${GREEN}✅ Deployment завершен!${NC}" echo -e "${BLUE}═══════════════════════════════════════════════════════════${NC}" echo "" echo -e "${YELLOW}Следующие шаги:${NC}" echo "" echo "1. Настрой DNS для loki.thedevops.dev:" echo " - Добавь A-record: loki.thedevops.dev -> 5.182.17.194" echo "" echo "2. Подожди ~2-3 минуты пока:" echo " - ArgoCD синхронизирует изменения" echo " - cert-manager создаст SSL сертификат" echo "" echo "3. Проверь доступность:" echo " curl -u admin:lokipass123 https://loki.thedevops.dev/ready" echo "" echo "4. Открой в браузере:" echo " https://loki.thedevops.dev" echo " Username: admin" echo " Password: lokipass123" echo "" echo -e "${YELLOW}Для отслеживания статуса:${NC}" echo " kubectl get ingress,certificate -n loki -w" echo "" echo -e "${GREEN}🎉 Готово!${NC}"