Announcing HashiCorp Waypoint 0.4
Waypoint 0.4 adds significant features, including mutable deployments and platform health reporting, among others.
We are happy to announce version 0.4 of HashiCorp Waypoint, an open source project that gives developers a consistent workflow to build, deploy, and release applications across any platform. Waypoint enables developers to build, deploy, and release their applications with a single file and a single command: waypoint up
.
Waypoint 0.4 adds significant new functionality, most notably "mutable" deployments, where a deployment updates an existing resource rather than creating something new, and status reports, a new feature for reporting on the health of deployments or releases, among others.
Here are descriptions of the significant enhancements:
» Mutable Deploys
Waypoint URLs, the UI, and the project state depend on each deployment creating new resources. In Waypoint 0.4, you can use existing HashiCorp Nomad jobfiles, Kubernetes YAML, and other application configuration files instead of having to recreate or duplicate your entire build, deploy, or release process in a waypoint.hcl
. The core Waypoint data model is now "mutable-aware," employing a new "generation ID." Plugins can opt-in to generating their generation IDs. By default, Waypoint will generate a unique generation ID per operation:
// The waypoint.hcl file
deploy {
use "kubernetes-apply" {
// Templated to perhaps bring in the artifact from a previous
// build/registry, entrypoint env vars, etc.
path = templatedir("${path.app}/k8s")
prune_label = "app=myapp"
}
}
# ./k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
app: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: ${artifact.image}:${artifact.tag}
env:
%{ for k,v in entrypoint.env ~}
- name: ${k}
value: "${v}"
%{ endfor ~}
# Ensure we set PORT for the URL service. This is only necessary
# if we want the URL service to function.
- name: PORT
value: "3000"
» Status Reports
Waypoint 0.4 introduces a new feature for reporting on the health of deployments or releases. Waypoint surfaces a deployment and or releases status by relying on an existing platform for health checks. A status is responsible for reporting the health of a deployed service by representing its states as Ready, Alive, Partial, Down, or Unknown. Platform health reporting lets teams take action quickly depending on the health of their applications. Currently, the Kubernetes, Nomad, AWS ALB, and Docker built-in plugins support the new status reporting, with more support on the way.
» Other Waypoint 0.4 Improvements
Waypoint 0.4 contains many other enhancements. To highlight a few:
» Features:
- Define internal variables and compose variables together via templating.
- Write configuration values as files rather than environment variables.
- Add jsonnetfile and jsonnetdir functions for processing Jsonnet files and converting them to JSON.
- Report on status of releases with
aws-alb
plugin. - Add reporting on the status of a Docker deployment.
- Add a new plugin called kubernetes-apply for deploying any typical directory of YAML or JSON files to Kubernetes.
- Add reporting on status of a Kubernetes deployment and release.
- Add a new plugin called nomad-jobspec for directly deploying a Nomad job specification.
- Add reporting on status of a Nomad deployment.
- Use
--platform=ecs
to install Waypoint server to Amazon ECS using Fargate. - Add reporting on status in the Waypoint UI.
- Mutable deployments support on the web dashboard.
» Improvements:
- Add ability to add a ${workspace} configuration variable.
- Support for non-default Buildpack process types.
- Add support to the Docker plugin for setting the build context.
» Bug Fixes:
- Destroy Kubernetes deployments on error.
- Upgrade pack package to fix downloading remote buildpacks.
- Fix a Waypoint server bug that sometimes sends duplicate cancellation messages.
- Fix server log order while showing logs from multiple instances.
- Custom inputs in the browser UI now render correctly on all supported browsers.
- Unread log count resets in UI after scrolling.
» Breaking Changes:
» What's Next for Waypoint
You can see work on the Waypoint project's milestones in GitHub. If you have any questions or suggestions about improving the Waypoint project, please let us know in the Waypoint Discuss forums.
» Learn More and Get Started
Download and try Waypoint 0.4 now from the Waypoint project website.
For more information, check out these resources:
- Get started using Waypoint with tutorials on HashiCorp Learn.
- Check out what we have planned for our 0.5.0 milestone.
- Discover how Waypoint Runners enable GitOps workflows.
- Watch the new kubectl-apply plugin in this Waypoint deep dive.
- Read the 0.4.0 release notes on the Waypoint Discuss forum.
- Contribute to the Waypoint project and participate in its community.
- Extend Waypoint by creating a plugin.
Sign up for the latest HashiCorp news
More blog posts like this one
HCP Waypoint actions is now in public beta
The beta of HCP Waypoint actions to let platform teams expose Day 2+ operations and workflows to developers.
HCP Waypoint to add actions, enhances golden pattern capabilities, and more
The beta of HCP Waypoint actions — coming soon — will let platform teams expose Day 2+ operations and workflows to developers. Plus: enhancements to HCP Waypoint templates and add-ons.
Manage your infrastructure lifecycle with new Terraform, Packer, Waypoint, and Nomad features announced at HashiDays 2024
New Infrastructure Lifecycle Management (ILM) offerings from HashiCorp Terraform, Packer, Nomad, and Waypoint help organizations build, deploy, and manage infrastructure.