# OpenShift - Jenkins

**Originalni autor ove stranice je** [**Fares**](https://www.linkedin.com/in/fares-siala/)

Ova stranica daje nekoliko smernica o tome kako možete napasti Jenkins instancu koja radi u Openshift (ili Kubernetes) klasteru.

## Odricanje od odgovornosti

Jenkins instanca može biti postavljena u Openshift ili Kubernetes klasteru. U zavisnosti od vašeg konteksta, možda ćete morati da prilagodite bilo koji prikazani payload, yaml ili tehniku. Za više informacija o napadu na Jenkins možete pogledati [ovu stranicu](../../../pentesting-ci-cd/jenkins-security/).

## Preduslovi

1a. Korisnički pristup u Jenkins instanci ILI 1b. Korisnički pristup sa pravima pisanja na SCM repozitorijumu gde se automatska izgradnja pokreće nakon push/merge.

## Kako to funkcioniše

Fundamentalno, gotovo sve iza scene funkcioniše isto kao i redovna Jenkins instanca koja radi u VM-u. Glavna razlika je u ukupnoj arhitekturi i načinu na koji se izgradnje upravljaju unutar Openshift (ili Kubernetes) klastera.

### Izgradnje

Kada se izgradnja pokrene, prvo njome upravlja/orchestrira Jenkins master čvor, a zatim se delegira agentu/slavi/radniku. U ovom kontekstu, master čvor je samo redovan pod koji radi u namespace-u (koji može biti različit od onog gde radnici rade). Isto važi i za radnike/slave, međutim oni se uništavaju kada se izgradnja završi, dok master uvek ostaje aktivan. Vaša izgradnja se obično pokreće unutar poda, koristeći pod šablon koji su definisali Jenkins administratori.

### Pokretanje izgradnje

Imate više glavnih načina za pokretanje izgradnje, kao što su:

1. Imate UI pristup Jenkins-u

Veoma lak i praktičan način je korišćenje Replay funkcionalnosti postojeće izgradnje. Omogućava vam da ponovo pokrenete prethodno izvršenu izgradnju dok vam omogućava da ažurirate groovy skriptu. Ovo zahteva privilegije na Jenkins folderu i unapred definisanu pipeline. Ako trebate biti diskretni, možete obrisati svoje pokrenute izgradnje ako imate dovoljno prava.

2. Imate pristup za pisanje na SCM i automatske izgradnje su konfigurirane putem webhook-a

Možete jednostavno urediti skriptu za izgradnju (kao što je Jenkinsfile), commit-ovati i push-ovati (eventualno kreirati PR ako se izgradnje pokreću samo na PR merge-ima). Imajte na umu da je ovaj put veoma bučan i zahteva povišene privilegije da biste očistili svoje tragove.

## Jenkins Build Pod YAML override

{{#ref}}
openshift-jenkins-build-overrides.md
{{#endref}}
