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
Last revisionBoth sides next revision
devops:skaffold [2021/02/18 21:19] – [Настройка деплоя во внешний кластер] admindevops:skaffold [2021/03/30 16:42] – [Настройка CI/CD на базе GitLab и Skaffold] 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