Skip to main content

Jenkins -> k8s

  • Есть Jenkins вне кластера. Дополнительно установлен плагин Kubernetes. Остальные нужные плагины подтянутся сами (Kubernetes client API, ...).

jenkins_k8s_1.JPG

  • Есть кластер k8s с доступным для Jenkins внешним адресом. Внутри кластера есть одна нода с доступом в Интернет (доступ с ноды для приложенного pipeline критичен). 
  • На кластере создаем namespace, пользователя jenkins, токен 
    kubectl create namespace jenkins
    kubectl create sa jenkins -n jenkins
    kubectl create token jenkins -n jenkins --duration=8760h
    #здесь отобразится токен, его нужно сохранить, затем добавим в настройки Cloud
    kubectl create rolebinding jenkins-admin-binding --clusterrole=admin --serviceaccount=jenkins:jenkins --namespace=jenkins
  • //еще не полностью понял// Под термином Cloud в Jenkins понимается поддерживаемые типы виртуализации/контейнеризации для создания динамических агентов. Т е авторизация и т д, настраиваемая в Clouds, используется только для создания динамического агента и затем удаления его. Все. Агент создается пустой, все остальное нужно доделывать. При установке соответствующих плагинов в списке появляются возможные типы облаков. 
  • Для использования в динамическом агенте настроим авторизацию. Настроить Jenkins - Credentials - System - Global credentials 
  • Выбрать тип Secret text, в поле Secret вставляем сохраненный токен, ID и Description обычно одинаковый.

 jenkins_k8s_2.JPG

  • Добавляем Cloud. Name это имя, любое. Kubernetes URL - адрес кластера, по которому Jenkins может подключиться. Credentials - созданный на предыдущем шаге.

jenkins_k8s_3.JPG

  • Справа есть кнопка Test connection Обязательно проверить соединение.
  • Добавить стоит только адрес Jenkins сервера и Web Socket. Все остальное по умолчанию.

 jenkins_k8s_4.JPG

  • Настройка основы для динамического Jenkins клиента завершена.