This repo contains Terraform modules for managing Tekton Pipelines in Kubernetes.
See dmikalova/infrastructure for a fully configured example deployed with Terragrunt.
- Create opinionated and reusable per language CI/CD pipelines.
- Current workflow is for JavaScript web apps. Workflows for Go, Terraform modules, and git-xargs are planned.
- Includes reusable pipelines with tasks for testing, building, and deployment.
- Includes tasks to run passed in scripts:
- Tests with unit test, end-to-end test, lint, format, and version tag generation steps.
- Container builds with Kaniko.
- GitOps deployments done by updating an infrastructure repo with the version tag, committing and pushing the changes, and running Terragrunt plan and apply.
- Modules wrapping Tekton CRDs allow for complete customization. Wrappers are fully typed in Terraform with no YAML.
- Webhook endpoints are exposed through Traefik Ingress Routes. Webhooks URLs and tokens are output in Terraform Remote State. This can be consumed by other Terraform modules that manage repo webhooks.
- Janitor cronjob automatically cleans up old and failed Tekton Runs, releasing Kubernetes Persistent Volume Claims.