wip: попытка запускать port-forward через k8s-controller (требуется доработка)

This commit is contained in:
Сергей Антропов
2025-10-26 09:48:51 +03:00
parent 3238b3903a
commit 69a589974e

View File

@@ -44,9 +44,17 @@ def get_port_mappings(ports):
return port_list return port_list
def start_container(): def start_container():
"""Запускает контейнер port-forward""" """Запускает контейнер port-forward через k8s-controller"""
print("🚀 Запуск контейнера k8s-portforward...") 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 # Получаем порты из preset
ports = get_ports_from_preset() ports = get_ports_from_preset()
port_mappings = get_port_mappings(ports) port_mappings = get_port_mappings(ports)
@@ -73,12 +81,10 @@ def start_container():
print(f"📋 Команда: {' '.join(cmd)}") print(f"📋 Команда: {' '.join(cmd)}")
# Удаляем старый контейнер если существует # Выполняем команду через k8s-controller
subprocess.run(["docker", "rm", "-f", CONTAINER_NAME], cmd_str = ' '.join(['"' + arg.replace('"', '\\"') + '"' for arg in cmd])
capture_output=True, stderr=subprocess.DEVNULL) result = subprocess.run(["docker", "exec", "k8s-controller", "sh", "-c", cmd_str],
capture_output=True, text=True)
# Запускаем новый контейнер
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode == 0: if result.returncode == 0:
print(f"✅ Контейнер {CONTAINER_NAME} запущен") print(f"✅ Контейнер {CONTAINER_NAME} запущен")
@@ -94,8 +100,18 @@ def start_container():
def stop_container(): def stop_container():
"""Останавливает контейнер port-forward""" """Останавливает контейнер port-forward"""
print("🛑 Остановка контейнера k8s-portforward...") 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 не запущен, пытаемся остановить локально...")
result = subprocess.run(["docker", "stop", CONTAINER_NAME], result = subprocess.run(["docker", "stop", CONTAINER_NAME],
capture_output=True, text=True) 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: if result.returncode == 0:
print(f"✅ Контейнер {CONTAINER_NAME} остановлен") print(f"✅ Контейнер {CONTAINER_NAME} остановлен")
@@ -111,9 +127,21 @@ def restart_container():
def status_container(): def status_container():
"""Показывает статус контейнера""" """Показывает статус контейнера"""
print("📊 Статус контейнера k8s-portforward:") 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 не запущен, проверяем локально...")
result = subprocess.run(["docker", "ps", "-a", "--filter", f"name={CONTAINER_NAME}", result = subprocess.run(["docker", "ps", "-a", "--filter", f"name={CONTAINER_NAME}",
"--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"], "--format", "table {{.Names}}\t{{.Status}}\t{{.Ports}}"],
capture_output=True, text=True) 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: if result.returncode == 0:
print(result.stdout) print(result.stdout)