From 0e1ea2f5539feb635956746470fd4ff59caba5ab Mon Sep 17 00:00:00 2001 From: Vassiliy Yegorov Date: Mon, 11 Aug 2025 08:57:16 +0700 Subject: [PATCH] init --- README.md | 13 ++++++++----- start.sh | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 578e9ec..c43bd72 100644 --- a/README.md +++ b/README.md @@ -94,17 +94,20 @@ TALOS_CLUSTER_NAME=talos-nsk2 **Этапы выполнения:** 1. **Загрузка переменных** из `.env` -2. **Terraform Plan** - показ планируемых изменений -3. **Подтверждение и Apply** - создание инфраструктуры -4. **Сохранение kubeconfig** в `~/.kube/${TALOS_CLUSTER_NAME}.yaml` -5. **Установка Cilium** через Helm: +2. **Проверка зависимостей** - проверка наличия terraform, helm, kubectl +3. **Terraform Plan** - показ планируемых изменений +4. **Подтверждение и Apply** - создание инфраструктуры +5. **Сохранение kubeconfig** в `~/.kube/${TALOS_CLUSTER_NAME}.yaml` +6. **Установка Cilium** через Helm: - Добавление репозитория cilium - Обновление репозиториев - Установка с кастомными values -6. **Применение Cilium ресурсов**: +7. **Применение Cilium ресурсов**: - IP Pool для LoadBalancer - L2 Announcement Policy +Скрипт автоматически проверяет наличие необходимых инструментов (terraform, helm, kubectl) и завершается с ошибкой если какой-либо инструмент отсутствует. + ### destroy.sh - Удаление кластера Полная очистка инфраструктуры: diff --git a/start.sh b/start.sh index 9bb528c..406de74 100755 --- a/start.sh +++ b/start.sh @@ -11,6 +11,29 @@ confirm() { [[ "$response" == "y" ]] } +check_dependencies() { + local missing_tools=() + + for tool in terraform helm kubectl; do + if ! command -v "$tool" &> /dev/null; then + missing_tools+=("$tool") + fi + done + + if [ ${#missing_tools[@]} -ne 0 ]; then + echo "Error: Missing required tools: ${missing_tools[*]}" + echo "Please install the following tools before running this script:" + for tool in "${missing_tools[@]}"; do + echo " - $tool" + done + exit 1 + fi + + echo "All required tools are available" +} + +check_dependencies + tfplan=$(terraform plan -out=tfplan) echo "$tfplan"