From 9677aea28193ed4b60228342b76a61cb94b1365a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BF=D0=BE=D0=B2?= Date: Sun, 26 Oct 2025 10:06:41 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=B0=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B5=20=D0=BE=D0=B1?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20Ingress=20?= =?UTF-8?q?=D1=85=D0=BE=D1=81=D1=82=D0=BE=D0=B2=20=D0=BF=D1=80=D0=B8=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен вызов manage_hosts.py после: - make k8s manifest apply - make k8s addon - make k8s helm apply - make k8s helm update - Создан тестовый манифест grafana-ingress - Автоматическое обновление /etc/hosts при любых изменениях Ingress --- Makefile | 16 ++++++++++++---- manifests/test-grafana-ingress.yaml | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 manifests/test-grafana-ingress.yaml diff --git a/Makefile b/Makefile index 38c6cc8..16cc8c7 100644 --- a/Makefile +++ b/Makefile @@ -1184,7 +1184,9 @@ k8s: CLUSTER_NAME=$$(docker exec $$CONTAINER_NAME kind get clusters | head -1); \ echo "📥 Установка аддона из $$MANIFEST_ARG..."; \ docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify apply -f $$MANIFEST_ARG"; \ - echo "✅ Аддон установлен";; \ + echo "✅ Аддон установлен"; \ + echo "📝 Обновление Ingress хостов..."; \ + sudo python3 scripts/manage_hosts.py add 2>/dev/null || echo "⚠️ Не удалось обновить Ingress хосты (требуется sudo)";; \ nodes) \ echo "🖥️ Просмотр узлов кластера..."; \ PRESET_ARG="$(word 3, $(MAKECMDGOALS))"; \ @@ -1236,7 +1238,9 @@ k8s: case "$$MANIFEST_CMD" in \ apply) \ echo "📥 Применение манифеста: $$MANIFEST_ARG"; \ - docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify apply -f $$MANIFEST_ARG";; \ + docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify apply -f $$MANIFEST_ARG"; \ + echo "📝 Обновление Ingress хостов..."; \ + sudo python3 scripts/manage_hosts.py add 2>/dev/null || echo "⚠️ Не удалось обновить Ingress хосты (требуется sudo)";; \ delete) \ echo "🗑️ Удаление ресурсов из манифеста: $$MANIFEST_ARG"; \ docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; kubectl --server=https://\$${CLUSTER_NAME}-control-plane:6443 --insecure-skip-tls-verify delete -f $$MANIFEST_ARG";; \ @@ -1274,7 +1278,9 @@ k8s: exit 1; \ fi; \ echo "📦 Установка Helm чарта: $$CHART_ARG как $$RELEASE_ARG"; \ - docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm upgrade --install $$RELEASE_ARG $$CHART_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true";; \ + docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm upgrade --install $$RELEASE_ARG $$CHART_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true"; \ + echo "📝 Обновление Ingress хостов..."; \ + sudo python3 scripts/manage_hosts.py add 2>/dev/null || echo "⚠️ Не удалось обновить Ingress хосты (требуется sudo)";; \ delete) \ if [ -z "$$RELEASE_ARG" ]; then \ echo "❌ Ошибка: Укажите имя релиза"; \ @@ -1290,7 +1296,9 @@ k8s: exit 1; \ fi; \ echo "🔄 Обновление Helm релиза: $$RELEASE_ARG"; \ - docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm upgrade $$RELEASE_ARG $$CHART_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true";; \ + docker exec $$CONTAINER_NAME bash -c "CLUSTER_NAME=$$CLUSTER_NAME; helm upgrade $$RELEASE_ARG $$CHART_ARG --kube-apiserver=https://\$${CLUSTER_NAME}-control-plane:6443 --kube-token=dummy --kube-context=dummy 2>&1 | grep -v '^WARNING' || true"; \ + echo "📝 Обновление Ingress хостов..."; \ + sudo python3 scripts/manage_hosts.py add 2>/dev/null || echo "⚠️ Не удалось обновить Ingress хосты (требуется sudo)";; \ rollback) \ if [ -z "$$RELEASE_ARG" ]; then \ echo "❌ Ошибка: Укажите имя релиза"; \ diff --git a/manifests/test-grafana-ingress.yaml b/manifests/test-grafana-ingress.yaml new file mode 100644 index 0000000..37122ca --- /dev/null +++ b/manifests/test-grafana-ingress.yaml @@ -0,0 +1,19 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: grafana-ingress + namespace: monitoring + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +spec: + rules: + - host: grafana.local + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: monitoring-grafana + port: + number: 80