From b37991362071736c0849438fc47be655cfd91f23 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=A8=D0=B0=D1=80=D0=BE=D0=BD=D0=BE=D0=B2=20=D0=95=D0=B3?=
 =?UTF-8?q?=D0=BE=D1=80=20=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B5=D0=B2?=
 =?UTF-8?q?=D0=B8=D1=87?= <easharonov@edu.hse.ru>
Date: Sat, 22 Mar 2025 09:20:24 +0000
Subject: [PATCH] Update .gitlab-ci.yml file

---
 .gitlab-ci.yml | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 962c606..42802c9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,10 +3,15 @@ stages:
   - deploy
 
 variables:
-  IMAGE_NAME: $CI_REGISTRY_IMAGE
+  # Адрес реестра, куда пушим образы.
+  REGISTRY_URL: registry.miem.hse.ru
+  # Полное имя образа: <registry>/<namespace>/<repository>
+  IMAGE_NAME: $REGISTRY_URL/edadil/ms/model
+  # Неймспейс Kubernetes, куда деплоится приложение.
   KUBE_NAMESPACE: productassistant
 
 before_script:
+  # Загружаем kubeconfig из переменной CI/CD
   - echo "$KUBECONFIG_DATA" > kubeconfig
   - export KUBECONFIG=$CI_PROJECT_DIR/kubeconfig
 
@@ -15,23 +20,31 @@ build:
   image: docker:latest
   services:
     - docker:dind
+  tags:
+    - docker
   script:
+    # Аутентификация в Docker реестре с использованием переменных, заданных в CI/CD
+    - docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASSWORD" $REGISTRY_URL
+    # Сборка образа: указываем путь к Dockerfile (здесь предполагается, что Dockerfile лежит в каталоге deployment)
     - docker build -t $IMAGE_NAME:$CI_COMMIT_SHORT_SHA -f deployment/Dockerfile .
+    # Пушим образ в реестр
     - docker push $IMAGE_NAME:$CI_COMMIT_SHORT_SHA
   only:
     - master
-  tags:
-    - docker            # <-- добавляем тег
 
 deploy:
   stage: deploy
   image: lachlanevenson/k8s-kubectl:latest
   tags:
-    - docker            # <-- добавляем тот же тег, если нужно
+    - docker
   script:
+    # Устанавливаем новый тег образа
     - export IMAGE_TAG=$CI_COMMIT_SHORT_SHA
+    # Подставляем новый тег в манифест (предполагается, что в app-deployment.yaml есть placeholder, например, ${IMAGE_TAG})
     - envsubst < deployment/k8s/app-deployment.yaml > deployment/k8s/app-deployment-temp.yaml
+    # Создаем неймспейс, если его еще нет
     - 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
-- 
GitLab