Some checks failed
Ansible Testing / lint (push) Has been cancelled
Ansible Testing / test (default) (push) Has been cancelled
Ansible Testing / test (minimal) (push) Has been cancelled
Ansible Testing / test (performance) (push) Has been cancelled
Ansible Testing / deploy-check (push) Has been cancelled
- Добавлено создание контейнеров из секции hosts в create_k8s_cluster.py - Добавлено удаление контейнеров в команде make k8s destroy - Создан скрипт scripts/delete_hosts.py для удаления контейнеров - Контейнеры автоматически создаются в Docker сети из пресета - Контейнеры удаляются вместе с Kind кластером при make k8s destroy
45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Скрипт для удаления контейнеров из секции hosts пресета
|
||
Автор: Сергей Антропов
|
||
Сайт: https://devops.org.ru
|
||
"""
|
||
import sys
|
||
import yaml
|
||
import subprocess
|
||
|
||
def main():
|
||
if len(sys.argv) < 2:
|
||
print("Usage: delete_hosts.py <preset_file>")
|
||
sys.exit(1)
|
||
|
||
preset_file = sys.argv[1]
|
||
|
||
print(f"📋 Читаю пресет: {preset_file}")
|
||
with open(preset_file, 'r') as f:
|
||
preset = yaml.safe_load(f)
|
||
|
||
hosts = preset.get('hosts', [])
|
||
if not hosts:
|
||
print("⚠️ В пресете нет контейнеров для удаления")
|
||
sys.exit(0)
|
||
|
||
print(f"🗑️ Удаление контейнеров (всего: {len(hosts)})")
|
||
for host in hosts:
|
||
host_name = host['name']
|
||
|
||
# Проверяем существование контейнера
|
||
result = subprocess.run(f"docker ps -a --format '{{{{.Names}}}}' | grep -x {host_name}",
|
||
shell=True, capture_output=True, text=True)
|
||
if result.stdout.strip():
|
||
print(f"🗑️ Удаление контейнера: {host_name}")
|
||
subprocess.run(f"docker rm -f {host_name}", shell=True, capture_output=True, text=True)
|
||
print(f"✅ Контейнер '{host_name}' удален")
|
||
else:
|
||
print(f"⚠️ Контейнер '{host_name}' не найден")
|
||
|
||
print("✅ Удаление завершено")
|
||
|
||
if __name__ == "__main__":
|
||
main()
|