waypoint

Waypoint 0.9 Adds New Runner Commands

HashiCorp Waypoint 0.9 introduces on-demand runner introspection, a runner install command, and support for HCP Waypoint.

We are excited to announce the general availability of HashiCorp Waypoint 0.9. Waypoint is an application deployment tool that aims to deliver a PaaS-like experience for Kubernetes, Amazon ECS, and other platforms. Waypoint 0.9 adds several significant new features, including on-demand runner introspection commands, and an install command to provision runners to your selected platform. These commands allow operators to have more control over where runners are provisioned and how to gather information on what Waypoint is doing for remote-enabled projects.

»On-Demand Runner Introspection

In Waypoint 0.9, we introduced the CLI command waypoint task. This command

currently gives users more introspection into the task launcher system for On-Demand Runners and what Waypoint is doing with remote-enabled projects. The task CLI will give users more insight into what Waypoint server is doing as it schedules tasks to execute jobs for a project.

The simplest benefit to this command is listing all known tasks in the system:

$ waypoint task list » Waypoint On-Demand Runner Tasks              ID             | RUN JOB OPERATION | TASK STATE |   PROJECT   |  TIME CREATED  | TIME COMPLETED-----------------------------+-------------------+------------+-------------+----------------+-----------------  01G1RYP6JFSEAQVE2SQX38Q19D | Up                | RUNNING    | go-gitops-0 | 3 seconds ago  |  01G1RYP37X5FTD9TFZQE5J2BQM | QueueProject      | STOPPED    | go-gitops-0 | 7 seconds ago  | 3 seconds ago  01G1RYP08Z9V18HMBP5XDPP0KA | Poll              | STOPPED    | go-gitops-0 | 10 seconds ago | 6 seconds ago  01G1RYNTQJ5421K3QBYR6FPAZP | Init              | STOPPED    | go-gitops-0 | 15 seconds ago | 12 seconds ago  01G1RYNNEK141B23YDE26XPED7 | Init              | STOPPED    | go-gitops-0 | 21 seconds ago | 15 seconds ago

This will display a list of all known tasks in the Waypoint server. It will show the current state of the task as well. If you inspect a specific task, it will show you all of the jobs that were launched by Waypoint:

$ waypoint task inspect 01G1RYP6JFSEAQVE2SQX38Q19D » On-Demand Runner Task Configuration      Task ID: 01G1RYP6JFSEAQVE2SQX38Q19D   Task State: RUNNING    Workspace: default      Project: go-gitops-0  Application: go » Run Job Configuration  Job Configuration:         Job ID: 01G1RYP6JDVM4FPXEZVHP2JPD9      Operation: Up  Target Runner: 01G1RYP6JD0AV2HEWF4B9CYY29      Workspace: default        Project: go-gitops-0    Application: go   Job Results:  State: Running » Start Job Configuration  Job Configuration:         Job ID: 01G1RYP6JF57MV6MSGPHMCCQCR      Operation: StartTask  Target Runner: *      Workspace: default        Project: go-gitops-0    Application: go   Job Results:          State: Success  Complete Time: 25 seconds ago » Stop Job Configuration  Job Configuration:         Job ID: 01G1RYP6JFSS7SHZG2HETKVCBR      Operation: StopTask  Target Runner: *      Workspace: default        Project: go-gitops-0    Application: go   Job Results:  State: Queued

This update pairs well with the new Evaluations UI in Nomad 1.3. If you run your Waypoint server on a Nomad cluster, you can now view info on past on-demand runner jobs via both waypoint job list, and also directly in the Nomad UI:

Nomad evaluations UI

»New Runner Install/Uninstall Command

Waypoint’s server installation with waypoint install comes with an initial Waypoint static runner in the same platform where the server is installed. Waypoint 0.9 introduces a new command, waypoint runner install, to install a runner to a given platform. The same platforms supported for the server installation, Kubernetes, Amazon ECS, Docker,and HashiCorp Nomad, are also supported for runner installation with this new command.

By default, with this command, after the runner is installed and attempting to communicate with the Waypoint server at the provided address, the server will automatically adopt the new static runner, and create a runner profile targeting the new runner. Here is an example of installing a Waypoint runner to Docker with the new waypoint runner install command:

$ waypoint runner install -platform=docker -docker-runner-network=waypoint -server-addr=waypoint-server:9701 -server-cookie=abc123 Connecting to: waypoint-server:9701 Runner 01G5F2R0EKY0J8WW4W8HRGZVN1 installed successfully Runner profile docker-01G5F2R0EKY0J8WW4W8HRGZVN1 created successfully. Waypoint runner installed and started! Runner detected by server Runner 01G5F2R0EKY0J8WW4W8HRGZVN1 adopted successfully.

You can see that the installed runner has registered with the server and has been adopted, and a runner profile has been created with the ID of the new runner set as the target runner for the profile. This immediately enables the new static runner to begin creating on-demand runners for the server’s remote operations in the new platform:

$ waypoint runner list              ID             |  STATE   |  KIND  |                           LABELS                            | LAST REGISTERED  -----------------------------+----------+--------+-------------------------------------------------------------+------------------  01G5F2R0EKY0J8WW4W8HRGZVN1 | adopted  | remote |                                                             |                   $ waypoint runner profile listRunner profiles                  NAME                  | PLUGIN TYPE |               OCI URL                |              TARGET RUNNER              | DEFAULT  ----------------------------------------+-------------+--------------------------------------+-----------------------------------------+----------docker-01G5F2R0EKY0J8WW4W8HRGZVN1     | docker      | hashicorp/waypoint-odr:latest        | 01G5F2R0EKY0J8WW4W8HRGZVN1              |          

This new command makes it easier than ever to install a static runner to your infrastructure, and to start remotely building, deploying, and releasing anywhere.

»One waypoint.hcl, One App

Since the initial release of Waypoint in 2020, the product has supported the ability to configure multiple apps within a single waypoint.hcl file. Starting with Waypoint 0.9, this functionality is deprecated and will be removed in 0.10. The vast majority of users are not using this functionality and it served mostly as a source of confusion. For users who are using a monorepo pattern, we plan to add better workflows for you.

With a waypoint.hcl now focused on the configuration of a single application, the concept of a project within the Waypoint data model will be removed, moving applications to the top level. This is already how users talk about using Waypoint and we are confident that it will improve the overall understanding of Waypoint as well.

If you have questions about this change in functionality, we invite you to discuss with us on this HashiCorp Forum thread or the Waypoint GitHub repository.

»Next Steps

The list of new features and improvements in Waypoint 0.9 is too long to detail here, so please see the CHANGELOG for a complete rundown. Finally, don’t miss these useful Waypoint resources:

We hope you enjoy Waypoint 0.9!


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.