waypoint

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.

Health checks in the Waypoint UI

»Other Waypoint 0.4 Improvements

Waypoint 0.4 contains many other enhancements. To highlight a few:

»Features:

»Improvements:

»Bug Fixes:

»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:


Sign up for the latest HashiCorp news