New Interested in participating in the HCP Waypoint Private Beta Program? Apply here
  • Infrastructure
    • terraform
    • packer
  • Networking
    • consul
  • Security
    • vault
    • boundary
  • Applications
    • nomad
    • waypoint
    • vagrant
  • HashiCorp Cloud Platform

    A fully managed platform to automate infrastructure on any cloud with HashiCorp products.

    • consul
    • terraform
    • vault
    • packerbeta
    Visit cloud.hashicorp.com
  • Overview
  • Tutorials
  • Docs
  • CLI
  • Plugins
  • Community
GitHub
Download
    • v0.8.x (latest)
    • v0.7.x
    • v0.6.x
    • v0.5.x
    • v0.4.x
    • v0.3.x
    • v0.2.x
    • v0.1.x
    • Overview
      • Overview
      • Helm
      • Heroku, Vercel, etc.
      • Kubernetes
  • Getting Started
    • Overview
    • Compatibility Promise
    • Protocol Version Table
    • Release Notifications
      • Overview
      • Upgrade to 0.2.0
      • Upgrade to 0.3.0
      • Upgrade to 0.4.0
      • Upgrade to 0.5.0
      • Upgrade to 0.6.0
      • Upgrade to 0.7.0
      • Upgrade to 0.8.0

    • Install
    • Externally Built Images
    • Building Container Images
    • Helm Deployment
    • YAML-Free Deployment
    • YAML Directory Deployment
    • Resource Status
    • ConfigMaps and Secrets

    • Overview
    • Git Integration
    • Remote Operations
    • Overview
    • Build
    • Deploy
    • Release
    • Hooks
    • Labels
    • Workspace and Label Scoping
    • Overview
      • Overview
      • Input Variables
      • External Data
      • artifact
      • deploy
      • entrypoint
      • labels
      • path
      • workspace
      • Overview
      • Full Reference
      • Templating
      • Overview
      • Expressions
      • JSON Syntax
    • app
    • build
    • config
    • deploy
    • hook
    • plugin
    • registry
    • release
    • runner
    • url
    • use
    • variable
  • URL Service
  • Logs
  • Exec
    • Overview
    • Dynamic Values
    • Files
    • Internal Values
    • Workspace and Label Scoping
    • Overview
      • Overview
      • OIDC
      • Overview
      • Maintenance
      • Production
      • Security
    • Express Server Install
    • Overview
    • Configuration
    • Profiles
    • On-Demand Runner
    • Additional Runners
  • Workspaces
  • Plugins
  • Triggers

    • Overview
      • Overview
      • Registering Plugin Components
      • Handling Configuration
      • Implementing the Builder Interface
      • Compiling the Plugin
      • Creating an Example Application
      • Testing the Plugin
    • Initializing the SDK
    • Passing Values Between Components
      • Overview
      • Authenticator
      • ConfigSourcer
      • Configurable
      • ConfigurableNotify
      • Builder
      • Registry
      • Platform
      • ReleaseManager
      • Destroy
      • Status
      • Default Parameters
      • Overview
    • Overview
    • Disable
    • Overview
    • GitHub Actions
    • GitLab CI/CD
    • CircleCI
    • Jenkins
  • Troubleshooting
  • Glossary

    • Overview
    • Architecture
    • Operation Execution
  • Roadmap

The Waypoint website is being redesigned to help you find what you are looking for more effectively.

Type '/' to Search

»External Data

You can access external data from a waypoint.hcl such as Vault secrets, Kubernetes configuration, Terraform outputs, and more. External data is sourced using the dynamic function set as a default value for an input variable.

Requirements: External data fetching only works for jobs that run on remote runners. You can still operate locally on waypoint.hcl files that fetch external data, but all the variables that fetch external values must be manually overridden.

»Fetching External Data

The dynamic function is used to fetch external data. This is the same function used to fetch external data as app and runner configuration. This function is used to set the value of the default argument for input variables, and then the input variable is used as normal to access the value.

variable "image_name" {
  type    = string
  default = dynamic("terraform-cloud", {
    organization = "foocorp"
    workspace    = "images"
    output       = "name"
  })
}

app "myapp" {
  builder {
    use "docker" {
      image_name = var.image_name
    }
  }
}
variable "image_name" {
  type    = string
  default = dynamic("terraform-cloud", {
    organization = "foocorp"
    workspace    = "images"
    output       = "name"
  })
}

app "myapp" {
  builder {
    use "docker" {
      image_name = var.image_name
    }
  }
}

The dynamic function is only allowed as a default value for input variables. This ensures that all parametric data for a waypoint.hcl can be consumed and overridden using standard mechanisms such as CLI flags, wpvars files, the UI, and more. For dynamic values, this also makes it easy to use and test Waypoint with different values without modifying the remote system; you can just override it using standard input variable mechanisms.

»Available Data Sources

The list of available data sources can be found here. This list is maintained in the application configuration section since the same underlying system is used.

Custom data sources can also be implemented by extending Waypoint with a config sourcer plugin. The plugin then needs to be installed like any other plugin described in the extending Waypoint documentation.

github logoEdit this page

Using Waypoint

The best way to understand what Waypoint can enable for your projects is to give it a try.

Waypoint tutorials
Waypoint documentation
Tutorial

Get Started - Kubernetes

Build, deploy, and release applications to a Kubernetes cluster.

View
Tutorial

Introduction to Waypoint

Waypoint enables you to publish any application to any platform with a single file and a single command.

View

Waypoint is maintained by HashiCorp, Inc.

View Code of Conduct
DocumentationCLI ReferenceTutorialsIntegrations
All systems normal