05 02 jenkins k3s agent 1c - kropachev/1c-devops-jr GitHub Wiki
Настройка Jenkins агентов 1С
Мы настраивали доступ к Docker Registry по прямому адресу без указания порта https://registry.onecci.lan
Подготовка Docker-образа Jenkins-агента 1С
Для сборки образов используется отдельный репозиторий со скриптами автоматизированной установки платформы 1С и подготовки окружения Jenkins-агента.
Клонируем репозиторий
git clone https://github.com/Daabramov/Sonarqube-for-1c-docker.git
cd onec-docker
Настройка параметров сборки
Создаем файл окружения:
cp .onec.env.example .env
nano .env
Минимально необходимые параметры:
ONEC_VERSION=8.3.27.1606
ONEC_USERNAME=...
ONEC_PASSWORD=...
DOCKER_REGISTRY=registry.onecci.lan
DOCKER_IMAGE_PREFIX=onec
Пояснения:
ONEC_VERSION- версия платформы 1С, которая будет установлена в образONEC_USERNAME / ONEC_PASSWORD- учетные данные для получения дистрибутивов 1СDOCKER_REGISTRY- адрес приватного Registry (без порта)DOCKER_IMAGE_PREFIX- префикс имен образов
Сборка образа Jenkins-агента
Для Jenkins в Kubernetes используется специализированный сценарий сборки:
chmod +x build-base-k8s-jenkins-agent.sh
./build-base-k8s-jenkins-agent.sh
В результате:
- собирается Docker-образ агента;
- образ тегируется версией платформы 1С;
- образ публикуется в приватный Registry.
Пример итогового образа:
registry.onecci.lan/jenkins-agent:8.3.27.1606
Добавление Jenkins-агента в Jenkins (Pod Template)
Manage Jenkins - Clouds - Kubernetes - Pod Templates - Add Pod Template
Основные параметры Pod Template
| Поле | Значение | Комментарий |
|---|---|---|
| Name | onec-8-3-27-1606 | - |
| Namespace | jenkins-agents | namespace, в котором создаются Pod-ы агентов |
| Labels | 8.3.27.1606 agent | используется Jenkins для выбора агента |
| Image Pull Secret | registry-auth | секрет с учеткой для registry |
| Service Account | jenkins-agent | учетная запись Kubernetes для Pod-а |
Раздел с сертификатом
- Volumes - Add Volume.
Тип Config Map Volume.
- Name -
onecci-root-ca - Mount path -
/etc/gitlab-ca
- Environment Variables - Add Environment Variable.
Тип Environment Variable.
- Key -
GIT_SSL_CAINFO - Value -
/etc/gitlab-ca/onecci-root-ca.crt
Контейнер агента
Добавляем контейнер в Pod Template.
| Поле | Значение | Комментарий |
|---|---|---|
| Name | jnlp |
контейнер с именем jnlp используется Kubernetes plugin как Jenkins-агент |
| Docker image | registry.onecci.lan/base-jenkins-agent:8.3.27.1606 |
- |
| Working directory | /home/jenkins |
стандартная рабочая директория Jenkins |
Раскрываем Advanced
| Поле | Значение | Комментарий |
|---|---|---|
| Run As User ID | 0 |
запуск контейнера под root |
| Limit Memory | 1024Mi |
лимит по оперативной памяти (в kubernetes с этим строго) |
Жмем Save для сохранения настроек.