Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
devops:skaffold [2021/02/18 21:19] – [Настройка деплоя во внешний кластер] admindevops:skaffold [2021/04/22 09:44] (current) – [Настройка проекта в GitLab] admin
Line 52: Line 52:
  
 ====== Настройка CI/CD на базе GitLab и Skaffold ====== ====== Настройка CI/CD на базе GitLab и Skaffold ======
 +===== Настройка проекта в GitLab =====
 +  * Включаем CI/CD для проекта - **Settings -> General -> Visibility, project features, permissions -> Pipelines**
 +  * Настраиваем переменные - **Settings -> CI/CD -> Variables**. Нужно добавить **DOCKER_REGISTRY_URL** и конфиги для кластеров (переменные **KUBECONFIG_PROD** и **KUBECONFIG_TEST**), отличных от того, где работает раннер (в своем кластере раннер имеет права). Если **docker registry** требует аутентифиуации, то добавляем переменные **DOCKER_REGISTRY_LOGIN** и **DOCKER_REGISTRY_PASS** и расскоментируем в **.gitlab-ci.yaml** соответствующие строчки.
 +
 ===== .gitlab-ci.yml ===== ===== .gitlab-ci.yml =====
 <code> <code>
Line 81: Line 85:
     name: docker.rdleas.ru/k8s-skaffold/skaffold:v1.19.0     name: docker.rdleas.ru/k8s-skaffold/skaffold:v1.19.0
   stage: build   stage: build
-  before_script: +#  before_script: 
-    - docker login -u `echo $DOCKER_REGISTRY_LOGIN` -p `echo $DOCKER_REGISTRY_PASS` `echo $DOCKER_REGISTRY_URL`+   - docker login -u `echo $DOCKER_REGISTRY_LOGIN` -p `echo $DOCKER_REGISTRY_PASS` `echo $DOCKER_REGISTRY_URL`
 #https://skaffold.dev/docs/references/cli/ #https://skaffold.dev/docs/references/cli/
   script:   script:
Line 132: Line 136:
       namespace: vrm       namespace: vrm
       valuesFiles:       valuesFiles:
-        - chart/values_dev.yaml+        - '{{.VALUES}}'
       artifactOverrides:       artifactOverrides:
         image: vrm         image: vrm
Line 150: Line 154:
 COPY --from=builder /app/. ./ COPY --from=builder /app/. ./
 CMD ["/usr/local/openjdk-11/bin/java", "-jar", "/app/target/vrm-1.0.0-SNAPSHOT.jar"]</code> CMD ["/usr/local/openjdk-11/bin/java", "-jar", "/app/target/vrm-1.0.0-SNAPSHOT.jar"]</code>
-Тут у нас двухстадийная сборка. \\+Тут у нас двухстадийная сборка (**multistage**). \\
 Сначала мы запускаем контейнер **maven**, который получает псевдоним **builder**, который выкачивает зависимости из локальной **proxy**-репы **maven-central** на базе **nexus** (директория **.m2** с файлом **settings.xml** лежит в репозитории проекта). Сначала мы запускаем контейнер **maven**, который получает псевдоним **builder**, который выкачивает зависимости из локальной **proxy**-репы **maven-central** на базе **nexus** (директория **.m2** с файлом **settings.xml** лежит в репозитории проекта).
 А далее мы собираем второй контейнер на базе образа **OpenJDK JRE**, в который копируем файлики, полученные в результате работы первого контейнера-билдера. А далее мы собираем второй контейнер на базе образа **OpenJDK JRE**, в который копируем файлики, полученные в результате работы первого контейнера-билдера.
  • devops/skaffold.txt
  • Last modified: 2021/04/22 09:44
  • by admin