Комментарии 1
K3s + Gitlab мне нравится больше, т.к. облачный Gitlab содержит в себе кучу всего вроде container registry, pip registry, git repository, variables storage & etc и в 99% его можно использовать бесплатно, он yaml based.
Для новичков:
1) Установить K3s:
curl -sfL https://get.k3s.io | sh -
sleep 30
k3s kubectl get nodes
mkdir $HOME/.kube
sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config
sudo chown $USER:$USER $HOME/.kube/config
chmod 600 $HOME/.kube/config
2) Установить Helm
https://helm.sh/docs/intro/install/
3) Зарегистрироваться в Gitlab https://gitlab.com, создать Group и скопировать Registration token из (замените название группы на свою)
https://gitlab.com/groups/your_group_name/-/runners
4) Использовать helm для установки Gitlab runner в ваш K3s:
helm repo add gitlab https://charts.gitlab.io
helm repo update
helm fetch gitlab/gitlab-runner --version=0.42.0 --untar
cd gitlab-runner
Отредактируйте values.yaml
:
Раскомментируйте gitlabUrl и используйте значение https://gitlab.com/
https://gitlab.com/gitlab-org/charts/gitlab-runner/-/blob/v0.42.0/values.yaml#L51
Раскомментируйте runnerRegistrationToken и вставьте значение токена скопированное в пункте 2)
https://gitlab.com/gitlab-org/charts/gitlab-runner/-/blob/v0.42.0/values.yaml#L57
Сохраните и установите Gitlab runner (обратите внимание на точку, она необходима :)
helm -n gitlab upgrade -i gitlab-runner . --values=values.yaml --create-namespace
5) Создайте Project (репозиторий) внутри ранее созданной Group.
6) Добавьте ваш код и файл .gitlab-ci.yml
в котором настройте pipeline в соответствии с вашими требованиями.
https://docs.gitlab.com/ce/ci/examples/#cicd-templates
https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates
7) Закомитьте ваш код и если вы правильно написали .gitlab-ci.yml, то ваша сборка начнется в вашем gitlab-runner в вашем локальном K3s кластере, а в случае сборки докер образа, он будет загружен в приватный репозиторий контейнеров Gitlab.
P.S. Используя такой setup вы можете практиковаться в условиях максимально приближенным к боевым и никаких 127.0.0.1 :)
Удачи!
Домашний CICD: Docker, Jenkins и Nexus3