https://github.com/scaleway-terraform-modules/terraform-scaleway-bucket
Manage Object Storage buckets on Scaleway with Terraform.
https://github.com/scaleway-terraform-modules/terraform-scaleway-bucket
object-storage scaleway scaleway-object storage terraform-module
Last synced: about 2 months ago
JSON representation
Manage Object Storage buckets on Scaleway with Terraform.
- Host: GitHub
- URL: https://github.com/scaleway-terraform-modules/terraform-scaleway-bucket
- Owner: scaleway-terraform-modules
- License: mpl-2.0
- Created: 2023-02-04T18:53:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-03-27T11:03:25.000Z (2 months ago)
- Last Synced: 2025-04-17T11:58:55.440Z (about 2 months ago)
- Topics: object-storage, scaleway, scaleway-object, storage, terraform-module
- Language: HCL
- Homepage:
- Size: 53.7 KB
- Stars: 6
- Watchers: 1
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Terraform / Scaleway
## Purpose
This repository is used to manage object storage buckets on scaleway using terraform.
## Usage
- Setup the [scaleway provider](https://www.terraform.io/docs/providers/scaleway/index.html) in your tf file.
- Include this module in your tf file. Refer to [documentation](https://www.terraform.io/docs/modules/sources.html#generic-git-repository).```hcl
module "my_bucket" {
source = "scaleway-terraform-modules/bucket/scaleway"
version = "~> 1"name = "my_bucket"
}
```## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement_terraform) | >= 0.13 |
| [scaleway](#requirement_scaleway) | >= 2.10.0 |## Resources
| Name | Type |
|------|------|
| [scaleway_object_bucket.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/object_bucket) | resource |
| [scaleway_object_bucket_acl.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/object_bucket_acl) | resource |
| [scaleway_object_bucket_lock_configuration.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/object_bucket_lock_configuration) | resource |
| [scaleway_object_bucket_policy.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/object_bucket_policy) | resource |
| [scaleway_object_bucket_website_configuration.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/object_bucket_website_configuration) | resource |## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [name](#input_name) | Name of the bucket. | `string` | n/a | yes |
| [acl](#input_acl) | Canned ACL to apply to the bucket. See AWS (documentation)[https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl] for more information. | `string` | `"private"` | no |
| [force_destroy](#input_force_destroy) | Enable deletion of objects in bucket before destroying, locked objects or under legal hold are also deleted and not recoverable. | `bool` | `false` | no |
| [lifecycle_rules](#input_lifecycle_rules) | Define bucket lifecycle configuration | ```list(object({ id = string prefix = optional(string) tags = optional(map(string)) enabled = bool abort_incomplete_multipart_upload_days = optional(number) expiration = optional(object({ days = string })) transition = optional(object({ days = number storage_class = string })) }))``` | `[]` | no |
| [policy](#input_policy) | Policy document. For more information about building AWS IAM policy documents with Terraform, see the [AWS IAM Policy Document Guide](https://learn.hashicorp.com/tutorials/terraform/aws-iam-policy). | ```object({ Version = string, Id = string Statement = list(object({ Sid = string Effect = string Principal = map(any) Action = list(string) Resource = list(string) })) })``` | `null` | no |
| [project_id](#input_project_id) | ID of the project the bucket is associated with. If null, ressources will be created in the default project associated with the key. | `string` | `null` | no |
| [region](#input_region) | Region in which the bucket should be created. Ressource will be created in the region set at the provider level if null. | `string` | `null` | no |
| [tags](#input_tags) | A list of tags for the bucket. As the Scaleway console does not support key/value tags, tags are written with the format value/value. | `list(string)` | `[]` | no |
| [versioning_enabled](#input_versioning_enabled) | Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. You can, however, suspend versioning on that bucket. **Warning:** This variable is ignored when a lock rule is defined. | `bool` | `false` | no |
| [versioning_lock_configuration](#input_versioning_lock_configuration) | Specifies the Object Lock rule for the bucket. Requires versioning. | ```object({ mode = optional(string, "GOVERNANCE"), days = optional(number), years = optional(number), })``` | `null` | no |
| [website_index](#input_website_index) | Website Configuration. | `string` | `null` | no |## Outputs
| Name | Description |
|------|-------------|
| [bucket_endpoint](#output_bucket_endpoint) | Endpoint URL of the bucket. |
| [bucket_id](#output_bucket_id) | Unique name of the bucket. |
| [s3_website_information](#output_s3_website_information) | S3 Website information |## Authors
Module is maintained with help from [the community](https://github.com/scaleway-terraform-modules/terraform-scaleway-bucket/graphs/contributors).
## License
Mozilla Public License 2.0 Licensed. See [LICENSE](https://github.com/scaleway-terraform-modules/terraform-scaleway-bucket/tree/master/LICENSE) for full details.