diff --git a/scripts/portforward.py b/scripts/portforward.py index 23d4cd5..afca259 100755 --- a/scripts/portforward.py +++ b/scripts/portforward.py @@ -80,7 +80,7 @@ def clear_portforwards(): pass def create_portforwards(): - """Создает port-forward для всех сервисов из preset""" + """Создает port-forward для всех сервисов из preset на локальном компьютере""" # Загружаем preset preset_file = "molecule/presets/k8s/kubernetes.yml" with open(preset_file, 'r') as f: @@ -89,7 +89,29 @@ def create_portforwards(): cluster_name = preset['kind_clusters'][0]['name'] addon_ports = preset['kind_clusters'][0].get('addon_ports', {}) + # Получаем kubeconfig из контейнера k8s-controller print(f"🔌 Создание port-forward для кластера: {cluster_name}") + print("📋 Получение kubeconfig из контейнера k8s-controller...") + + # Копируем kubeconfig из контейнера + result = subprocess.run( + f"docker exec k8s-controller kind get kubeconfig --name {cluster_name}", + shell=True, capture_output=True, text=True + ) + + if result.returncode != 0: + print(f"❌ Ошибка получения kubeconfig: {result.stderr}") + return + + # Сохраняем kubeconfig во временный файл + kubeconfig_file = "/tmp/kubeconfig-lab.yaml" + with open(kubeconfig_file, 'w') as f: + f.write(result.stdout) + + # Меняем server с 0.0.0.0 на localhost для локального доступа + subprocess.run(f"sed -i.bak 's|server: https://0.0.0.0:6443|server: https://localhost:6443|g' {kubeconfig_file}", shell=True) + + print("✅ Kubeconfig подготовлен") # Prometheus if addon_ports.get('prometheus'): @@ -97,8 +119,7 @@ def create_portforwards(): print(f" - Prometheus: localhost:{port} -> monitoring/monitoring-kube-prometheus-prometheus:9090") subprocess.Popen([ "kubectl", - "--server=https://{}-control-plane:6443".format(cluster_name), - "--insecure-skip-tls-verify", + f"--kubeconfig={kubeconfig_file}", "port-forward", "-n", "monitoring", "svc/monitoring-kube-prometheus-prometheus", @@ -111,8 +132,7 @@ def create_portforwards(): print(f" - Grafana: localhost:{port} -> monitoring/monitoring-grafana:80") subprocess.Popen([ "kubectl", - "--server=https://{}-control-plane:6443".format(cluster_name), - "--insecure-skip-tls-verify", + f"--kubeconfig={kubeconfig_file}", "port-forward", "-n", "monitoring", "svc/monitoring-grafana", @@ -125,8 +145,7 @@ def create_portforwards(): print(f" - Kiali: localhost:{port} -> istio-system/kiali:20001") subprocess.Popen([ "kubectl", - "--server=https://{}-control-plane:6443".format(cluster_name), - "--insecure-skip-tls-verify", + f"--kubeconfig={kubeconfig_file}", "port-forward", "-n", "istio-system", "svc/kiali", @@ -139,8 +158,7 @@ def create_portforwards(): print(f" - Metrics Server: localhost:{port} -> kube-system/metrics-server:4443") subprocess.Popen([ "kubectl", - "--server=https://{}-control-plane:6443".format(cluster_name), - "--insecure-skip-tls-verify", + f"--kubeconfig={kubeconfig_file}", "port-forward", "-n", "kube-system", "svc/metrics-server",