# OpenShift - Tekton {{#include ../../../banners/hacktricks-training.md}} **Originalni autor ove stranice je** [**Haroun**](https://www.linkedin.com/in/haroun-al-mounayar-571830211) ### Šta je tekton Prema dokumentaciji: _Tekton je moćan i fleksibilan open-source okvir za kreiranje CI/CD sistema, omogućavajući programerima da grade, testiraju i implementiraju aplikacije na različitim cloud provajderima i lokalnim sistemima._ I Jenkins i Tekton se mogu koristiti za testiranje, izgradnju i implementaciju aplikacija, međutim Tekton je Cloud Native. Sa Tekton-om, sve je predstavljeno YAML datotekama. Programeri mogu kreirati Prilagođene Resurse (CR) tipa `Pipelines` i odrediti više `Tasks` koje žele da izvrše. Da bi se pokrenuo Pipeline, moraju se kreirati resursi tipa `PipelineRun`. Kada je tekton instaliran, servisni nalog (sa) pod nazivom pipeline se kreira u svakoj namespaces. Kada se Pipeline pokrene, pod će biti pokrenut koristeći ovaj sa pod nazivom `pipeline` da izvrši zadatke definisane u YAML datoteci. {{#ref}} https://tekton.dev/docs/getting-started/pipelines/ {{#endref}} ### Mogućnosti servisnog naloga Pipeline Podrazumevano, servisni nalog pipeline može koristiti `pipelines-scc` mogućnost. To je zbog globalne podrazumevane konfiguracije tekton-a. U stvari, globalna konfiguracija tekton-a je takođe YAML u openshift objektu pod nazivom `TektonConfig` koji se može videti ako imate neke uloge čitaoca u klasteru. ```yaml apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: ... ... platforms: openshift: scc: default: "pipelines-scc" ``` U bilo kojem namespace-u, ako možete dobiti token servisnog naloga pipeline-a, moći ćete da koristite `pipelines-scc`. ### Problemi sa konfiguracijom Problem je u tome što je podrazumevani scc koji servisni nalog pipeline-a može koristiti pod kontrolom korisnika. To se može uraditi korišćenjem oznake u definiciji namespace-a. Na primer, ako mogu da kreiram namespace sa sledećom yaml definicijom: ```yaml apiVersion: v1 kind: Namespace metadata: name: test-namespace annotations: operator.tekton.dev/scc: privileged ``` Tekton operator će dati servisnom nalogu pipeline-a u `test-namespace` mogućnost korišćenja scc privileged. Ovo će omogućiti montiranje čvora. ### Rešenje Tekton dokumenti o tome kako ograničiti preklapanje scc dodavanjem oznake u `TektonConfig` objektu. {{#ref}} https://tekton.dev/docs/operator/sccconfig/ {{#endref}} Ova oznaka se zove `max-allowed` ```yaml apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config spec: ... ... platforms: openshift: scc: default: "restricted-v2" maxAllowed: "privileged" ``` {{#include ../../../banners/hacktricks-training.md}}