Search
⌃K

CD - Push blueprint updates

Push blueprint updates directly from your CI\CD Pipeline
As your application grows, new Velocity Services are frequently added, and your Velocity Environment configuration changes and evolves. To keep your dev/test Environments effective and to prevent drift between your production configuration and your dev/test configuration, Velocity recommends pushing Blueprint updates repeatedly directly from your CI\CD Pipeline.
The following guide explains using the Blueprint Commit to send automated Blueprint updates.

Prerequisites:

  • A valid Blueprint file with Velocity Annotations. The file should concatenate all the K8s resources that are part of the Velocity Environment configuration.
  • A token with permissions to manage Blueprints.
To get a token, contact Velocity Support

Using veloctl to automate ongoing Blueprint updates

The following veloctl command sends Velocity an updated version of the Velocity Blueprint file. Before running the command replace the <VELOCITY_TOKEN> with the token received from Velocity, and <source_name> with the name of the commited source.
Dont forget to also add your relevant values while templating the chart.
export VELOCITY_TOKEN="<VELOCITY_TOKEN>"
helm template ./path/to/chart | veloctl blueprint commit -f - --source "<source_name>"
veloctl can be called directly from your CD pipeline, so when a PR is merged to master, you can update your Blueprint version in Velocity to align with the latest updates.

Committing to a Blueprint from GitHub

The following GitHub Actions workflow will generate a Helm template from the main branch of your repository when you push a commit or merge a pull request. It will then commit the resulting YAML manifest to your Velocity Blueprint with the Blueprint Source "example."
NOTE: you'll need to add your VELOCITY_TOKEN to your GitHub Actions Secrets and update the <./path/to/chart> and <./path/to/velocity-values.yaml> placeholders with the path to your Helm Chart and values file respectively.
on:
push:
branches:
- main
jobs:
velocity_blueprint_commit:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: install_veloctl
run: curl -fsSL https://releases.velocity.tech/veloctl/latest.sh | sh -s
- name: install_helm
run: |
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
- name: commit_blueprint
run: helm template <./path/to/chart> -f <./path/to/velocity-values.yaml> | veloctl blueprint commit -f - --source "example"
env:
VELOCITY_TOKEN: ${{ secrets.VELOCITY_TOKEN }}