Remote Operations
Warning
This content is part of the legacy version of Waypoint that is no longer actively maintained. For additional information on the new vision of Waypoint, check out this blog post and the HCP Waypoint documentation.
Waypoint operations such as waypoint up
, build
, deploy
, etc. can
be executed remotely using runners. This enables
a variety of useful functionality and patterns:
- GitOps where builds, deploys, etc. are triggered by Git.
- Users don't need to have credentials for build or deployment targets, only the runners do. For example, if you're deploying an application AWS, only the runners need AWS credentials. Users only need a token for the Waypoint server to queue the deployment job.
- Private resource access. Every client only needs access to the Waypoint server. The runners can run on a private network to access internal resources.
Running operations remotely is the default and most common mode as it decouples
waypoint from an individual machine. Operations such as waypoint build
will always
attempt to perform a remote operation if possible. This can be overridden by passing
-local
on the command line.
Requirements
Remote operations require:
- At least one runner is installed and running. Waypoint
automatically installs a runner with
waypoint install
. - Your project is configured with a data source so that the runners can clone the project source code.
- Your project has remote operations enabled.
Waypoint will automatically run your operations remotely if all these conditions are met, and that you have a runner profile configured.
Usage
CLI
You can substitute any operation for up
such as build
, deploy
, release
, etc.
Both of these approaches will queue a job with the server and remotely execute that job on the runner. Execution output will stream to the client, but all logic is executing remotely.
Concurrency
Waypoint only allows a single operation per distinct (workspace, project, app)
combination. This applies to both local and remote operations. Therefore, if two
users attempt run waypoint up
at the same time, even if they add the -local
flag,
one of the operations will wait for the other to complete before continuing.
However, if a second user runs waypoint up
in a different project or
different application in the same project or different workspace, that
operation will run concurrently so long as there is available runner capacity.