Skip to main content

Waypoint 0.11 strengthens Terraform integrations and allows user API access

HashiCorp Waypoint 0.11 allows quicker integration with Terraform Cloud and easier creation of Terraform providers for Waypoint.

We are excited to announce the general availability of HashiCorp Waypoint 0.11. Waypoint allows teams to deploy, manage, and observe their applications through a consistent abstraction of underlying infrastructure.

Waypoint 0.11 adds several significant new features, including an improved experience with variables in the Terraform Cloud configsourcer plugin, a user-facing API to allow easier creation of integration with Terraform providers, and a new integrations library experience for finding and using Waypoint plugins.

»Improved Terraform integration points

Terraform users now have new options to connect to Waypoint and promote smoother operations during the application release process.

»ECS Terraform module

For customers looking to sustainably manage their application infrastructure with Terraform, Waypoint is introducing Terraform modules that correspond to plugins, starting with waypoint-ecs for Amazon Elastic Container Service (ECS).

This module instantiates the ECS infrastructure an application will require, such as load balancers, security groups, IAM roles, etc. You can then use the module outputs as ECS plugin parameters (see example), or consume them dynamically via the Terraform Cloud configsourcer.

This lets Terraform do what it does best — manage long-lived infrastructure — and Waypoint do what it does best — orchestrate builds, deployments, and releases. That makes it easier to build out a HashiCorp stack.

»Simplified variable stanzas for configsourcer plugins

Previously, configsourcer plugins structured outputs as individual items of data. We found that was limiting for users, since it meant that for each value a plugin outputs for the waypoint.hcl to consume, the waypoint.hcl needed an individual variable stanza. For example, the new ECS Terraform module provides 11 outputs. For a multi-environment deployment, the waypoint.hcl would need 22 or more variable stanzas.

We've improved this experience by allowing configsourcers to produce structured data, rather than just a string, and make all that structured data available as a waypoint.hcl variable. Building on that, we updated the Terraform Cloud configsourcer to be able to pull all the outputs from a Terraform Cloud workspace into a single variable stanza. Now instead of the 22 variable stanzas in the above hypothetical, you provide just 2, and Waypoint handles the rest.

To see the new, simplified waypoint.hcl and how it works better together with Terraform, check out this example.

»User-facing API

Waypoint’s API has always been open to public use but was not officially supported as a community feature. With the 0.11 release, the Waypoint team has given our community the tools needed to interact with our official HTTP API. This includes full API documentation and a Golang API client that can be used as a library in your applications to interact with the Waypoint API server.

Building integrations with Waypoint is now more accessible. See our documentation for more information on this feature.

//Example usage of Waypoint client library with self-managed Waypoint
 
func main() {
 
 clientConfig, err := client.NewWithSelfManaged("waypoint-user-token", "localhost:9702", true)
  if err != nil {
     panic(err)
  }
 
  client, err := client.New(*clientConfig)
  if err != nil {
     log.Fatal("Unable to setup client", err)
  }
 
  resp, err := client.WaypointListProjects(waypoint.NewWaypointListProjectsParams())
  if err != nil {
     log.Fatal("An error occurred while fetching projects", err)
  }
 
  projects := resp.GetPayload().Projects
 
  for _, proj := range projects {
     fmt.Println(proj.Project)
  }
}

»New library for plugins

With 0.11, Waypoint is launching a new user interface for plugin discoverability. Users can now view Waypoint integrations and specify filters or search terms to help them find the best plugin to meet their needs. The initial release of this new experience only contains official Waypoint built-in plugins, as designated by the Official tier.

Moving forward, we plan to work with partners and community contributors to add their plugins to the collection as well. Users will then be able to filter plugins by Partner and Community tiers. Similar to the Terraform Registry and other HashiCorp products’ integration collections, these tiers inform users of the level of verification a plugin has gone through before they choose to include it in their Waypoint workflow.

»Use cases

The Waypoint team worked on sharing use cases with the community during this release cycle. Documentation now includes examples such as A complete cloud ecosystem built with Terraform, HCP Waypoint, HCP Vault, HCP Consul, and Nomad; Dynamic secrets for Waypoint with Vault; and Using GitHub actions to unlock GitOps workflows with HashiCorp Waypoint. Check out more use cases in the Waypoint documentation.

»Other Waypoint 0.11 highlights

  • Pagination is now implemented in the CLI for jobs and projects, allowing users to display them in their entirety.
  • The AWS Lambda plugin has been improved to allow the deployment configuration to be injected into Lambda function environments, allowing the waypoint-entrypoint to authenticate with the Waypoint server.
  • An updated Amazon ECS plugin allows you to bring your own application load balancer to ECS deployments.

»Next steps

The full list of new features and improvements in Waypoint 0.11 can be found in the changelog. Finally, don’t miss these useful Waypoint resources:


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.