»Project Configuration: waypoint.hcl
The waypoint.hcl
file is used to configure each Waypoint project. It defines
how Waypoint build, deploys, and releases a project. The waypoint.hcl
file is
written in HCL or JSON, allowing both human
and machine friendly formats.
Waypoint expects one waypoint.hcl
per project or
version control repository. The waypoint.hcl
file is supposed to be committed
to version control. This allows multiple team members to share the same Waypoint
behavior and also provides a history of change in how an application is deployed.
The waypoint.hcl
file is typically placed at the root of a version control
repository. To deploy multiple applications, defined each with an app
stanza. Each application should live in subdirectories of the project.
When executing the waypoint
CLI, it will search for the waypoint.hcl
file
in the current directory, followed by each subsequent parent directory.
»Template waypoint.hcl
project = "project-name"
app "app-name" {
path = "./src"
build {
# ...
}
deploy {
# ...
}
release {
# ...
}
plugin "plugin-name" {
}
»Top-level
The "top-level" refers to the objects that are not nested in any other configuration. The top-level is made of "stanzas" and "parameters".
»Stanzas and Parameters
A "stanza" is an block of code that opens and closes with braces { }
and may contain more configuration parameters. Above, app "app-name" {}
is
the app
stanza.
A "parameter" is the term used to describe any configuration object. build
and path
are parameters of app
. project
, app "app-name"
, and plugin
are parameters of the top-level.
Several "common" parameters can be used in stanzas. These are use
and hook
.
These can not be top-level parameters, but are available in build
, deploy
,
and release
. These are documented further in their respective pages.
A stanza is a parameter, but not all parameters are stanzas.
»Top-level Parameters
»Required
app
(app)
- One or more applications to build, deploy, and release with Waypoint.project
(string)
- The name of the project. This should be unique for the Waypoint server and must not be changed later. This is used to organize information on the server.
Warning: the project name can not be changed. Changing the project name is not currently supported. If you change the name, the history, deployments, etc. of the previous project name will not be migrated or destroyed. A future version of Waypoint will enable renaming projects.