t.behrendt 4e1d3c0090
Release / Release (push) Successful in 12s
feat: add namespace override (#57)
Reviewed-on: #57
Co-authored-by: Timo Behrendt <t.behrendt@t00n.de>
Co-committed-by: Timo Behrendt <t.behrendt@t00n.de>
2026-05-26 20:47:53 +02:00
2025-08-12 08:54:44 +02:00
2026-05-26 20:47:53 +02:00

Reusable CI/CD Workflows for k_ Services

This repository contains reusable CI and CD workflows that automatically detect Kubernetes service type (Kubernetes-only vs Helm + Kubernetes) and execute the relevant steps.

Features

  • Reusable CI and CD: Separate reusable workflows for validation and deployment
  • Automatic Detection: Detects whether helmfile.yaml exists and whether k8s/ exists
  • Conditional Execution: Runs Helm steps only when applicable
  • Flexible Inputs: Supports custom k8s_dir and helmfile_path

Usage

Basic CI Usage

Call the reusable CI workflow:

jobs:
  ci:
    uses: https://gitea.t000-n.de/t.behrendt/k_deploy_workflows/.gitea/workflows/ci.yaml@main
    secrets: inherit

Basic CD Usage

Call the reusable CD workflow:

jobs:
  deploy:
    uses: https://gitea.t000-n.de/t.behrendt/k_deploy_workflows/.gitea/workflows/cd.yaml@main
    secrets: inherit

Advanced Usage with Custom Paths and Flags

jobs:
  ci:
    uses: https://gitea.t000-n.de/t.behrendt/k_deploy_workflows/.gitea/workflows/ci.yaml@main
    with:
      k8s_dir: "kubernetes/"
      helmfile_path: "helm/helmfile.yaml"
      skip_helm_validation: true
    secrets: inherit

Inputs

CI (.gitea/workflows/ci.yaml)

Parameter Description Default Required
k8s_dir Path to Kubernetes manifests directory k8s/ No
helmfile_path Path to helmfile.yaml helmfile.yaml No
skip_helm_validation Skip Helm validation even if helmfile exists false No
helmfile_env JSON object string passed as env to helmfile {} No
namespace Override the default namespace (extracted from repository name) "" No

CD (.gitea/workflows/cd.yaml)

Parameter Description Default Required
k8s_dir Path to Kubernetes manifests directory k8s/ No
helmfile_path Path to helmfile.yaml helmfile.yaml No
skip_helm_deployment Skip Helm deployment even if helmfile exists false No
skip_shared_secrets_deployment Skip shared secrets deployment false No
helmfile_env JSON object string passed as env to helmfile {} No
namespace Override the default namespace (extracted from repository name) "" No

Directory Structure Requirements

Full example structure (Helm + Kubernetes):

your-service/
├── k8s/
│   ├── deployment.yaml
│   ├── service.yaml
│   └── ...
├── helmfile.yaml
└── .gitea/workflows/your-workflow.yaml
S
Description
No description provided
Readme 246 KiB
Languages
Markdown 100%