Terraform HTTP remote state storage
So far we are offering only a few different variants for the installation. You can choose between Docker or pre-built binaries which are stored on our download mirror and GitHub releases. Maybe we will also provide system packages for the major distributions later if we see the need for it.
Generally we are offering the images through quay.io/webhippie/terrastate and webhippie/terrastate, so feel free to choose one of the providers. Maybe we will come up with Kustomize manifests or some Helm chart.
Simply download a binary matching your operating system and your architecture
from our downloads or the GitHub releases and place it within your
path like /usr/local/bin
if you are using macOS or Linux.
We provide overall three different variants of configuration. The variant based on environment variables and commandline flags are split up into global values and command-specific values.
If you prefer to configure the service with environment variables you can see the available variables below.
info
true
true
0.0.0.0:8081
0.0.0.0:8080
false
/
http://localhost:8080
false
false
storage/
0.0.0.0:8081
storage/
If you prefer to configure the service with commandline flags you can see the available variables below.
info
true
true
0.0.0.0:8081
0.0.0.0:8080
false
/
http://localhost:8080
false
false
storage/
0.0.0.0:8081
storage/
So far we support multiple file formats like json
, yaml
, hcl
and possibly
even more, if you want to get a full example configuration just take a look at
our repository, there you can always see the latest configuration
format. These example configs include all available options and the default
values. The configuration file will be automatically loaded if it’s placed at
/etc/terrastate/config.yml
, ${HOME}/.terrastate/config.yml
or
$(pwd)/terrastate/config.yml
.
The program provides a few sub-commands on execution. The available config
methods have already been mentioned above. Generally you can always see a
formated help output if you execute the binary similar to something like
terrastate --help
.
As this project is built with Go you need to install Go first. The installation of Go is out of the scope of this document, please follow the official documentation. After the installation of Go you need to get the sources:
git clone https://github.com/webhippie/terrastate.git
cd terrastate/
All required tool besides Go itself are bundled by Go modules, all you need is
part of the Makfile
:
make generate build
Finally you should have the binary within the bin/
folder now, give it a try
with ./bin/terrastate -h
to see all available options.