Skip to content

About

collection of modular, reusable Dagger pipelines for automating build, test & deployment workflows

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

375 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stuttgart-things/blueprints

Blueprints is a collection of modular, reusable Dagger pipelines for automating build, test, and deployment workflows in modern DevOps environments.

Dagger engine: v0.20.8 · sub-module pins: v0.112.0 (see each dagger.json file).

Overview

These blueprints are designed for platform engineers, SREs, and developers who want to accelerate CI/CD, infrastructure automation, and code quality gates using Dagger.

Available Modules

Module Description
🧩 Configuration Render meta/docs, Flux kustomizations, vSphere vars and Ansible requirements.
🧭 Crossplane Configuration Generate XRD/Composition/Configuration with variable merging and cluster/secret helpers.
🚀 Go Microservice Lint, test, security scan and build (ldflags/ko) for Go services.
☸️ Kubernetes Microservice Build/stage/scan images, lint Dockerfiles, static stages, AI-powered Helmfile analysis.
📦 Kubernetes Deployment Thin orchestrator over kcl + kubectl: KCL-based deployments, raw manifest application, CRD installation.
⎈ Helm Helmfile-driven deployment workflows (apply / destroy / template / diff) with optional Vault and registry credentials.
🌊 Flux Bootstrap, render, apply, verify and destroy Flux CD on Kubernetes (KCL config, SOPS-encrypted secrets, Helmfile-driven operator).
🐙 ArgoCD Render/apply/commit clusterbook-driven Argo CD cluster registrations; wrap a SOPS-encrypted kubeconfig as a v1/Secret; orchestrator covers render → deploy → git commit/PR/auto-merge.
🔐 Secrets SOPS encrypt/decrypt, AGE key validation, SOPS-driven template rendering, Kubernetes Secret manifest generation.
📝 Repository Linting Multi-tech repo validation (YAML/Markdown/Pre-commit/Secrets), AI analysis, GitHub issues.
💻 VM Terraform + Ansible workflows with SOPS/Vault, profile-driven local/remote execution.
🖼️ VM-Template Packer workflows with Vault/Git (build/test), plus test VM via Terraform.
🎤 Presentations Initialize presentation sites (Hugo), add content and serve locally.

Getting Started

  1. Clone this repository
  2. Install Dagger and required dependencies
  3. Explore each module's README for usage instructions and examples

Example: Run AI-powered linting analysis

dagger call -m repository-linting analyze-report --report-file /tmp/all-findings.txt export --path=/tmp/ai.txt

Quick Examples

  • Configuration (render Flux kustomization):
    • dagger call -m configuration render-flux-kustomization --oci-source ghcr.io/stuttgart-things/kcl-flux-instance -vv --progress plain
  • Crossplane Configuration (add cluster):
    • dagger call -m ./crossplane-configuration add-cluster --clusterName=demo --kubeconfig-crossplane-cluster file://~/.kube/xplane -vv
  • Go Microservice (build with ldflags):
    • dagger call -m go-microservice run-build-stage --src tests/go-microservice/ldflags/ --ko-build=false --ldflags "main.Version=1.2.5; main.Commit=abc1234" -vv
  • Kubernetes Deployment (apply manifests by URL):
    • dagger call -m kubernetes-deployment apply-manifests --source-url https://example.com/cm.yaml --kube-config file://~/.kube/cluster
  • Helm (render Helmfile):
    • dagger call -m helm deploy-helmfile --operation template --helmfile-ref git::https://github.com/stuttgart-things/helm.git@apps/nginx.yaml.gotmpl
  • Flux (bootstrap on a cluster):
    • dagger call -m flux bootstrap --kube-config file://~/.kube/cluster --helmfile-ref git::https://github.com/stuttgart-things/helm.git@cicd/flux-operator.yaml.gotmpl --operator-version 0.61.0
  • ArgoCD (render + deploy a clusterbook cluster registration):
    • dagger call -m argocd bootstrap-clusterbook-cluster --name=philly --network-key=10.31.101 --deploy=true --kube-config env:KUBECONFIG
  • Secrets (decrypt a SOPS file):
    • dagger call -m secrets decrypt --sops-key env:SOPS_AGE_KEY --encrypted-file ./terraform.tfvars.enc.json
  • Kubernetes Microservice (build image):
    • dagger call -m kubernetes-microservice bake-image --src tests/kubernetes-microservice --repository-name stuttgart-things/test --registry-url ttl.sh --tag 1.2.3 -vv
  • Repository Linting (validate):
    • dagger call -m repository-linting validate-multiple-technologies --src tests/repository-linting/test-repo --enable-pre-commit=true --enable-secrets=true --fail-on any export --path /tmp/all-findings.txt
  • VM (bake locally with Terraform/Ansible):
    • dagger call -m vm bake-local --terraform-dir ~/projects/terraform/vms/sthings-runner/ --operation apply -vv
  • VM-Template (Packer workflow):
    • dagger call -m vmtemplate run-vsphere-workflow --git-repository ~/projects/stuttgart-things/stuttgart-things --git-workdir packer/builds/ubuntu24-labda-vsphere -vv
  • Presentations (initialize):
    • dagger call -m presentations init --name backstage export --path=/tmp/presentation

License

Licensed under the Apache License, Version 2.0. See LICENSE for details.

Author

Patrick Hermann, stuttgart-things (2025)

About

collection of modular, reusable Dagger pipelines for automating build, test & deployment workflows

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages