diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 54071d7a61a6ca515018064f8cefba7532551c3d..86d35639524d4602434817ad5d748eba787f09fc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,14 +1,15 @@ -stages: +stages: - build - deploy +# Предположим, что у нас включён GitLab Container Registry +# и GitLab Runner умеет авторизоваться в нём автоматически. variables: - REGISTRY_URL: registry.example.com - IMAGE_NAME: $REGISTRY_URL/your-backend + IMAGE_NAME: $CI_REGISTRY_IMAGE KUBE_NAMESPACE: productassistant before_script: - # Сохраняем kubeconfig из переменной в файл и устанавливаем переменную окружения KUBECONFIG + # Загружаем kubeconfig из переменной и используем его - echo "$KUBECONFIG_DATA" > kubeconfig - export KUBECONFIG=$CI_PROJECT_DIR/kubeconfig @@ -27,11 +28,16 @@ deploy: stage: deploy image: lachlanevenson/k8s-kubectl:latest script: - # Подставляем новый тег образа в манифест (используем envsubst) - export IMAGE_TAG=$CI_COMMIT_SHORT_SHA + # Пример: подставляем тег в app-deployment.yaml, если там прописан placeholder - envsubst < deployment/k8s/app-deployment.yaml > deployment/k8s/app-deployment-temp.yaml - - kubectl apply -f deployment/k8s/namespace.yaml - - kubectl --namespace=$KUBE_NAMESPACE apply -f deployment/k8s/app-deployment-temp.yaml + + # Применяем namespace.yaml (создаёт productassistant, если нет) + - kubectl apply -f deployment/k8s/namespace.yaml --validate=false + + # Применяем остальные манифесты (можно все разом, если нужно) + - kubectl --namespace=$KUBE_NAMESPACE apply -f deployment/k8s/app-deployment-temp.yaml --validate=false + only: - master when: manual \ No newline at end of file