Consul keys can be used within your template using the
consul_key function.
You can either use this function in a locals block or directly inline where you
want to use the value.
locals{my_version="${consul_key("myservice/version")}"}
source "null""first-example"{communicator="none"}build{name="my-build-name"sources=["null.first-example"]provisioner "shell-local" {environment_vars=["TESTVAR=${build.PackerRunUUID}"]inline=["echo my_version is '${local.my_version}'",
"echo version is '${consul_key("myservice/version")}'."]}}
locals{my_version="${consul_key("myservice/version")}"}source "null""first-example"{communicator="none"}build{name="my-build-name"sources=["null.first-example"]provisioner "shell-local" {environment_vars=["TESTVAR=${build.PackerRunUUID}"]inline=["echo my_version is '${local.my_version}'",
"echo version is '${consul_key("myservice/version")}'."]}}
This will load the key stored at the path myservice/version from consul.
The configuration for consul (address, tokens, ...) must be specified as
environment variables, as specified in the
Documentation.