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.jsonfile).
These blueprints are designed for platform engineers, SREs, and developers who want to accelerate CI/CD, infrastructure automation, and code quality gates using Dagger.
| 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. |
- Clone this repository
- Install Dagger and required dependencies
- 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- 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
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Patrick Hermann, stuttgart-things (2025)