OpenShift - Tekton
Last updated
Last updated
L'autore originale di questa pagina è Haroun
Secondo la documentazione: Tekton è un potente e flessibile framework open-source per la creazione di sistemi CI/CD, che consente agli sviluppatori di costruire, testare e distribuire su fornitori di cloud e sistemi on-premise. Sia Jenkins che Tekton possono essere utilizzati per testare, costruire e distribuire applicazioni, tuttavia Tekton è Cloud Native.
Con Tekton tutto è rappresentato da file YAML. Gli sviluppatori possono creare Risorse Personalizzate (CR) di tipo Pipelines
e specificare più Tasks
in esse che desiderano eseguire. Per eseguire una Pipeline devono essere create risorse di tipo PipelineRun
.
Quando tekton è installato, viene creata un'account di servizio (sa) chiamata pipeline in ogni namespace. Quando una Pipeline viene eseguita, verrà generato un pod utilizzando questo sa chiamato pipeline
per eseguire i task definiti nel file YAML.
Per impostazione predefinita, l'account di servizio pipeline può utilizzare la capacità pipelines-scc
. Questo è dovuto alla configurazione predefinita globale di tekton. In realtà, la configurazione globale di tekton è anch'essa un YAML in un oggetto openshift chiamato TektonConfig
che può essere visualizzato se si hanno alcuni ruoli di lettura nel cluster.
In qualsiasi namespace, se riesci a ottenere il token del service account della pipeline, sarai in grado di utilizzare pipelines-scc
.
Il problema è che il scc predefinito che il service account della pipeline può utilizzare è controllabile dall'utente. Questo può essere fatto utilizzando un'etichetta nella definizione del namespace. Ad esempio, se posso creare un namespace con la seguente definizione yaml:
L'operatore tekton darà all'account di servizio della pipeline in test-namespace
la possibilità di utilizzare lo scc privilegiato. Questo permetterà il montaggio del nodo.
I documenti di Tekton su come limitare l'override dello scc aggiungendo un'etichetta nell'oggetto TektonConfig
.
Questa etichetta si chiama max-allowed