OpenShift - Tekton
Last updated
Last updated
The original author of this page is Haroun
According to the doc: Tekton to potężny i elastyczny framework open-source do tworzenia systemów CI/CD, umożliwiający deweloperom budowanie, testowanie i wdrażanie aplikacji w różnych dostawcach chmury oraz na systemach lokalnych. Zarówno Jenkins, jak i Tekton mogą być używane do testowania, budowania i wdrażania aplikacji, jednak Tekton jest natywny dla chmury.
With Tekton everything is represented by YAML files. Deweloperzy mogą tworzyć Zasoby Niestandardowe (CR) typu Pipelines
i określać w nich wiele Tasks
, które chcą uruchomić. Aby uruchomić Pipeline, muszą zostać utworzone zasoby typu PipelineRun
.
When tekton is installed a service account (sa) called pipeline is created in every namespace. Gdy Pipeline jest uruchamiany, zostanie utworzony pod przy użyciu tego sa o nazwie pipeline
, aby uruchomić zadania zdefiniowane w pliku YAML.
By default, the pipeline service account can use the pipelines-scc
capability. Domyślnie konto usługi pipeline może korzystać z możliwości pipelines-scc
. To wynika z globalnej domyślnej konfiguracji tekton. W rzeczywistości globalna konfiguracja tekton jest również YAML w obiekcie openshift o nazwie TektonConfig
, który można zobaczyć, jeśli masz pewne role czytelnicze w klastrze.
W dowolnej przestrzeni nazw, jeśli możesz uzyskać token konta serwisowego pipeline, będziesz mógł użyć pipelines-scc
.
Problem polega na tym, że domyślna scc, którą może używać konto serwisowe pipeline, jest kontrolowana przez użytkownika. Można to zrobić za pomocą etykiety w definicji przestrzeni nazw. Na przykład, jeśli mogę utworzyć przestrzeń nazw z następującą definicją yaml:
Operator tekton przyzna kontu usługi pipeline w test-namespace
możliwość używania scc privileged. To pozwoli na montowanie węzła.
Dokumenty Tekton opisują, jak ograniczyć nadpisywanie scc, dodając etykietę w obiekcie TektonConfig
.
Ta etykieta nazywa się max-allowed