https://github.com/stuttgart-things/dapr-workflows
Dapr workflow orchestration for infrastructure automation (golden image builds, provisioning, etc.)
https://github.com/stuttgart-things/dapr-workflows
dapr dapr-workflows golang kcl kro
Last synced: about 15 hours ago
JSON representation
Dapr workflow orchestration for infrastructure automation (golden image builds, provisioning, etc.)
- Host: GitHub
- URL: https://github.com/stuttgart-things/dapr-workflows
- Owner: stuttgart-things
- Created: 2026-03-29T10:02:54.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-05-28T04:16:25.000Z (about 2 months ago)
- Last Synced: 2026-05-28T06:22:59.365Z (about 2 months ago)
- Topics: dapr, dapr-workflows, golang, kcl, kro
- Language: Go
- Homepage:
- Size: 161 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# dapr-workflows
Dapr workflow orchestration for infrastructure automation — golden image builds, provisioning, and more.
## Overview
This repository contains Dapr durable workflows that orchestrate infrastructure automation tasks. Workflows run as Go services on Kubernetes with Dapr sidecar injection, calling [Dagger modules](https://github.com/stuttgart-things/blueprints) as building blocks.
## Workflows
| Workflow | Description | Status |
|----------|-------------|--------|
| golden-image-build | Render → packer build → test VM → promote golden image | Planned |
| backstage-template-execution | Trigger Backstage scaffolder templates, poll the task to completion, optionally watch a follow-up GitHub Actions run, and auto-merge the resulting PR | Working |
### backstage-template-execution
End-to-end orchestration around a Backstage scaffolder template:
1. POST to `/api/scaffolder/v2/tasks` (or `/dry-run`) to start the template
2. Poll the scaffolder task until it reaches `completed` / `failed` / `cancelled`
3. Optionally poll a GitHub Actions workflow run on a deterministic branch (the activity skips runs that completed with conclusion `skipped`, e.g. PRs that fired before labels were applied)
4. Optionally squash/merge/rebase-merge the PR once the GH run reaches `success`
Inputs are passed as JSON; the worker reads `GITHUB_TOKEN` from its environment for the GH-watch + merge activities. See [`backstage-template-execution/input.json`](backstage-template-execution/input.json) (create flow) and [`backstage-template-execution/input-delete.json`](backstage-template-execution/input-delete.json) (delete flow) for examples wired against the `create-terraform-vm` and `delete-terraform-vm` Backstage templates.
```bash
cd backstage-template-execution
export DAPR_SERVICE_TOKEN=... # Backstage scaffolder token
export GITHUB_TOKEN=... # PAT with repo scope (actions:read + pull_requests:write)
dapr run --app-id backstage-tpl --dapr-http-port 3500 -- go run .
# in another terminal
./run.sh # uses input.json
./run.sh input-delete.json
./run.sh status
```
## Getting Started
### Install Dapr CLI
```bash
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash
dapr init
```
See [docs/setup/dapr-cli.md](docs/setup/dapr-cli.md) for details.
## Author
Patrick Hermann, stuttgart-things (2025-2026)
## License
Licensed under the Apache License 2.0.