From 69a589974e73ac1a8bd03cb03c8324d0d438901e 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 09:48:51 +0300 Subject: [PATCH] =?UTF-8?q?wip:=20=D0=BF=D0=BE=D0=BF=D1=8B=D1=82=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20port-forward=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20k8s-controll?= =?UTF-8?q?er=20(=D1=82=D1=80=D0=B5=D0=B1=D1=83=D0=B5=D1=82=D1=81=D1=8F=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/portforward_container.py | 50 +++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/scripts/portforward_container.py b/scripts/portforward_container.py index b2236d5..2be80f7 100755 --- a/scripts/portforward_container.py +++ b/scripts/portforward_container.py @@ -44,9 +44,17 @@ def get_port_mappings(ports): return port_list def start_container(): - """Запускает контейнер port-forward""" + """Запускает контейнер port-forward через k8s-controller""" print("🚀 Запуск контейнера k8s-portforward...") + # Проверяем, что k8s-controller запущен + result = subprocess.run(["docker", "ps", "--filter", "name=k8s-controller", "--format", "{{.Names}}"], + capture_output=True, text=True) + if "k8s-controller" not in result.stdout: + print("❌ Контейнер k8s-controller не запущен") + print("💡 Запустите: make k8s create kubernetes") + return + # Получаем порты из preset ports = get_ports_from_preset() port_mappings = get_port_mappings(ports) @@ -73,12 +81,10 @@ def start_container(): print(f"📋 Команда: {' '.join(cmd)}") - # Удаляем старый контейнер если существует - subprocess.run(["docker", "rm", "-f", CONTAINER_NAME], - capture_output=True, stderr=subprocess.DEVNULL) - - # Запускаем новый контейнер - result = subprocess.run(cmd, capture_output=True, text=True) + # Выполняем команду через k8s-controller + cmd_str = ' '.join(['"' + arg.replace('"', '\\"') + '"' for arg in cmd]) + result = subprocess.run(["docker", "exec", "k8s-controller", "sh", "-c", cmd_str], + capture_output=True, text=True) if result.returncode == 0: print(f"✅ Контейнер {CONTAINER_NAME} запущен") @@ -94,8 +100,18 @@ def start_container(): def stop_container(): """Останавливает контейнер port-forward""" print("🛑 Остановка контейнера k8s-portforward...") - result = subprocess.run(["docker", "stop", CONTAINER_NAME], + + # Проверяем, что k8s-controller запущен + result = subprocess.run(["docker", "ps", "--filter", "name=k8s-controller", "--format", "{{.Names}}"], capture_output=True, text=True) + if "k8s-controller" not in result.stdout: + print("⚠️ Контейнер k8s-controller не запущен, пытаемся остановить локально...") + result = subprocess.run(["docker", "stop", CONTAINER_NAME], + capture_output=True, text=True) + else: + # Останавливаем через k8s-controller + result = subprocess.run(["docker", "exec", "k8s-controller", "docker", "stop", CONTAINER_NAME], + capture_output=True, text=True) if result.returncode == 0: print(f"✅ Контейнер {CONTAINER_NAME} остановлен") @@ -111,9 +127,21 @@ def restart_container(): def status_container(): """Показывает статус контейнера""" print("📊 Статус контейнера k8s-portforward:") - result = subprocess.run(["docker", "ps", "-a", "--filter", f"name={CONTAINER_NAME}", - "--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"], - capture_output=True, text=True) + + # Проверяем, что k8s-controller запущен + result = subprocess.run(["docker", "ps", "--filter", "name=k8s-controller", "--format", "{{.Names}}"], + capture_output=True, text=True) + if "k8s-controller" not in result.stdout: + print("⚠️ Контейнер k8s-controller не запущен, проверяем локально...") + result = subprocess.run(["docker", "ps", "-a", "--filter", f"name={CONTAINER_NAME}", + "--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"], + capture_output=True, text=True) + else: + # Проверяем через k8s-controller + result = subprocess.run(["docker", "exec", "k8s-controller", "docker", "ps", "-a", + "--filter", f"name={CONTAINER_NAME}", + "--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"], + capture_output=True, text=True) if result.returncode == 0: print(result.stdout)