github.com/rvichery/terraform@v0.11.10/website/docs/backends/types/swift.html.md (about) 1 --- 2 layout: "backend-types" 3 page_title: "Backend Type: swift" 4 sidebar_current: "docs-backends-types-standard-swift" 5 description: |- 6 Terraform can store state remotely in Swift. 7 --- 8 9 # swift 10 11 **Kind: Standard (with no locking)** 12 13 Stores the state as an artifact in [Swift](http://docs.openstack.org/developer/swift/). 14 15 ~> Warning! It is highly recommended that you enable [Object Versioning](https://docs.openstack.org/developer/swift/overview_object_versioning.html) by setting the [`expire_after`](https://www.terraform.io/docs/backends/types/swift.html#archive_path) configuration. This allows for state recovery in the case of accidental deletions and human error. 16 17 ## Example Configuration 18 19 ```hcl 20 terraform { 21 backend "swift" { 22 path = "terraform-state" 23 } 24 } 25 ``` 26 This will create a container called `terraform-state` and an object within that container called `tfstate.tf`. 27 28 -> Note: Currently, the object name is statically defined as 'tfstate.tf'. Therefore Swift [pseudo-folders](https://docs.openstack.org/user-guide/cli-swift-pseudo-hierarchical-folders-directories.html) are not currently supported. 29 30 For the access credentials we recommend using a 31 [partial configuration](/docs/backends/config.html). 32 33 ## Example Referencing 34 35 ```hcl 36 data "terraform_remote_state" "foo" { 37 backend = "swift" 38 config { 39 path = "terraform_state" 40 } 41 } 42 ``` 43 44 ## Configuration variables 45 46 The following configuration options are supported: 47 48 * `auth_url` - (Required) The Identity authentication URL. If omitted, the 49 `OS_AUTH_URL` environment variable is used. 50 51 * `container` - (Required) The name of the container to create for storing 52 the Terraform state file. 53 54 * `path` - (Optional) DEPRECATED: Use `container` instead. 55 The name of the container to create in order to store the state file. 56 57 * `user_name` - (Optional) The Username to login with. If omitted, the 58 `OS_USERNAME` environment variable is used. 59 60 * `user_id` - (Optional) The User ID to login with. If omitted, the 61 `OS_USER_ID` environment variable is used. 62 63 * `password` - (Optional) The Password to login with. If omitted, the 64 `OS_PASSWORD` environment variable is used. 65 66 * `token` - (Optional) Access token to login with instead of user and password. 67 If omitted, the `OS_AUTH_TOKEN` variable is used. 68 69 * `region_name` (Required) - The region in which to store `terraform.tfstate`. If 70 omitted, the `OS_REGION_NAME` environment variable is used. 71 72 * `tenant_id` (Optional) The ID of the Tenant (Identity v2) or Project 73 (Identity v3) to login with. If omitted, the `OS_TENANT_ID` or 74 `OS_PROJECT_ID` environment variables are used. 75 76 * `tenant_name` - (Optional) The Name of the Tenant (Identity v2) or Project 77 (Identity v3) to login with. If omitted, the `OS_TENANT_NAME` or 78 `OS_PROJECT_NAME` environment variable are used. 79 80 * `domain_id` - (Optional) The ID of the Domain to scope to (Identity v3). If 81 omitted, the following environment variables are checked (in this order): 82 `OS_USER_DOMAIN_ID`, `OS_PROJECT_DOMAIN_ID`, `OS_DOMAIN_ID`. 83 84 * `domain_name` - (Optional) The Name of the Domain to scope to (Identity v3). 85 If omitted, the following environment variables are checked (in this order): 86 `OS_USER_DOMAIN_NAME`, `OS_PROJECT_DOMAIN_NAME`, `OS_DOMAIN_NAME`, 87 `DEFAULT_DOMAIN`. 88 89 * `insecure` - (Optional) Trust self-signed SSL certificates. If omitted, the 90 `OS_INSECURE` environment variable is used. 91 92 * `cacert_file` - (Optional) Specify a custom CA certificate when communicating 93 over SSL. If omitted, the `OS_CACERT` environment variable is used. 94 95 * `cert` - (Optional) Specify client certificate file for SSL client authentication. 96 If omitted the `OS_CERT` environment variable is used. 97 98 * `key` - (Optional) Specify client private key file for SSL client authentication. 99 If omitted the `OS_KEY` environment variable is used. 100 101 * `archive_container` - (Optional) The container to create to store archived copies 102 of the Terraform state file. If specified, Swift [object versioning](https://docs.openstack.org/developer/swift/overview_object_versioning.html) is enabled on the container created at `container`. 103 104 * `archive_path` - (Optional) DEPRECATED: Use `archive_container` instead. 105 The path to store archived copied of `terraform.tfstate`. If specified, 106 Swift [object versioning](https://docs.openstack.org/developer/swift/overview_object_versioning.html) is enabled on the container created at `path`. 107 108 * `expire_after` - (Optional) How long should the `terraform.tfstate` created at `path` 109 be retained for? Supported durations: `m` - Minutes, `h` - Hours, `d` - Days.