Files
k3s-gitops/loki-ingress-argocd-setup/deploy-loki-ingress.sh

152 lines
5.1 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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}"