Maksym Prokopov personal blog
Idea is a something worth sharing

Hashicorp Waypoint

11.10.2024

Reading time: 3 min.

Waypoint is a tool by Hashicorp to manage builds, artifacts and deployments.

It has a CLI interface and also a nice UI and uses HCL instead of YAML for configuration and templating.

Introduction

It might not be needed if you have something like GitHub Actions and may felt redundant, but actually it's a kind of missing piece for having a good UI for CI/CD pipelines, as it gives a handy tool for a developer to streamline build/deploy/release process.

I'm personally a big fan of Hashicorp products, like Terraform, Consul, Vault, Vagrant, Nomad and Packer. Not a big surprise, that they decided to tackle the build process as well and create a smooth developer experience by wrapping everything from build to release into one handy utility. The whole idea is close to the GitHub CLI with private GitHub Runner on your machine + ArgoCD CLI, all in one package with nice UI.

Prerequisites

You certainly will need a waypoint.hcl to start.

waypoint init

Builds and Articats

I.e. you can see a list of artifacts and trigger a build process of the new artifact right on your machine. The artifact is pushed to the artifact storage after the build is complete. It's typically some sort of docker registry, AWS ECR is also a supported option.

Starting a build is as easy as executing

waypoint build

waypoint-build.png

After the build is complete, you can see one in the list of the builds

waypoint-build-ui.png

Deployment

The deployment is an act of bringing your artifact to the target environment. It's run by the same simple command.

waypoint deploy

waypoint-deploy.png

Release

The release for a website means switching from the old version to the new version of the deployed artifact and it can be done in a different ways. Typically switching to the new artifact is done with the help of the change in the load balancer configuration, that simply starts routing the traffic to the newly deployed artifact.

Sometimes it's a part of the deployment process, sometimes it's a part of the promotion step.

waypoint release

waypoint-release.png

Observe

The UI give a nice ability to observe resources (running artifacts on the target environment), inspect logs and connect to the container shell to interact with the application.

waypoint-project.png

Summary

This would look like a missing piece of any software release lifecycle with the good CLI interface as well as the UI. Though, I found the deployment of the server part to the Nomad cluster quite challenging.

P.S.

Unfortunately, after the aquisition of Hashicorp by IBM the community version of this wonderful product has been killed and only cloud one in HCP is available, but now it's a very different product.

RIP Waypoint on Jan 8, 2024 https://github.com/hashicorp/waypoint/