https://github.com/stuttgart-things/blueprints
collection of modular, reusable Dagger pipelines for automating build, test & deployment workflows
https://github.com/stuttgart-things/blueprints
automation cicd dagger golden-pipeline platform-engineering
Last synced: 3 months ago
JSON representation
collection of modular, reusable Dagger pipelines for automating build, test & deployment workflows
- Host: GitHub
- URL: https://github.com/stuttgart-things/blueprints
- Owner: stuttgart-things
- License: apache-2.0
- Created: 2025-06-13T21:02:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2026-03-02T00:16:05.000Z (5 months ago)
- Last Synced: 2026-03-02T03:24:00.066Z (5 months ago)
- Topics: automation, cicd, dagger, golden-pipeline, platform-engineering
- Language: Go
- Homepage:
- Size: 19.7 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# 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`).
## 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](./configuration/README.md) | Render meta/docs, Flux kustomizations, vSphere vars and Ansible requirements. |
| π§ [Crossplane Configuration](./crossplane-configuration/README.md) | Generate XRD/Composition/Configuration with variable merging and cluster/secret helpers. |
| π [Go Microservice](./go-microservice/README.md) | Lint, test, security scan and build (ldflags/ko) for Go services. |
| βΈοΈ [Kubernetes Microservice](./kubernetes-microservice/README.md) | Build/stage/scan images, lint Dockerfiles, static stages, AI-powered Helmfile analysis. |
| π¦ [Kubernetes Deployment](./kubernetes-deployment/README.md) | Thin orchestrator over `kcl` + `kubectl`: KCL-based deployments, raw manifest application, CRD installation. |
| β [Helm](./helm/README.md) | Helmfile-driven deployment workflows (apply / destroy / template / diff) with optional Vault and registry credentials. |
| π [Flux](./flux/README.md) | Bootstrap, render, apply, verify and destroy Flux CD on Kubernetes (KCL config, SOPS-encrypted secrets, Helmfile-driven operator). |
| π [ArgoCD](./argocd/README.md) | 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](./secrets/README.md) | SOPS encrypt/decrypt, AGE key validation, SOPS-driven template rendering, Kubernetes Secret manifest generation. |
| π [Repository Linting](./repository-linting/README.md) | Multi-tech repo validation (YAML/Markdown/Pre-commit/Secrets), AI analysis, GitHub issues. |
| π» [VM](./vm/README.md) | Terraform + Ansible workflows with SOPS/Vault, profile-driven local/remote execution. |
| πΌοΈ [VM-Template](./vmtemplate/README.md) | Packer workflows with Vault/Git (build/test), plus test VM via Terraform. |
| π€ [Presentations](./presentations/README.md) | Initialize presentation sites (Hugo), add content and serve locally. |
## Getting Started
1. Clone this repository.
2. Install [Dagger](https://dagger.io/) and required dependencies.
3. Explore each module's README for usage instructions and examples.
Example: Run AI-powered linting analysis
```bash
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.42.1`
- 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](./LICENSE) for details.
## Author
Patrick Hermann, stuttgart-things (2025)