-
Notifications
You must be signed in to change notification settings - Fork 10.2k
Description
Terraform Version
latestUse Cases
A new Terraform backend utilising Oracle Cloud Infrastructure (OCI) Object Storage as the storage backend. Leveraging OCI Object Storage provides a scalable and cost-effective alternative to traditional backends, offering a robust solution for state file storage and management.
Attempted Solutions
Traditional Terraform backends, such as Amazon S3 and Azure Blob Storage, have been widely used for state file storage. However, for organisations operating within the Oracle Cloud ecosystem, OCI Object Storage presents an attractive option. This custom backend aims to facilitate Terraform deployments within OCI by seamlessly integrating with OCI Object Storage.
We aim to introduce OCI as a Terraform backend option, leveraging Object Storage. This implementation supports state lock relying on object storage alone, eliminating the need for DynamoDB when using S3-backed solutions.
Proposal
The Terraform user configures the backend using the custom backend module, specifying the OCI Object Storage details.
backend "oci" {
bucket = "<mybucket>"
object = "<state file name>"
namespace = "<Namespace>"
# Other OCI authentication details
tenancy_ocid = "<Your Tenancy OCID>"
user_ocid = "<Your User OCID>"
fingerprint = "<Your API Key Fingerprint>"
private_key_path = "<Path to Your Private Key File>"
region = "<OCI Region>"
}
}
--
2. During Terraform operations, the backend module interacts with OCI IAM to authenticate and obtain the necessary credentials.
3. The state file is read from or written to OCI Object Storage securely.
4. Access control policies ensure that only authorised users and services can interact with the state files.
### References
[- 32634](https://github.com/hashicorp/terraform/issues/32634)