Terraform
etcdv3
Stores the state in the etcd KV store with a given prefix.
This backend supports state locking.
Example Configuration
terraform {
backend "etcdv3" {
endpoints = ["etcd-1:2379", "etcd-2:2379", "etcd-3:2379"]
lock = true
prefix = "terraform-state/"
}
}
Note that for the access credentials we recommend using a partial configuration.
Data Source Configuration
data "terraform_remote_state" "foo" {
backend = "etcdv3"
config = {
endpoints = ["etcd-1:2379", "etcd-2:2379", "etcd-3:2379"]
lock = true
prefix = "terraform-state/"
}
}
Configuration variables
The following configuration options / environment variables are supported:
endpoints
- (Required) The list of 'etcd' endpoints which to connect to.username
/ETCDV3_USERNAME
- (Optional) Username used to connect to the etcd cluster.password
/ETCDV3_PASSWORD
- (Optional) Password used to connect to the etcd cluster.prefix
- (Optional) An optional prefix to be added to keys when to storing state in etcd. Defaults to""
.lock
- (Optional) Whether to lock state access. Defaults totrue
.cacert_path
- (Optional) The path to a PEM-encoded CA bundle with which to verify certificates of TLS-enabled etcd servers.cert_path
- (Optional) The path to a PEM-encoded certificate to provide to etcd for secure client identification.key_path
- (Optional) The path to a PEM-encoded key to provide to etcd for secure client identification.max_request_bytes
- (Optional) The max request size to send to etcd. This can be increased to enable storage of larger state. You must set the corresponding server-side flag --max-request-bytes as well and the value should be less than the client setting. Defaults to2097152
(2.0 MiB). Please Note: Increasing etcd's request size limit may negatively impact overall latency.