Tekton als Kubernetes-natives CI/CD-Framework. Tasks, Pipelines, Triggers und Integration mit dem Oekosystem.
Was ist Tekton¶
Tekton ist ein Open-Source-CI/CD-Framework, das auf Kubernetes CRDs basiert. Jeder Pipeline-Schritt laeuft als Container in einem Pod.
- Task – Sequenz von Schritten in einem Pod
- Pipeline – Orchestrierung von Tasks mit Abhaengigkeiten
- PipelineRun – Instanz eines Pipeline-Laufs
- Trigger – Pipeline-Ausfuehrung basierend auf einem Event
Task Definition¶
apiVersion: tekton.dev/v1
kind: Task
metadata:
name: build-and-push
spec:
params:
- name: IMAGE
type: string
workspaces:
- name: source
steps:
- name: build
image: gcr.io/kaniko-project/executor:latest
args:
- --destination=$(params.IMAGE)
- --context=$(workspaces.source.path)
- --cache=true
Pipeline¶
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: ci-pipeline
spec:
workspaces:
- name: shared-workspace
tasks:
- name: fetch-source
taskRef:
name: git-clone
workspaces:
- name: output
workspace: shared-workspace
- name: build
taskRef:
name: build-and-push
runAfter: [fetch-source]
params:
- name: IMAGE
value: registry.example.com/app:latest
workspaces:
- name: source
workspace: shared-workspace
Triggers¶
Tekton Triggers starten Pipelines basierend auf Webhooks.
apiVersion: triggers.tekton.dev/v1beta1
kind: EventListener
metadata:
name: github-listener
spec:
triggers:
- name: github-push
interceptors:
- ref:
name: github
params:
- name: eventTypes
value: [push]
bindings:
- ref: github-binding
template:
ref: pipeline-template
Zusammenfassung¶
Tekton bietet Kubernetes-natives CI/CD mit vollstaendiger Isolation der Schritte in Containern. Ideal fuer Teams, die CI/CD als Teil des K8s-Oekosystems wollen.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.