OpenShift - Tekton

Reading time: 2 minutes

Mwandishi wa awali wa ukurasa huu ni Haroun

Tekton ni nini

Kulingana na hati: Tekton ni mfumo wenye nguvu na rahisi wa chanzo wazi wa kuunda mifumo ya CI/CD, ikiruhusu waendelezaji kujenga, kujaribu, na kupeleka katika watoa huduma wa wingu na mifumo ya ndani. Jenkins na Tekton zinaweza kutumika kujaribu, kujenga na kupeleka programu, hata hivyo Tekton ni Cloud Native.

Kwa Tekton kila kitu kinawakilishwa na faili za YAML. Waendelezaji wanaweza kuunda Rasilimali za Kawaida (CR) za aina Pipelines na kubainisha Tasks nyingi ndani yao ambazo wanataka kuzitekeleza. Ili kutekeleza rasilimali ya Pipeline, rasilimali za aina PipelineRun lazima ziumbwe.

Wakati tekton imewekwa, akaunti ya huduma (sa) inayoitwa pipeline inaundwa katika kila namespace. Wakati Pipeline inatekelezwa, pod itazaliwa kwa kutumia hii sa inayoitwa pipeline ili kutekeleza kazi zilizofafanuliwa katika faili ya YAML.

Getting Started with Pipelines | Tekton

Uwezo wa akaunti ya huduma ya Pipeline

Kwa default, akaunti ya huduma ya pipeline inaweza kutumia uwezo wa pipelines-scc. Hii ni kutokana na usanidi wa kawaida wa kimataifa wa tekton. Kwa kweli, usanidi wa kimataifa wa tekton pia ni YAML katika kitu cha openshift kinachoitwa TektonConfig ambacho kinaweza kuonekana ikiwa una majukumu fulani ya msomaji katika klasta.

yaml
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "pipelines-scc"

Katika namespace yoyote, ikiwa unaweza kupata token ya akaunti ya huduma ya pipeline utaweza kutumia pipelines-scc.

Hitilafu

Tatizo ni kwamba scc ya default ambayo akaunti ya huduma ya pipeline inaweza kutumia inasimamiwa na mtumiaji. Hii inaweza kufanywa kwa kutumia lebo katika ufafanuzi wa namespace. Kwa mfano, ikiwa naweza kuunda namespace na ufafanuzi wa yaml ufuatao:

yaml
apiVersion: v1
kind: Namespace
metadata:
name: test-namespace
annotations:
operator.tekton.dev/scc: privileged

Mopereta wa tekton atampa akaunti ya huduma ya pipeline katika test-namespace uwezo wa kutumia scc privileged. Hii itaruhusu kuunganishwa kwa node.

Suluhisho

Nyaraka za Tekton kuhusu jinsi ya kupunguza uondoaji wa scc kwa kuongeza lebo katika kitu cha TektonConfig.

Tekton

Lebo hii inaitwa max-allowed

yaml
apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
name: config
spec:
...
...
platforms:
openshift:
scc:
default: "restricted-v2"
maxAllowed: "privileged"