feat: add Tekton Pipelines for CI/CD orchestration #46

Merged
rock merged 1 commits from feat/tekton-pipelines-ci into main 2026-09-13 05:48:09 +00:00
Member

Install Tekton Pipelines (CNCF CI/CD) via ArgoCD for pre-merge integration testing.

What This Does

Adds Tekton Pipelines to the homelab cluster infrastructure for orchestrating CI/CD workflows:

  1. Tekton Pipelines Installation

    • Kubernetes-native CI/CD (CNCF project)
    • Task and Pipeline CRDs for workflow definitions
    • PipelineRun for ephemeral test execution
    • Webhook support for event-driven triggers
  2. ArgoCD Management

    • ArgoCD Application manages Tekton installation
    • Automatic updates from upstream
    • GitOps-driven (everything in git)
    • Wave 06 deployment (after networking, before apps)
  3. Integration with homelab-frontend

    • CI creates Tekton PipelineRun
    • Tests execute in cluster
    • Results flow back to CI
    • Image promotion only on pass

Architecture

Cluster Infrastructure (homelab):
  └── Tekton Pipelines (Wave 06 - CI/CD)
      ├── Task: Run integration tests
      ├── Pipeline: Orchestrate workflows
      └── PipelineRun: Execute on demand

Application: homelab-frontend
  └── CI Workflow (.gitea/workflows/ci.yaml)
      ├── Build image
      ├── Create PipelineRun
      ├── Wait for completion
      └── Promote to :latest (if pass)

Files Added

  • k8s/infra/tekton/namespace.yaml - Tekton namespace
  • k8s/infra/tekton/kustomization.yaml - Release manifest reference
  • k8s/argocd/apps/06-ci-cd.yaml - ArgoCD Application (Wave 06)
  • k8s/argocd/projects/homelab-project.yaml - Added Tekton repos

Wave Ordering

Wave 06 (CI/CD) is deployed in proper order:

  • Wave 00-01: ArgoCD bootstrap
  • Wave 05: Networking (ingress, etc.)
  • Wave 06: CI/CD (Tekton Pipelines) ← NEW
  • Wave 10+: Storage, logging, monitoring
  • Wave 40+: Data services (databases)
  • Wave 50+: Applications (API gateway, etc.)

Benefits

Kubernetes-Native: Uses standard K8s CRDs (Task, Pipeline, PipelineRun)
GitOps: Everything in git, managed by ArgoCD, no manual kubectl
Pre-Merge Testing: Tests must pass before code deploys
Observable: Logs, status, results tracking
Secure: Non-root containers, resource limits, RBAC
CNCF-Standard: Industry-proven Tekton project
Scalable: Can add more tests/tasks without complexity

Integration with PR #25

This homelab PR works with homelab-frontend PR #25:

  • homelab (this): Installs Tekton infrastructure
  • homelab-frontend #25: Integrates tests with Tekton

Together they form complete GitOps CI/CD pipeline.

Testing After Merge

  1. ArgoCD syncs this repo
  2. Wave 06 deployment triggered
  3. Tekton Pipelines installed to cluster
  4. homelab-frontend PR #25 can merge
  5. First code push triggers integration tests

Review Checklist

  • Tekton namespace created properly
  • ArgoCD Application configuration correct
  • Wave 06 ordering makes sense
  • Project repos include Tekton
  • Integration with homelab-frontend understood
  • No hardcoded values
  • Documentation is clear
Install Tekton Pipelines (CNCF CI/CD) via ArgoCD for pre-merge integration testing. ## What This Does Adds Tekton Pipelines to the homelab cluster infrastructure for orchestrating CI/CD workflows: 1. **Tekton Pipelines Installation** - Kubernetes-native CI/CD (CNCF project) - Task and Pipeline CRDs for workflow definitions - PipelineRun for ephemeral test execution - Webhook support for event-driven triggers 2. **ArgoCD Management** - ArgoCD Application manages Tekton installation - Automatic updates from upstream - GitOps-driven (everything in git) - Wave 06 deployment (after networking, before apps) 3. **Integration with homelab-frontend** - CI creates Tekton PipelineRun - Tests execute in cluster - Results flow back to CI - Image promotion only on pass ## Architecture ``` Cluster Infrastructure (homelab): └── Tekton Pipelines (Wave 06 - CI/CD) ├── Task: Run integration tests ├── Pipeline: Orchestrate workflows └── PipelineRun: Execute on demand Application: homelab-frontend └── CI Workflow (.gitea/workflows/ci.yaml) ├── Build image ├── Create PipelineRun ├── Wait for completion └── Promote to :latest (if pass) ``` ## Files Added - `k8s/infra/tekton/namespace.yaml` - Tekton namespace - `k8s/infra/tekton/kustomization.yaml` - Release manifest reference - `k8s/argocd/apps/06-ci-cd.yaml` - ArgoCD Application (Wave 06) - `k8s/argocd/projects/homelab-project.yaml` - Added Tekton repos ## Wave Ordering Wave 06 (CI/CD) is deployed in proper order: - Wave 00-01: ArgoCD bootstrap - Wave 05: Networking (ingress, etc.) - **Wave 06: CI/CD (Tekton Pipelines)** ← NEW - Wave 10+: Storage, logging, monitoring - Wave 40+: Data services (databases) - Wave 50+: Applications (API gateway, etc.) ## Benefits ✓ **Kubernetes-Native**: Uses standard K8s CRDs (Task, Pipeline, PipelineRun) ✓ **GitOps**: Everything in git, managed by ArgoCD, no manual kubectl ✓ **Pre-Merge Testing**: Tests must pass before code deploys ✓ **Observable**: Logs, status, results tracking ✓ **Secure**: Non-root containers, resource limits, RBAC ✓ **CNCF-Standard**: Industry-proven Tekton project ✓ **Scalable**: Can add more tests/tasks without complexity ## Integration with PR #25 This homelab PR works with homelab-frontend PR #25: - homelab (this): Installs Tekton infrastructure - homelab-frontend #25: Integrates tests with Tekton Together they form complete GitOps CI/CD pipeline. ## Testing After Merge 1. ArgoCD syncs this repo 2. Wave 06 deployment triggered 3. Tekton Pipelines installed to cluster 4. homelab-frontend PR #25 can merge 5. First code push triggers integration tests ## Review Checklist - [ ] Tekton namespace created properly - [ ] ArgoCD Application configuration correct - [ ] Wave 06 ordering makes sense - [ ] Project repos include Tekton - [ ] Integration with homelab-frontend understood - [ ] No hardcoded values - [ ] Documentation is clear
poimen added 1 commit 2026-09-13 05:46:18 +00:00
Install Tekton Pipelines via ArgoCD for Kubernetes-native CI/CD:

COMPONENTS:
- Tekton Pipelines: CNCF-standard test orchestration
- Task/Pipeline CRDs: Reusable workflow definitions
- PipelineRun: Ephemeral execution instances
- ArgoCD Application: GitOps-managed installation

INTEGRATION:
- homelab-frontend CI triggers PipelineRun via Kubernetes API
- Tests run in cluster against actual services
- Results flow back to CI for pass/fail decisions
- Image promotion only on test success

FILES:
- k8s/infra/tekton/: Tekton infrastructure setup
  - namespace.yaml: tekton-pipelines namespace
  - kustomization.yaml: Release manifest reference
- k8s/argocd/apps/06-ci-cd.yaml: ArgoCD Application
- k8s/argocd/projects/homelab-project.yaml: Added Tekton repos

WAVE ORDERING:
Wave 06 (CI/CD) is deployed after:
  - Wave 05 (Networking)
  - Wave 04 (Core components)
But before Wave 40+ (Applications)

BENEFITS:
✓ Kubernetes-native (no external CI runners)
✓ GitOps-managed (everything in git via ArgoCD)
✓ CNCF-standard (industry-proven Tekton project)
✓ Pre-merge testing (tests must pass before deploy)
✓ Observable (logs, status, results tracking)
✓ Secure (non-root, resource limits, RBAC)
rock merged commit 5f16d5c6a3 into main 2026-09-13 05:48:09 +00:00
rock deleted branch feat/tekton-pipelines-ci 2026-09-13 05:48:10 +00:00
Sign in to join this conversation.