Dinghy allows you to create and maintain Spinnaker pipeline templates in source control.
Read more in our documentation.
There are two primitives:
- Stage/Task templates: These are all kept in a single GitHub repo. They are json files with replacable values in them.
- Pipeline definitions: These define a pipeline for an application. You can compose stage/task templates to make a full definition.
How it works:
- GitHub webhooks are sent off when either the templates or the definitions are modified.
- Templates should be versioned by hash when they are used.
- Dinghy will keep a dependency graph of downstream templates. When a dependency is modified, the pipeline definition will be rebuilt and re-posted to Spinnaker. (sound familiar? haha)
You will need a golang toolchain and make to work on this project.
You should complete and add the file located in example/dinghy.yml
to /opt/spinnaker/config/dinghy.yml
since
this is the file that dinghy search for configuration.
You can run the make build
and make test
targets to build and test the
project. You will need Redis running (either locally or in your Spinnaker
cluster), as well as Front50 and Orca.
If you have an existing Spinnaker cluster, you can port-forward to your local machine like so:
kubectl -n spinnaker port-forward svc/spin-redis 6379
kubectl -n spinnaker port-forward svc/spin-front50 8080
kubectl -n spinnaker port-forward svc/spin-orca 8083
kubectl -n spinnaker port-forward svc/spin-fiat 7003
kubectl -n spinnaker port-forward svc/spin-echo 8089
curl -X POST \
-H "Content-Type: application/json" \
-d "@example/github_payload.json" \
http://localhost:8081/webhooks/git/github
(The github_payload.json file in the example directory is a minimal set for testing the git webhook, as an example)
Dinghy is also embedded in the arm cli tool for local validation of pipelines.