Pipelines-as-Code
Advantages to using Pipelines-as-Code
Armory’s Pipelines-as-Code feature provides a way to specify pipeline definitions in source code repos such as GitHub and BitBucket.
The Pipelines-as-Code has two components: 1) a Spinnaker plugin; and 2) a service called Dinghy, which keeps the Spinnaker pipeline in sync with what you define in a dinghyfile in your repo. You can also make a pipeline by composing other pipelines, stages, or tasks and templating certain values.
GitHub is in the process of replacing
master
as the name of the default base branch. Newly created repos usemain
. As this transition happens, confirm what branch your repo is using as its base branch and explicitly refer to that branch when configuring Armory features such as Pipelines-as-Code. For more information, see GitHub’s Renaming information.
Installation
Pipelines-as-Code is a feature in Armory CD, so you only need to enable the service. For Spinnaker, however, you need to install both the Dinghy service and the Spinnaker plugin.
Armory Operator
Use Kustomize patches to enable the service.
- Configure the Dinghy service.
- Enable the Dinghy service.
Spinnaker Operator
Use Kustomize patches to deploy the service and install the plugin.
- Configure the Dinghy service.
- Configure the plugin.
- Install both at the same time.
Halyard and kubectl
Use Kubernetes manifests to deploy the service and Spinnaker local config files to install the plugin.
- Create ServiceAccount, ClusterRole, and ClusterRoleBinding.
- Configure the Dinghy service in a ConfigMap.
- Deploy the Dinghy service using
kubectl
. - Add plugin to Gate and Echo local config files.
- Install the plugin using
hal deploy apply
.
Compatibility
Spinnaker Version | Pipelines-as-Code Service Version | Pipelines-as-Code Plugin Version |
---|---|---|
1.30.x | 2.30 | 0.0.5 |
1.28.x | 2.28 | 0.0.5 |
1.27.x | 2.27 | 0.0.5 |
1.26.x | 2.26 | 0.0.5 |
Version control systems
Feature | Version | Armory CD Version | Spinnaker Version | Notes |
---|---|---|---|---|
BitBucket Cloud | All supported versions | 1.26+ | ||
BitBucket Server | 4.x - 6.x | All supported versions | 1.26+ | BitBucket Server 7.x is not officially supported due to changes in webhook handling and may not behave as expected. |
GitHub | All supported versions | 1.26+ | Hosted or cloud | |
GitLab | All supported versions | 1.26+ | Hosted or cloud |
Features
Feature | Armory CD Version | Spinnaker Version | Notes |
---|---|---|---|
Fiat service account integration | All supported versions | 1.26+ | |
GitHub status notifications | All supported versions | 1.26+ | |
Local modules for development | All supported versions | 1.26+ | |
Modules | All supported versions 1.26+ | Templatize and reuse pipeline snippets across applications and teams | |
Pull Request Validation | 2.21 or later | 1.26+ | |
Slack notifications | All supported versions | 1.26+ | |
Webhook secret validation | All supported versions | 1.26+ | |
Permissions validation on commit | 2.30 or later | 1.30+ |
Templating languages
To create a dinghyfile, you can use one of the following templating languages:
- HashiCorp Configuration Language (HCL)
- JSON
- YAML
ARM CLI
The ARM CLI is a tool to render dinghyfiles and modules. Use it to help develop and validate your pipelines locally.
You can find the latest version on Docker Hub.
Feedback
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.
Last modified September 11, 2023: (5bb70d0b)