OpenShift - Jenkins

Reading time: 2 minutes

L'autore originale di questa pagina è Fares

Questa pagina fornisce alcuni suggerimenti su come attaccare un'istanza di Jenkins in esecuzione in un cluster Openshift (o Kubernetes)

Disclaimer

Un'istanza di Jenkins può essere distribuita sia in un cluster Openshift che in un cluster Kubernetes. A seconda del tuo contesto, potresti dover adattare qualsiasi payload, yaml o tecnica mostrata. Per ulteriori informazioni su come attaccare Jenkins, puoi dare un'occhiata a questa pagina

Prerequisiti

1a. Accesso utente in un'istanza di Jenkins OPPURE 1b. Accesso utente con permesso di scrittura a un repository SCM dove viene attivata una build automatizzata dopo un push/merge

Come funziona

Fondamentalmente, quasi tutto ciò che avviene dietro le quinte funziona allo stesso modo di un'istanza di Jenkins regolare in esecuzione in una VM. La principale differenza è l'architettura complessiva e come le build vengono gestite all'interno di un cluster openshift (o kubernetes).

Build

Quando viene attivata una build, viene prima gestita/orchestrata dal nodo master di Jenkins e poi delegata a un agente/schiavo/lavoratore. In questo contesto, il nodo master è semplicemente un pod regolare in esecuzione in uno spazio dei nomi (che potrebbe essere diverso da quello in cui vengono eseguiti i lavoratori). Lo stesso vale per i lavoratori/schiavi, tuttavia vengono distrutti una volta che la build è terminata, mentre il master rimane sempre attivo. La tua build viene solitamente eseguita all'interno di un pod, utilizzando un modello di pod predefinito definito dagli amministratori di Jenkins.

Attivazione di una build

Hai diversi modi principali per attivare una build, come ad esempio:

  1. Hai accesso all'interfaccia utente di Jenkins

Un modo molto semplice e conveniente è utilizzare la funzionalità Replay di una build esistente. Ti consente di ripetere una build precedentemente eseguita mentre ti permette di aggiornare lo script groovy. Questo richiede privilegi su una cartella di Jenkins e una pipeline predefinita. Se hai bisogno di essere furtivo, puoi eliminare le tue build attivate se hai abbastanza permessi.

  1. Hai accesso in scrittura allo SCM e le build automatizzate sono configurate tramite webhook

Puoi semplicemente modificare uno script di build (come Jenkinsfile), fare commit e push (eventualmente creare una PR se le build vengono attivate solo sui merge delle PR). Tieni presente che questo percorso è molto rumoroso e richiede privilegi elevati per pulire le tue tracce.

Override YAML del Pod di Build di Jenkins

OpenShift - Jenkins Build Pod Override