{"id":5155,"date":"2022-04-02T09:00:06","date_gmt":"2022-04-02T09:00:06","guid":{"rendered":"https:\/\/nowa.sorigo.pl\/?p=5155"},"modified":"2025-08-07T08:54:45","modified_gmt":"2025-08-07T06:54:45","slug":"tekton-cloud-native-ci-cd","status":"publish","type":"post","link":"https:\/\/sorigo.pl\/pl\/blog\/tekton-cloud-native-ci-cd\/","title":{"rendered":"Tekton Cloud Native CI\/CD"},"content":{"rendered":"<h3 class=\"wp-block-heading\" id=\"what-is-tekton\">CZYM JEST TEKTON<\/h3>\n\n\n\n<p>Tekton to narz\u0119dzie do automatyzacji procesu CI\/CD natywnie zintegrowane z klastrem Kuberntes i dopasowane do specyfiki proces\u00f3w DevOps w obszarze Cloud (Cloud Native CI\/CD).<\/p>\n\n\n\n<p class=\"translation-block\">Projekt Tekton zosta\u0142 zainicjowany przez Google i jest projektem open-source. Z racji swojej uniwersalno\u015bci i otwartej architektury coraz bardziej zyskuje na popularno\u015bci i jest wykorzystywany m.in na platformach <strong>IBM Cloud, Open Shift oraz WMware Tanzu platforms<\/strong>.<\/p>\n\n\n\n<p>Z wykorzystaniem Tektona mo\u017cemy automatyzowa\u0107 procesy CI\/CD w obszarze budowania, testowania i wdra\u017cania mikrous\u0142ug na klastrze Kubernetes. Skonfigurowane w Tektonie procesy bed\u0105 uruchamiane na klastrze K8S, a konfiguracja tego procesu b\u0119dzie przechowywana w obiektach Kubernetes. Pliki \u017ar\u00f3d\u0142owe takiej konfiguracje b\u0119d\u0105 mia\u0142y posta\u0107 plik\u00f3w yaml i mog\u0105 by\u0107 wersjonowane w repozytorium kodu.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"tekton-pipelines\">TEKTON PIPELINES<\/h3>\n\n\n\n<p>Tekton podzielony zosta\u0142 na modu\u0142y. Ka\u017cdy obszar\u00f3w funkcjonalnych wymaga instalacji na klastrze K8S komponent\u00f3w z odpowiedniego modu\u0142u.Tekton podzielony zosta\u0142 na modu\u0142y. Ka\u017cdy obszar\u00f3w funkcjonalnych wymaga instalacji na klastrze K8S komponent\u00f3w z odpowiedniego modu\u0142u.<\/p>\n\n\n\n<p>Tekton wykorzystuje Kubernetes Custom Resource Definitions rozszerzaj\u0105c dost\u0119pne API Kubernetes o nowe obiekty po zainstalowaniu Tektona na klastrze K8S. Obiekty opisujemy i parametryzujemy w plikach yaml a nast\u0119pnie komend\u0105 kubectl tworzymy ich reprezentacj\u0119 poprzez API na Klastrze w kontek\u015bcie wybranego kontekstu (namespace).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"663\" height=\"309\" src=\"https:\/\/nowa.sorigo.pl\/wp-content\/uploads\/2025\/05\/image.png\" alt=\"\" class=\"wp-image-5162\" srcset=\"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image.png 663w, https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-300x140.png 300w\" sizes=\"(max-width: 663px) 100vw, 663px\" \/><\/figure>\n\n\n\n<p>Fundamentem Tektona jest modu\u0142 Pipelines definiuj\u0105cy obiekty do budowy procesu CI\/CD. Definiuj\u0105c procesy mamy do dyspozycji kilka typ\u00f3w obiekt\u00f3w strukturalnych. Poni\u017cej w artykule opisane zostan\u0105 podstawowe z nich w celu zaprezentowania w jaki spos\u00f3b budowany jest proces CI\/CD w Tekton.<\/p>\n\n\n\n<p>Tekton podzielony zosta\u0142 na modu\u0142y. Ka\u017cdy obszar\u00f3w funkcjonalnych wymaga instalacji na klastrze K8S komponent\u00f3w z odpowiedniego modu\u0142u.Tekton podzielony zosta\u0142 na modu\u0142y. Ka\u017cdy obszar\u00f3w funkcjonalnych wymaga instalacji na klastrze K8S komponent\u00f3w z odpowiedniego modu\u0142u.<\/p>\n\n\n\n<p>Tekton wykorzystuje Kubernetes Custom Resource Definitions rozszerzaj\u0105c dost\u0119pne API Kubernetes o nowe obiekty po zainstalowaniu Tektona na klastrze K8S. Obiekty opisujemy i parametryzujemy w plikach yaml a nast\u0119pnie komend\u0105 kubectl tworzymy ich reprezentacj\u0119 poprzez API na Klastrze w kontek\u015bcie wybranego kontekstu (namespace).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"task\">Task<\/h4>\n\n\n\n<p>Obiekt tego typu opisuje definicj\u0119 pojedynczego zadania w procesie.<\/p>\n\n\n\n<p>Przyk\u0142adem takiego zadania mo\u017ce by\u0107 np. operacja zbudowania obrazu.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"294\" height=\"171\" src=\"https:\/\/nowa.sorigo.pl\/wp-content\/uploads\/2025\/05\/image-1.png\" alt=\"\" class=\"wp-image-5163\"\/><\/figure>\n\n\n\n<p>Podstawowymi atrybutami opisuj\u0105cymi ten typ obiektu go s\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>params<\/strong>&nbsp;\u2013 parametry z jakim wykonujemy zadanie np. \u015bcie\u017cka do pliku<\/li>\n\n\n\n<li><strong>inputs<\/strong>&nbsp;\u2013 zasoby wej\u015bciowe na kt\u00f3rych b\u0119dziemy operowa\u0107 okre\u015blone nazw\u0105 i typem zasobu np. repozytrum git<\/li>\n\n\n\n<li><strong>outputs<\/strong>&nbsp;\u2013 zasoby wyj\u015bciowe generowane przez zadanie okre\u015blone nazw\u0105 i typem np. typu obraz je\u017celi produktem naszego zadania b\u0119dzie obraz doker<\/li>\n\n\n\n<li><strong>steps<\/strong>&nbsp;\u2013 definicja jednego lub wi\u0119cej sekwencyjnych zada\u0144 ( krok\u00f3w) do wykonania. Kroki s\u0105 opisane poprzez wskazanie obrazu oraz okre\u015blenie z jakimi parametrami uruchomieniowymi nale\u017cy uruchomi\u0107 obraz w celu wykonania kroku<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Komendy i narz\u0119dzia z kt\u00f3rych b\u0119dziemy korzysta\u0107 w krokach musz\u0105 by\u0107 skonteneryzowane. Dzi\u0119ki takiemu podej\u015bciu wszystkie kroki zadania mog\u0105 by\u0107 wykonywane jako sekwencja zale\u017cnych od siebie proces\u00f3w uruchamianych na klastrze Kubernetes.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"211\" height=\"241\" src=\"https:\/\/nowa.sorigo.pl\/wp-content\/uploads\/2025\/05\/image-2.png\" alt=\"\" class=\"wp-image-5164\"\/><\/figure>\n\n\n\n<p>Podstawowymi atrybutami opisuj\u0105cymi ten typ obiektu go s\u0105:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>params<\/strong>&nbsp;\u2013 parametry z jakim wykonujemy zadanie np. \u015bcie\u017cka do pliku<\/li>\n\n\n\n<li><strong>inputs<\/strong>&nbsp;\u2013 zasoby wej\u015bciowe na kt\u00f3rych b\u0119dziemy operowa\u0107 okre\u015blone nazw\u0105 i typem zasobu np. repozytrum git<\/li>\n\n\n\n<li><strong>outputs<\/strong>&nbsp;\u2013 zasoby wyj\u015bciowe generowane przez zadanie okre\u015blone nazw\u0105 i typem np. typu obraz je\u017celi produktem naszego zadania b\u0119dzie obraz doker<\/li>\n\n\n\n<li><strong>steps<\/strong>&nbsp;\u2013 definicja jednego lub wi\u0119cej sekwencyjnych zada\u0144 ( krok\u00f3w) do wykonania. Kroki s\u0105 opisane poprzez wskazanie obrazu oraz okre\u015blenie z jakimi parametrami uruchomieniowymi nale\u017cy uruchomi\u0107 obraz w celu wykonania kroku<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p>Komendy i narz\u0119dzia z kt\u00f3rych b\u0119dziemy korzysta\u0107 w krokach musz\u0105 by\u0107 skonteneryzowane. Dzi\u0119ki takiemu podej\u015bciu wszystkie kroki zadania mog\u0105 by\u0107 wykonywane jako sekwencja zale\u017cnych od siebie proces\u00f3w uruchamianych na klastrze Kubernetes.<\/p>\n\n\n\n<p>Kroki mog\u0105 dodatkowo mie\u0107 zdefiniowane inne zasoby np. volume mount wskazuj\u0105cy na volumen do zamontowania do kontenera podczas uruchomienia zadania.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"pipelne\">Pipelne<\/h4>\n\n\n\n<p class=\"translation-block\">Kolejnym bazowym typem obiektu opisuj\u0105cym procesy w Tekton niezb\u0119dnym do zrozumienia zasady jego dzia\u0142ania jest <em>Pipeline<\/em>.<\/p>\n\n\n\n<p>Definiuje on powi\u0105zanie sekwencji zada\u0144 w z\u0142o\u017cony proces wielozadaniowy proces (np. tagowanie , budowanie wersji, zapis obrazu w repozytorium, testy).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"173\" src=\"https:\/\/nowa.sorigo.pl\/wp-content\/uploads\/2025\/05\/image-3.png\" alt=\"\" class=\"wp-image-5165\" srcset=\"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-3.png 741w, https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-3-300x70.png 300w\" sizes=\"(max-width: 741px) 100vw, 741px\" \/><\/figure>\n\n\n\n<p class=\"translation-block\">Zadania w ramach jednego <em>Pipeline<\/em> mo\u017cemy od siebie uzale\u017cnia\u0107 i wykonywa\u0107 sekwencyjnie lub r\u00f3wnolegle. Mo\u017cemy wykorzystywa\u0107 dane wyj\u015bciowe z jednego zadania jako dane wej\u015bciowe w innym. Mamy mo\u017cliwo\u015b\u0107 u\u017cywana warunk\u00f3w <em>Conditions<\/em> pod jakim dane zadanie ma zosta\u0107 wykonane.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"runs\">Runs<\/h4>\n\n\n\n<p class=\"translation-block\">W celu utworzenia procesu wykonawczego <em>Tasku<\/em> lub <em>Pipeline<\/em> musimy stworzy\u0107 jeden z obiekt\u00f3w typu <em>Runs<\/em>. Tekton daje nam do dyspozycji nast\u0119puj\u0105ce obiekty:<\/p>\n\n\n\n<p class=\"translation-block\"><strong>TaskRuns<\/strong>\u00a0\u2013 zawieraj\u0105cy konfiguracj\u0119 uruchomieniow\u0105 wcze\u015bniej zdefiniowanego zadania typu <em>Task<\/em> ( obiekt <em>Task<\/em> mo\u017ce by\u0107 tak\u017ce zdefiniowany bezpo\u015brednio w <em>TaskRun<\/em>) z okre\u015blonymi parametrami takimi jak: wej\u015bcie, wy\u015bcie oraz definicj\u0105 pe\u0142nego kontekstu i skutkuj\u0105cego uruchomieniem zadania w tak opisanym kontek\u015bcie na klastrze.<\/p>\n\n\n\n<p class=\"translation-block\"><strong>PipelineRun<\/strong>\u00a0\u2013 Analogicznie do <em>TaskRun<\/em> zawieraj\u0105cy opis parametr\u00f3w uruchomienia zdefiniowanego wcze\u015bniej <em>Pipleline<\/em> w okre\u015blonym kontek\u015bcie w tym tak\u017ce kontek\u015bcie konta serwisowego z okre\u015blonym kontekstem uprawnie\u0144 (parametr Service Account).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"444\" src=\"https:\/\/nowa.sorigo.pl\/wp-content\/uploads\/2025\/05\/image-4.png\" alt=\"\" class=\"wp-image-5167\" srcset=\"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-4.png 755w, https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-4-300x176.png 300w\" sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/figure>\n\n\n\n<p class=\"translation-block\">Do tworzenia definicji proces\u00f3w wykorzystywane s\u0105 dodatkowo obiekty wspomagaj\u0105ce definiowanie wsp\u00f3lnych kontekst\u00f3w dzia\u0142ania zadania jak <em>Workspace<\/em> czy <em>PipelineResource<\/em>. ( nie b\u0119dziemy ich tutaj szczeg\u00f3\u0142owo opisywa\u0107)<\/p>\n\n\n\n<p class=\"translation-block\">Implementuj\u0105c deklaratywny opis procesu opr\u00f3cz obiekt\u00f3w Tektona mamy do dyspozycji tak\u017ce standardowe obiekty K8S przydatne do parametryzacji takie jak <em>ConfigMaps<\/em> czy <em>Secrets<\/em>. Definiuj\u0105c procesy mo\u017cemy tak\u017ce okre\u015bla\u0107 w jaki spos\u00f3b ma by\u0107 on uruchamiane w kontek\u015bcie konfiguracji obiekt\u00f3w K8S naszym klastrze np. jaki typ poda ma by\u0107 wykorzystany do wykonania danego <em>Task<\/em> lub <em>Pipeline<\/em>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"console\">INICJOWANIE PROCES\u00d3W ZDARZENIAMI<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"309\" src=\"https:\/\/nowa.sorigo.pl\/wp-content\/uploads\/2022\/04\/image.png\" alt=\"\" class=\"wp-image-5663\" srcset=\"https:\/\/sorigo.pl\/wp-content\/uploads\/2022\/04\/image.png 661w, https:\/\/sorigo.pl\/wp-content\/uploads\/2022\/04\/image-300x140.png 300w, https:\/\/sorigo.pl\/wp-content\/uploads\/2022\/04\/image-18x8.png 18w\" sizes=\"(max-width: 661px) 100vw, 661px\" \/><\/figure>\n\n\n\n<p class=\"translation-block\">Do automatycznego (inicjowanego zaj\u015bciem konkretnego zdarzenia) uruchamiania proces\u00f3w zdefiniowanych w Tektonie s\u0142u\u017c\u0105 obiekty z obszaru <em>Triggers<\/em> tj.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>EventListener<\/strong><\/li>\n\n\n\n<li><strong>TriggerTemplate<\/strong><\/li>\n\n\n\n<li><strong>TriggerBinding<\/strong><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"translation-block\"><strong><em>EventListener<\/em><\/strong> definiuje obiekt na podstawie kt\u00f3rego Tekton utworzy us\u0142ug\u0119 umo\u017cliwiaj\u0105ca przekazywanie do niego (protoko\u0142em HTTP i obiektami JSON) zdarze\u0144. Opis takiej definicji b\u0119dzie zawiera\u0142 odniesienie do dw\u00f3ch wcze\u015bniej zdefiniowanych obiekt\u00f3w. Obiektu typu <strong><em>TrigerBinding<\/em><\/strong> opisuj\u0105cego w jaki spos\u00f3b komunikat wej\u015bciowy ma zosta\u0107 przetworzony na zbi\u00f3r parametr\u00f3w Tekton z obiektu JSON (TrigerBinding) aby Tekton m\u00f3g\u0142 przekaza\u0107 je dalej do TaskRuns i PipelineRuns. Definiuj\u0105c mapowanie mamy do dyspozycji JSON Path i mo\u017cemy mapowa\u0107 parametry z obiekt\u00f3w JSON.<\/p>\n\n\n\n<p class=\"translation-block\">Drugim odniesieniem jest wskazanie na wcze\u015bniej stworzony obiekt typu <strong><em>TempateTrigger<\/em><\/strong> opisuj\u0105cy w jaki spos\u00f3b Tekton ma zareagowa\u0107 na dostarczenie komunikatu ze zdarzeniem. Umo\u017cliwia to powi\u0105zanie odebrania zdarzenia z powo\u0142aniem instancji obiektu PiplineRun lub lub TaskRun skutkuj\u0105cego uruchomieniem konkretnego procesu w Tektonie.<\/p>\n\n\n\n<p class=\"translation-block\">Efektem utworzenia w obiektu <strong><em>Event Listener<\/em><\/strong> b\u0119dzie deployment przez Tekoton na klastrze us\u0142ugi umo\u017cliwiaj\u0105cej odebranie komunikat\u00f3w Http JSON oraz inicjowanie proces\u00f3w. Parametryzacja obiektu <strong><em>Event Listener<\/em><\/strong> umo\u017cliwia tak\u017ce zabezpieczenie dost\u0119pu us\u0142ugi oraz wp\u0142ywanie na specyfik\u0119 deploymentu na klastrze. Dodatkowo mamy do dyspozycji standardowe interceptory do komunikacji typu WebHook oraz komunikacji ze \u017ar\u00f3d\u0142ami komunikat\u00f3w takimi jak GitHub, GitLab, BitBucket.<\/p>\n\n\n\n<p class=\"translation-block\">Us\u0142ugi uruchomione po stworzeniu obiektu <strong><em>Event Listener<\/em><\/strong> s\u0105 udost\u0119pniane jako obiekty Kubernetes Service. W celu umo\u017cliwienia dost\u0119pu do nich z us\u0142ug poza klastrem (np. je\u017celi chcieliby\u015bmy zasubskrybowa\u0107 si\u0119 na zdarzenia z GitHub typu commit) musz\u0105 by\u0107 one wcze\u015bniej udost\u0119pnione za po\u015brednictwem Ingressa.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"console\">CONSOLE<\/h3>\n\n\n\n<p>Aby zarz\u0105dza\u0107 obiektami z poziomu konsoli webowej Tekton udost\u0119pnia komponent Tekton Dashboard.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"584\" src=\"https:\/\/nowa.sorigo.pl\/wp-content\/uploads\/2025\/05\/image-1024x584.jpeg\" alt=\"\" class=\"wp-image-5170\" srcset=\"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-1024x584.jpeg 1024w, https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-300x171.jpeg 300w, https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image-768x438.jpeg 768w, https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/image.jpeg 1440w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"translation-block\">Mo\u017cemy w niej tworzy\u0107 obiekty Teknona definiuj\u0105c proces oraz uruchamia\u0107 Task oraz Pipelines poprzez obiekty Runs. W konsoli widoczne s\u0105 logi z procesu oraz status poszczeg\u00f3lnych etap\u00f3w wykonania. Konsola jest niezale\u017cnym komponentem, kt\u00f3ry tak\u017ce nale\u017cy wcze\u015bniej zainstalowa\u0107 na klastrze.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"summary\">PODSUMOWANIE<\/h3>\n\n\n\n<p>Tekton to bardzo uniwersalne narz\u0119dzie do automatyzacji proces\u00f3w Cloud Native CI\/CD na klastrach Kubernetes. Mo\u017cemy budowa\u0107 i wdra\u017ca\u0107 us\u0142ugi na wiele niezale\u017cnych \u015brodowisk w Cloud i Multi-Cloud z zachowaniem mechanizm\u00f3w bezpiecze\u0144stwa i izolacji \u015brodowisk. Proces tworzony w Tektonie jest skompontentyzowany. Tekton to platforma elastyczna i mo\u017ce by\u0107 zintegrowany z innymi narz\u0119dziami CI\/CD kt\u00f3re ju\u017c posiadamy takimi jak np. Jenkins.<\/p>","protected":false},"excerpt":{"rendered":"<p>What is Tekton? How does it work and is it worth using?<\/p>","protected":false},"author":4,"featured_media":5156,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tekton Cloud Native CI\/CD - Sorigo<\/title>\n<meta name=\"description\" content=\"What is Tekton? How does it work and is it worth using?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sorigo.pl\/pl\/blog\/tekton-cloud-native-ci-cd\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tekton Cloud Native CI\/CD - Sorigo\" \/>\n<meta property=\"og:description\" content=\"What is Tekton? How does it work and is it worth using?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sorigo.pl\/pl\/blog\/tekton-cloud-native-ci-cd\/\" \/>\n<meta property=\"og:site_name\" content=\"Sorigo\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/sorigopl\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-02T09:00:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-07T06:54:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/medium_tekton_96dd8b3735.png\" \/>\n\t<meta property=\"og:image:width\" content=\"750\" \/>\n\t<meta property=\"og:image:height\" content=\"414\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sorigo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sorigo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/\"},\"author\":{\"name\":\"Sorigo\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#\\\/schema\\\/person\\\/abe7678ecf140f10e910bf08fb49f3c1\"},\"headline\":\"Tekton Cloud Native CI\\\/CD\",\"datePublished\":\"2022-04-02T09:00:06+00:00\",\"dateModified\":\"2025-08-07T06:54:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/\"},\"wordCount\":1485,\"publisher\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sorigo.pl\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/medium_tekton_96dd8b3735.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pl-PL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/\",\"url\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/\",\"name\":\"Tekton Cloud Native CI\\\/CD - Sorigo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sorigo.pl\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/medium_tekton_96dd8b3735.png\",\"datePublished\":\"2022-04-02T09:00:06+00:00\",\"dateModified\":\"2025-08-07T06:54:45+00:00\",\"description\":\"What is Tekton? How does it work and is it worth using?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sorigo.pl\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/medium_tekton_96dd8b3735.png\",\"contentUrl\":\"https:\\\/\\\/sorigo.pl\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/medium_tekton_96dd8b3735.png\",\"width\":750,\"height\":414},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/blog\\\/tekton-cloud-native-ci-cd\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sorigo.pl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tekton Cloud Native CI\\\/CD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#website\",\"url\":\"https:\\\/\\\/sorigo.pl\\\/\",\"name\":\"Sorigo\",\"description\":\"Embracing Digital Solutions\",\"publisher\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sorigo.pl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#organization\",\"name\":\"Sorigo\",\"url\":\"https:\\\/\\\/sorigo.pl\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sorigo.pl\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/logo-new.svg\",\"contentUrl\":\"https:\\\/\\\/sorigo.pl\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/logo-new.svg\",\"width\":1920,\"height\":650,\"caption\":\"Sorigo\"},\"image\":{\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/sorigopl\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/sorigo\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sorigo.pl\\\/#\\\/schema\\\/person\\\/abe7678ecf140f10e910bf08fb49f3c1\",\"name\":\"Sorigo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47d8872f99600e51343e77a4ef411fff8333ee9781d29d9f8ec7c636c957c748?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47d8872f99600e51343e77a4ef411fff8333ee9781d29d9f8ec7c636c957c748?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/47d8872f99600e51343e77a4ef411fff8333ee9781d29d9f8ec7c636c957c748?s=96&d=mm&r=g\",\"caption\":\"Sorigo\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tekton Cloud Native CI\/CD - Sorigo","description":"What is Tekton? How does it work and is it worth using?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sorigo.pl\/pl\/blog\/tekton-cloud-native-ci-cd\/","og_locale":"pl_PL","og_type":"article","og_title":"Tekton Cloud Native CI\/CD - Sorigo","og_description":"What is Tekton? How does it work and is it worth using?","og_url":"https:\/\/sorigo.pl\/pl\/blog\/tekton-cloud-native-ci-cd\/","og_site_name":"Sorigo","article_publisher":"https:\/\/www.facebook.com\/sorigopl\/","article_published_time":"2022-04-02T09:00:06+00:00","article_modified_time":"2025-08-07T06:54:45+00:00","og_image":[{"width":750,"height":414,"url":"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/medium_tekton_96dd8b3735.png","type":"image\/png"}],"author":"Sorigo","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"Sorigo","Szacowany czas czytania":"8 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/#article","isPartOf":{"@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/"},"author":{"name":"Sorigo","@id":"https:\/\/sorigo.pl\/#\/schema\/person\/abe7678ecf140f10e910bf08fb49f3c1"},"headline":"Tekton Cloud Native CI\/CD","datePublished":"2022-04-02T09:00:06+00:00","dateModified":"2025-08-07T06:54:45+00:00","mainEntityOfPage":{"@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/"},"wordCount":1485,"publisher":{"@id":"https:\/\/sorigo.pl\/#organization"},"image":{"@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/#primaryimage"},"thumbnailUrl":"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/medium_tekton_96dd8b3735.png","articleSection":["Uncategorized"],"inLanguage":"pl-PL"},{"@type":"WebPage","@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/","url":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/","name":"Tekton Cloud Native CI\/CD - Sorigo","isPartOf":{"@id":"https:\/\/sorigo.pl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/#primaryimage"},"image":{"@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/#primaryimage"},"thumbnailUrl":"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/medium_tekton_96dd8b3735.png","datePublished":"2022-04-02T09:00:06+00:00","dateModified":"2025-08-07T06:54:45+00:00","description":"What is Tekton? How does it work and is it worth using?","breadcrumb":{"@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/#primaryimage","url":"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/medium_tekton_96dd8b3735.png","contentUrl":"https:\/\/sorigo.pl\/wp-content\/uploads\/2025\/05\/medium_tekton_96dd8b3735.png","width":750,"height":414},{"@type":"BreadcrumbList","@id":"https:\/\/sorigo.pl\/blog\/tekton-cloud-native-ci-cd\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sorigo.pl\/"},{"@type":"ListItem","position":2,"name":"Tekton Cloud Native CI\/CD"}]},{"@type":"WebSite","@id":"https:\/\/sorigo.pl\/#website","url":"https:\/\/sorigo.pl\/","name":"Sorigo","description":"Wdra\u017camy rozwi\u0105zania cyfrowe","publisher":{"@id":"https:\/\/sorigo.pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sorigo.pl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/sorigo.pl\/#organization","name":"Sorigo","url":"https:\/\/sorigo.pl\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/sorigo.pl\/#\/schema\/logo\/image\/","url":"https:\/\/sorigo.pl\/wp-content\/uploads\/2026\/01\/logo-new.svg","contentUrl":"https:\/\/sorigo.pl\/wp-content\/uploads\/2026\/01\/logo-new.svg","width":1920,"height":650,"caption":"Sorigo"},"image":{"@id":"https:\/\/sorigo.pl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/sorigopl\/","https:\/\/www.linkedin.com\/company\/sorigo"]},{"@type":"Person","@id":"https:\/\/sorigo.pl\/#\/schema\/person\/abe7678ecf140f10e910bf08fb49f3c1","name":"Sorigo","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/47d8872f99600e51343e77a4ef411fff8333ee9781d29d9f8ec7c636c957c748?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/47d8872f99600e51343e77a4ef411fff8333ee9781d29d9f8ec7c636c957c748?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/47d8872f99600e51343e77a4ef411fff8333ee9781d29d9f8ec7c636c957c748?s=96&d=mm&r=g","caption":"Sorigo"}}]}},"_links":{"self":[{"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/posts\/5155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/comments?post=5155"}],"version-history":[{"count":10,"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/posts\/5155\/revisions"}],"predecessor-version":[{"id":5664,"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/posts\/5155\/revisions\/5664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/media\/5156"}],"wp:attachment":[{"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/media?parent=5155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/categories?post=5155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sorigo.pl\/pl\/wp-json\/wp\/v2\/tags?post=5155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}