feat: автоматическое обновление Ingress хостов при изменениях
- Добавлен вызов manage_hosts.py после: - make k8s manifest apply - make k8s addon - make k8s helm apply - make k8s helm update - Создан тестовый манифест grafana-ingress - Автоматическое обновление /etc/hosts при любых изменениях Ingress
This commit is contained in:
		
							
								
								
									
										16
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1184,7 +1184,9 @@ k8s: | |||||||
| 			CLUSTER_NAME=$$(docker exec $$CONTAINER_NAME kind get clusters | head -1); \ | 			CLUSTER_NAME=$$(docker exec $$CONTAINER_NAME kind get clusters | head -1); \ | ||||||
| 			echo "📥 Установка аддона из $$MANIFEST_ARG..."; \ | 			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 "✅ Аддон установлен";; \ | 			echo "✅ Аддон установлен"; \ | ||||||
|  | 			echo "📝 Обновление Ingress хостов..."; \ | ||||||
|  | 			sudo python3 scripts/manage_hosts.py add 2>/dev/null || echo "⚠️  Не удалось обновить Ingress хосты (требуется sudo)";; \ | ||||||
| 		nodes) \ | 		nodes) \ | ||||||
| 			echo "🖥️  Просмотр узлов кластера..."; \ | 			echo "🖥️  Просмотр узлов кластера..."; \ | ||||||
| 			PRESET_ARG="$(word 3, $(MAKECMDGOALS))"; \ | 			PRESET_ARG="$(word 3, $(MAKECMDGOALS))"; \ | ||||||
| @@ -1236,7 +1238,9 @@ k8s: | |||||||
| 			case "$$MANIFEST_CMD" in \ | 			case "$$MANIFEST_CMD" in \ | ||||||
| 				apply) \ | 				apply) \ | ||||||
| 					echo "📥 Применение манифеста: $$MANIFEST_ARG"; \ | 					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) \ | 				delete) \ | ||||||
| 					echo "🗑️  Удаление ресурсов из манифеста: $$MANIFEST_ARG"; \ | 					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";; \ | 					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; \ | 						exit 1; \ | ||||||
| 					fi; \ | 					fi; \ | ||||||
| 					echo "📦 Установка Helm чарта: $$CHART_ARG как $$RELEASE_ARG"; \ | 					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) \ | 				delete) \ | ||||||
| 					if [ -z "$$RELEASE_ARG" ]; then \ | 					if [ -z "$$RELEASE_ARG" ]; then \ | ||||||
| 						echo "❌ Ошибка: Укажите имя релиза"; \ | 						echo "❌ Ошибка: Укажите имя релиза"; \ | ||||||
| @@ -1290,7 +1296,9 @@ k8s: | |||||||
| 						exit 1; \ | 						exit 1; \ | ||||||
| 					fi; \ | 					fi; \ | ||||||
| 					echo "🔄 Обновление Helm релиза: $$RELEASE_ARG"; \ | 					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) \ | 				rollback) \ | ||||||
| 					if [ -z "$$RELEASE_ARG" ]; then \ | 					if [ -z "$$RELEASE_ARG" ]; then \ | ||||||
| 						echo "❌ Ошибка: Укажите имя релиза"; \ | 						echo "❌ Ошибка: Укажите имя релиза"; \ | ||||||
|   | |||||||
							
								
								
									
										19
									
								
								manifests/test-grafana-ingress.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								manifests/test-grafana-ingress.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -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 | ||||||
		Reference in New Issue
	
	Block a user