Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
devops:skaffold [2021/02/18 19:52] – [Настройка деплоя во внешний кластер] admin | devops:skaffold [2021/03/24 12:50] – [.gitlab-ci.yml] admin | ||
---|---|---|---|
Line 81: | Line 81: | ||
name: docker.rdleas.ru/ | name: docker.rdleas.ru/ | ||
stage: build | stage: build | ||
- | | + | # |
- | - 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` |
# | # | ||
script: | script: | ||
Line 132: | Line 132: | ||
namespace: vrm | namespace: vrm | ||
valuesFiles: | valuesFiles: | ||
- | - chart/ | + | - '{{.VALUES}}' |
artifactOverrides: | artifactOverrides: | ||
image: vrm | image: vrm | ||
Line 150: | Line 150: | ||
COPY --from=builder /app/. ./ | COPY --from=builder /app/. ./ | ||
CMD ["/ | CMD ["/ | ||
- | Тут у нас двухстадийная сборка. \\ | + | Тут у нас двухстадийная сборка |
Сначала мы запускаем контейнер **maven**, который получает псевдоним **builder**, | Сначала мы запускаем контейнер **maven**, который получает псевдоним **builder**, | ||
А далее мы собираем второй контейнер на базе образа **OpenJDK JRE**, в который копируем файлики, | А далее мы собираем второй контейнер на базе образа **OpenJDK JRE**, в который копируем файлики, | ||
Line 175: | Line 175: | ||
namespace: vrm | namespace: vrm | ||
rules: | rules: | ||
- | - apiGroups: ["", " | + | - apiGroups: ["*"] |
resources: [" | resources: [" | ||
verbs: [" | verbs: [" | ||
Line 236: | Line 236: | ||
KUBECONFIG=./ | KUBECONFIG=./ | ||
Теперь - добавляем содержимое этого файла в свойтсвах проекта в переменную типа **File**. В итоге -содержимое файла будет доставлено в контейнер **skaffold** | Теперь - добавляем содержимое этого файла в свойтсвах проекта в переменную типа **File**. В итоге -содержимое файла будет доставлено в контейнер **skaffold** | ||
+ | А gitlab-ci.yml станет такой: | ||
+ | < | ||
+ | # - name: docker.rdleas.ru/ | ||
+ | # Последнюю версию dind (20+) не удается использовать из-за ошибки: | ||
+ | # Нужно обновлять container.d на хостах | ||
+ | # В остальном - всё уже готово. | ||
+ | - name: docker.rdleas.ru/ | ||
+ | command: | ||
+ | - /bin/sh | ||
+ | - -c | ||
+ | - | | ||
+ | openssl s_client -showcerts -connect docker.rdleas.ru: | ||
+ | update-ca-certificates | ||
+ | unset DOCKER_TLS_CERTDIR | ||
+ | dockerd-entrypoint.sh | ||
+ | |||
+ | stages: | ||
+ | - build | ||
+ | |||
+ | variables: | ||
+ | DOCKER_DRIVER: | ||
+ | DOCKER_TLS_CERTDIR: | ||
+ | DOCKER_HOST: | ||
+ | |||
+ | build: | ||
+ | image: | ||
+ | name: docker.rdleas.ru/ | ||
+ | stage: build | ||
+ | before_script: | ||
+ | - docker login -u `echo $DOCKER_REGISTRY_LOGIN` -p `echo $DOCKER_REGISTRY_PASS` `echo $DOCKER_REGISTRY_URL` | ||
+ | # | ||
+ | script: | ||
+ | - | | ||
+ | openssl s_client -showcerts -connect ${DOCKER_REGISTRY_URL}: | ||
+ | update-ca-certificates | ||
+ | env | ||
+ | echo " | ||
+ | timeout 60 bash -c 'until printf "" | ||
+ | case $CI_COMMIT_BRANCH in | ||
+ | DEV) | ||
+ | VALUES=" | ||
+ | ;; | ||
+ | TEST) | ||
+ | VALUES=" | ||
+ | KUBECONFIG=$KUBECONFIG_TEST \ | ||
+ | skaffold run -f skaffold-run.yaml \ | ||
+ | --default-repo ${DOCKER_REGISTRY_URL}/ | ||
+ | ;; | ||
+ | PROD) | ||
+ | KUBECONFIG=$KUBECONFIG_PROD \ | ||
+ | VALUES=" | ||
+ | skaffold run -f skaffold-run.yaml \ | ||
+ | --default-repo ${DOCKER_REGISTRY_URL}/ | ||
+ | ;; | ||
+ | *) | ||
+ | skaffold build -f skaffold-build.yaml | ||
+ | ;; | ||
+ | esac</ |