В данный момент играюсь с GitLab, Kubernetes и CI/CD.
Легенда:
Kubernetes 1.14.3
kubectl pod 1.14.3
Для того чтобы делать CD, нашел специально собранный для этого образ.
Для Continious Deployment в GitLab понадобится добавить следующие переменные в Settings > Variables.
1) CERTIFICATE_AUTHORITY_DATA
2) CI_REGISTRY_PASSWORD
3) CI_REGISTRY_USER
4) SERVER
5) USER_TOKEN
1) Значения для переменной берем из /root/.kube/config
2 и 3) ваш репозитории из Docker Hub.
3) После пуша вашего проекта должна начаться в pipeline стадия билда и деплоя.
git init
git add .
git commit -m "my deployment"
git remote add origin https://gitlab.com/myrepository
git push origin master
Легенда:
Kubernetes 1.14.3
kubectl pod 1.14.3
Для того чтобы делать CD, нашел специально собранный для этого образ.
Для Continious Deployment в GitLab понадобится добавить следующие переменные в Settings > Variables.
1) CERTIFICATE_AUTHORITY_DATA
2) CI_REGISTRY_PASSWORD
3) CI_REGISTRY_USER
4) SERVER
5) USER_TOKEN
1) Значения для переменной берем из /root/.kube/config
2 и 3) ваш репозитории из Docker Hub.
4) Значение SERVER это IP вашего Kubernetes сервера: https//YOURIP:6443/
5) Для этого шага понадобится создать учетку с правами cluster-admin и получить его токен: kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}')
eyJhbGci.....
eyJhbGci.....
2) Стадия CD у меня выглядит так:
# This file is a template, and might need editing before it works on your project.
stages:
- build
- deploy
build-master:
# Official docker image.
image: docker:latest
stage: build
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD"
script:
- docker build --pull -t "$CI_REGISTRY_USER"/test-pipeline:v1.0 .
- docker push "$CI_REGISTRY_USER"/test-pipeline
only:
- master
deploy:
stage: deploy
image: dtzar/helm-kubectl:2.14.1
script:
script:
- kubectl config set-cluster k8s --server="${SERVER}"
- kubectl config set clusters.k8s.certificate-authority-data ${CERTIFICATE_AUTHORITY_DATA}
- kubectl config set-credentials gitlab-admin --token="${USER_TOKEN}"
- kubectl config set-context default --cluster=k8s --user=gitlab-admin
- kubectl config use-context default
- curl -k https://gitlab.com/yourrepository/test-pipeline/raw/master/nginx.yaml >> /config/app.yaml
- sed -i "s/<VERSION>/${CI_COMMIT_SHORT_SHA}/g" $PWD/app.yaml
- kubectl apply -f $PWD/app.yaml --insecure-skip-tls-verify
3) После пуша вашего проекта должна начаться в pipeline стадия билда и деплоя.
git init
git add .
git commit -m "my deployment"
git remote add origin https://gitlab.com/myrepository
git push origin master
Комментариев нет:
Отправить комментарий