Using Waypoint Runners To Enable GitOps Workflows

Waypoint runners perform builds, deployments, poll for Git repository changes, and allow deployments for any platform.

Getting started with GitOps and software delivery has never been easier, thanks to HashiCorp Waypoint. Through the use of its runners, integrating GitOps into your workflow is no longer out of reach. GitOps is a strategy that uses a Git repository with declarative configuration to automate and deploy infrastructure. Many GitOps workflows focus on the final steps of typical application deployment. You can use HashiCorp Waypoint to facilitate workflows like GitOps to build, deploy, and release your applications.

Starting with version 0.3, Waypoint installs a single runner after successfully executing waypoint server install. Runners can perform Git operations like tracking which commit is linked to builds, deployments, and releases. Runners also allow remote operations such as waypoint up, waypoint build, and waypoint deploy. When paired with authentication credentials, they enable beneficial functionality and helpful patterns at every step of your GitOps workflow. In this post, you’ll learn how to configure a Waypoint runner and set up Git integration.

Waypoint Lamba Architecture

»Git Integration

Waypoint tracks Git commits with builds, deploys, releases, and runs waypoint up when changes get pushed to a repository.

Waypoint allows for configuring the Git data source via the CLI or Waypoint's web UI. By doing so, the Waypoint server stores sensitive information rather than it being present in your Waypoint project configuration.

If you want to configure Waypoint's Git settings in the web UI, you can run the following command to open the Waypoint UI automatically:

$ waypoint ui -authenticate 

Navigating to a project’s settings will let you set all of the appropriate values for your builds, deploys, and releases.

Waypoint Project Settings

If you'd like to enable Git settings via your project file, you can set values as follows:

project = "example"
runner {
  enable = true
  data_source "git" {
    url  = "https://github.com/hashicorp/waypoint-examples.git"
    path = "docker/node-js"
app "example" {
  // etc

Waypoint supports additional polling and ref tracking options documented on our website.

»Runner Configuration

You can use the -runner flag to add configuration details to the Waypoint Runner:

$ waypoint config set -runner AWS_ACCESS_KEY_ID=abcd AWS_SECRET_ACCESS_KEY=1234

Currently, when you set your configuration, these values are exposed on every runner. Waypoint configuration values include the CLI operations run locally. If you’d like to unset any variables, you can assign them an empty value to remove them:

$ waypoint config set -runner AWS_ACCESS_KEY_ID=

To view your current configuration values, you can run:

$ waypoint config get -runner

Waypoint installs a single runner during the Waypoint install step. The documentation shows how you can also add more runners.

Waypoint works with just about any application deployment workflow that you have while providing an extensible toolkit for you to work with, whether you are making a GitOps journey of your own or looking to deploy a demo for a brand new application idea.

»What's Next for Waypoint

In the next major release of Waypoint, we plan to add significant foundational features for the project, like supporting variables within the waypoint.hcl file, health check report forwarding, mutable deployment patterns with Helm, Nomad job files, and more.

You can also see work on the project's milestones in GitHub. Please check out the 0.4.0 milestone for a list of what we’re currently working on. If you have any questions or suggestions about improving the Waypoint project, please let us know in the Waypoint Discuss forums.

»Learn More

Sign up for the latest HashiCorp news

By submitting this form, you acknowledge and agree that HashiCorp will process your personal information in accordance with the Privacy Policy.