diff --git a/loki-ingress-argocd-setup/README.md b/loki-ingress-argocd-setup/README.md new file mode 100644 index 0000000..7042cf4 --- /dev/null +++ b/loki-ingress-argocd-setup/README.md @@ -0,0 +1,200 @@ +# Loki Ingress Setup для ArgoCD - Файлы + +## 📋 Основные документы + +### 1. **ARGOCD_LOKI_INGRESS_SETUP.md** +Полная пошаговая инструкция по настройке Loki Ingress через ArgoCD GitOps. +Включает: +- Подготовку Git репозитория +- Создание всех необходимых файлов +- DNS настройку +- Troubleshooting +- Интеграцию с Grafana + +**Начни с этого файла!** + +### 2. **CHEATSHEET.md** +Краткая шпаргалка с: +- Быстрыми командами +- Командами для проверки +- Troubleshooting +- Полезными LogQL запросами + +--- + +## 📦 YAML манифесты для ArgoCD + +### Для директории `apps/loki/`: + +1. **secret-basic-auth.yaml** + - Basic Auth credentials для защиты Loki + - Username: `admin`, Password: `lokipass123` + - Можно изменить через `htpasswd` + +2. **middleware-auth.yaml** + - Traefik Middleware для применения Basic Auth + - Ссылается на secret-basic-auth + +3. **ingress-loki.yaml** + - Ingress для доступа к Loki + - HTTPS с Let's Encrypt + - Домен: `loki.thedevops.dev` + +### Для директории `apps/monitoring/`: + +4. **grafana-datasource-loki.yaml** + - ConfigMap для автоматического добавления Loki в Grafana + - Два datasource: внутренний и внешний + +--- + +## 🚀 Автоматизация + +### **deploy-loki-ingress.sh** +Скрипт для автоматического развертывания: +- Копирует файлы в правильные директории +- Делает git commit и push +- Запускает ArgoCD sync +- Проверяет статус развертывания + +**Использование:** +```bash +chmod +x deploy-loki-ingress.sh +./deploy-loki-ingress.sh +``` + +--- + +## 📁 Альтернативные варианты + +### **loki-nodeport.yaml** +NodePort Service для быстрого доступа без DNS/Ingress. +Доступ по: `http://your-ip:31000` + +### **loki-ingress.yaml** +Альтернативная версия Ingress (универсальная). + +--- + +## 🎯 Быстрый старт + +### Вариант 1: Автоматический (рекомендуется) + +```bash +# 1. Скопируй все файлы на сервер +# 2. Клонируй git репозиторий +git clone http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops.git +cd k3s-gitops + +# 3. Запусти скрипт +./deploy-loki-ingress.sh +``` + +### Вариант 2: Ручной + +```bash +# 1. Клонируй репозиторий +git clone http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops.git +cd k3s-gitops + +# 2. Скопируй файлы +cp secret-basic-auth.yaml apps/loki/ +cp middleware-auth.yaml apps/loki/ +cp ingress-loki.yaml apps/loki/ + +# 3. Git операции +git add apps/loki/*.yaml +git commit -m "feat(loki): Add Ingress with HTTPS and Basic Auth" +git push origin main + +# 4. Синхронизация +argocd app sync loki +``` + +--- + +## ✅ Проверка + +После развертывания проверь: + +```bash +# 1. Ingress создан +kubectl get ingress loki -n loki + +# 2. Сертификат создан +kubectl get certificate loki-tls -n loki + +# 3. Доступность +curl -u admin:lokipass123 https://loki.thedevops.dev/ready +``` + +--- + +## 🔐 Безопасность + +**ВАЖНО:** Измени пароль по умолчанию! + +```bash +# Создай новый пароль +htpasswd -nb admin your-secure-password + +# Обнови secret-basic-auth.yaml +# Замени строку в stringData.users +``` + +--- + +## 📚 Дополнительные ресурсы + +- [Loki Documentation](https://grafana.com/docs/loki/latest/) +- [ArgoCD Documentation](https://argo-cd.readthedocs.io/) +- [Traefik Middleware](https://doc.traefik.io/traefik/middlewares/overview/) + +--- + +## 🆘 Помощь + +Если возникли проблемы: + +1. Читай раздел Troubleshooting в `ARGOCD_LOKI_INGRESS_SETUP.md` +2. Проверь `CHEATSHEET.md` для быстрых команд +3. Проверь логи: + ```bash + kubectl logs -n loki loki-0 + kubectl logs -n cert-manager deployment/cert-manager + kubectl get events -n loki --sort-by='.lastTimestamp' + ``` + +--- + +## 📂 Структура после развертывания + +``` +k3s-gitops/ +└── apps/ + └── loki/ + ├── secret-basic-auth.yaml ← Новый + ├── middleware-auth.yaml ← Новый + ├── ingress-loki.yaml ← Новый + ├── namespace.yaml + ├── configmap-loki.yaml + ├── configmap-promtail.yaml + ├── service.yaml + ├── statefulset.yaml + └── ... +``` + +--- + +## 🎉 Результат + +После успешного развертывания: + +- ✅ Loki доступен по https://loki.thedevops.dev +- ✅ HTTPS с Let's Encrypt сертификатом +- ✅ Basic Authentication защита +- ✅ Готов к использованию в Grafana +- ✅ ArgoCD управляет всей конфигурацией + +**Логин:** admin +**Пароль:** lokipass123 (измени!) diff --git a/loki-ingress-argocd-setup/middleware-auth.yaml b/loki-ingress-argocd-setup/middleware-auth.yaml new file mode 100644 index 0000000..a03711d --- /dev/null +++ b/loki-ingress-argocd-setup/middleware-auth.yaml @@ -0,0 +1,14 @@ +--- +# Traefik Middleware для Basic Auth +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: loki-auth + namespace: loki + labels: + app.kubernetes.io/name: loki + argocd.argoproj.io/instance: loki +spec: + basicAuth: + secret: loki-basic-auth + removeHeader: true diff --git a/loki-ingress-argocd-setup/secret-basic-auth.yaml b/loki-ingress-argocd-setup/secret-basic-auth.yaml new file mode 100644 index 0000000..d05315f --- /dev/null +++ b/loki-ingress-argocd-setup/secret-basic-auth.yaml @@ -0,0 +1,17 @@ +--- +# Basic Auth Secret для защиты Loki +apiVersion: v1 +kind: Secret +metadata: + name: loki-basic-auth + namespace: loki + labels: + app.kubernetes.io/name: loki + argocd.argoproj.io/instance: loki +type: Opaque +stringData: + # Username: admin + # Password: lokipass123 + # Сгенерировано с помощью: htpasswd -nb admin lokipass123 + users: | + admin:$apr1$8jGXMp0X$xR7yGcZqz.pPJY4IaGQ0n0