Взаимодействие с Jenkins Tools#
Jenkins Tools - сторонние утилиты, которые можно применять в своих Pipelines с использованием механизмов Jenkins. За администрирование Jenkins Tools отвечают администраторы Jenkins.
Получение информации о Jenkins Tools из Jenkins#
Информацию о том, какие Tools доступны и какие параметры задавать для их подключения, можно получить в Jenkins.
Открыть существующий Jenkins Job типа Pipeline и в меню слева выбрать пункт
Pipeline Syntax.
Рисунок. Выбор пункта меню "Pipeline Syntax"
В секции
Sample Stepвыбратьtool: Use a tool from a predefined Tool Installation
Рисунок. Выбор варианта "tool"
Находим нужный Tool и выбираем его версию, после чего нажимаем
Generate Pipeline Script
Рисунок. Выбор Tool
В окне ниже появится информация, которую мы будем использовать для настройки Tools в SMDL. Это name и type. Поле path по умолчанию должно быть пустым, если исполняемы бинарный файл определен в корне Tool, иначе необходимо обратиться к администраторам Jenkins за получением информации о пути, по которому расположен исполняемый бинарный файл в Tool.

Рисунок. Информация для настройки Tool
Настройка взаимодействия с Jenkins Tools в SMDL#
В SMDL реализовано два варианта взаимодействия с Jenkins Tools.
Взаимодействие с Jenkins Tools c использованием переменных.
В конфигурационном файле для стенда (configDev.yml, configPsi.yml, configProm.yml и т.п.) в репозитории конфигураций SMDL.Configs определен ряд переменных для работы с Jenkins Tools. Чтобы использовать данный вариант, необходимо в конфигурационном файле определить данные переменные.
Переменная
Описание
Пример заполнения
toolIstioctlVersion
Версия Jenkins Tool для клиента IstioCTL
istio-1.12-linux
toolExecutorVersion
Версия Jenkins Tool для клиента системы оркестрации
oc3.11.0
toolExecutorType
Тип Jenkins Tool для клиента системы оркестрации
oc
toolExecutorServerPrecheckVersion
Версия Jenkins Tool для клиента системы оркестрации (используется для проверки конфигураций)
oc-4.7.12
toolSonarQubeVersion
Версия Jenkins Tool для клиента SonarQube
SonarQube_Scanner
toolGoVersion
Версия Jenkins Tool для клиента Go
go1.18
typeGoVersio
Тип Jenkins Tool для клиента Go
go
toolGoDir
Директория с Jenkins Tool для клиента Go
bin
toolHelmVersion
Версия Jenkins Tool для клиента HELM
helm-v3.8.0
toolMavenVersion
Версия Jenkins Tool для клиента Maven
Maven 3.5.4
Взаимодействие с Jenkins Tools c использованием секции tools.
Данный вариант является целевым. Для его использования необходимо определить секцию tools в конфигурационном файле для стенда (configDev.yml, configPsi.yml, configProm.yml и т.п.) в репозитории конфигураций SMDL.Configs. При использовании данного варианта используется метод toolResolver из DevCommon.groovy (описанного в подразделе «Библиотеки методов» раздела «Дополнительная документация» документа «Руководство прикладного разработчика»).
Jenkins Tools, которые сейчас используются в SMDL с использованием секции tools:
executor - Tool для клиента системы оркестрации
go - Tool для клиента Go
helm - Tool для клиента HELM
kubectl - Tool для клиента kubectl
python - Tool для клиента Python
precheckExecutor - Tool для клиента системы оркестрации
sonarQube - Tool для клиента SonarQube
istioctl - Tool для клиента IstioCTL
jdk - Tool для клиента JDK
jdkSonar - Tool для клиента JDK, используемого при сканировании SonarQube
gradle - Tool для клиента Gradle
maven - Tool для клиента Maven
yq - Tool для клиента YQ
Для каждого Tool можно задать следующие поля:
name - имя (версия)
type - тип
path - путь до исполняемого бинарного файла
Пример заполнения секции tools в конфигурационном файле:
tools: executor: name: oc3.11.0 type: oc path: oc go: name: go1.18 type: go helm: name: helm-v3.8.0 type: "com.cloudbees.jenkins.plugins.customtools.CustomTool" path: helm kubectl: name: kubectl_v1.18 type: com.cloudbees.jenkins.plugins.customtools.CustomTool path: kubectl python: name: "ansible-core2.10.3" type: "org.jenkinsci.plugins.ansible.AnsibleInstallation" path: "python3.6" precheckExecutor: name: oc-4.5.0 type: oc path: oc sonarQube: name: 'SonarQube_Scanner' type: "hudson.plugins.sonar.SonarRunnerInstallation" path: "sonar-scanner" istioctl: name: istio-1.12-linux type: 'com.cloudbees.jenkins.plugins.customtools.CustomTool' path: bin/istioctl jdk: type: jdk jdkSonar: name: jdk-11.0.10_linux type: jdk path: bin/jdk gradle: type: gradle path: "bin/gradle" maven: name: Maven 3.5.4 type: maven path: bin/mvn nodejs: name: "v10.16.3-linux-x64" type: nodejs yq: name: yq-4.20.2 type: 'com.cloudbees.jenkins.plugins.customtools.CustomTool' path: yq_linux_amd64В примере не задан name для Tools
jdkиgradle, так как выбор имени (версии) Tool может осуществляться из параметров Jenkins Job.