OpenShift - Jenkins

L'autore originale di questa pagina è Fares

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

Avvertenza

Un'istanza di Jenkins può essere implementata sia in un cluster Openshift che in un cluster Kubernetes. A seconda del contesto, potrebbe essere necessario adattare eventuali payload, yaml o tecniche mostrate. Per ulteriori informazioni sull'attacco a Jenkins, è possibile consultare questa pagina

Prerequisiti

1a. Accesso utente in un'istanza di Jenkins OPPURE 1b. Accesso utente con permessi di scrittura a un repository SCM in cui viene attivata una build automatica dopo un push/fusione

Come funziona

Fondamentalmente, quasi tutto ciò che avviene dietro le quinte funziona allo stesso modo di un'istanza regolare di Jenkins in esecuzione in una VM. La differenza principale è l'architettura complessiva e il modo in cui le build sono 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 quindi delegata a un agente/schiavo/lavoratore. In questo contesto, il nodo master è solo un pod regolare in esecuzione in un namespace (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 di solito viene eseguita all'interno di un pod, utilizzando un modello di pod predefinito definito dagli amministratori di Jenkins.

Attivazione di una build

Hai diverse modalità principali per attivare una build come:

  1. Hai accesso all'interfaccia utente di Jenkins

Un modo molto facile e conveniente è utilizzare la funzionalità di Riproduzione di una build esistente. Ti consente di riprodurre una build eseguita in precedenza consentendoti 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 build attivate se hai abbastanza permessi.

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

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

Sovrascrittura YAML del Pod di Build di Jenkins

OpenShift - Jenkins Build Pod Override

Last updated