https://github.com/aminueza/terraform-provider-minio
Terraform provider for managing MinIO S3 buckets and IAM Users.
https://github.com/aminueza/terraform-provider-minio
hcl minio s3 terraform-provider
Last synced: 3 months ago
JSON representation
Terraform provider for managing MinIO S3 buckets and IAM Users.
- Host: GitHub
- URL: https://github.com/aminueza/terraform-provider-minio
- Owner: aminueza
- License: agpl-3.0
- Created: 2019-12-08T14:47:56.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-11-09T02:19:38.000Z (11 months ago)
- Last Synced: 2024-11-09T02:24:18.489Z (11 months ago)
- Topics: hcl, minio, s3, terraform-provider
- Language: Go
- Homepage: https://registry.terraform.io/providers/aminueza/minio
- Size: 1.08 MB
- Stars: 241
- Watchers: 8
- Forks: 70
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-starred - aminueza/terraform-provider-minio - Terraform provider for managing MinIO S3 buckets and IAM Users. (others)
- trackawesomelist - terraform-provider-minio (⭐259) - Terraform provider for managing MinIO S3 buckets and IAM Users. (Recently Updated / [Feb 10, 2025](/content/2025/02/10/README.md))
README
Terraform Provider for MinIO
## Table of Contents
- [Table of Contents](#table-of-contents)
- [About this project](#about-this-project)
- [Supported Versions](#supported-versions)
- [Building and Installing](#building-and-installing)
- [Examples](#examples)
- [Testing](#testing)
- [Usage](#usage)
- [Roadmap](#roadmap)
- [License](#license)
- [Acknowledgements](#acknowledgements)## About this project
A [Terraform](https://www.terraform.io) provider to manage [MinIO Cloud Storage](https://min.io).
Made with ♥ using [Go](https://golang.org/).
## Supported Versions
- Terraform v1.5
- Go v1.24It doesn't mean that this provider won't run on previous versions of Terraform or Go, though.
It just means that we can't guarantee backward compatibility.## Building and Installing
Prebuilt versions of this provider are available on the [releases page](https://github.com/aminueza/terraform-provider-minio/releases/latest).
But if you need to build it yourself, just download this repository, [install](https://taskfile.dev/#/installation) [Task](https://taskfile.dev/):
```sh
go install github.com/go-task/task/v3/cmd/task@latest
```And run the following command to build and install the plugin in the correct folder (resolved automatically based on the current Operating System):
```sh
task install
```## Examples
Explore the [examples](./examples/) folder for more usage scenarios.
To get started quickly, you can use the configuration from [examples/user/main.tf](./examples/user/main.tf) as shown below:
```hcl
terraform {
required_providers {
minio = {
source = "aminueza/minio"
version = ">= 3.0.0"
}
}
}provider "minio" {
minio_server = var.minio_server
minio_region = var.minio_region
minio_user = var.minio_user
minio_password = var.minio_password
}
```You may use variables to configure your provider (as in the example):
```hcl
variable "minio_region" {
description = "Default MINIO region"
default = "us-east-1"
}variable "minio_server" {
description = "Default MINIO host and port"
default = "localhost:9000"
}variable "minio_user" {
description = "MINIO user"
default = "minio"
}variable "minio_password" {
description = "MINIO password"
default = "minio123"
}
```## Testing
For testing locally, run the docker compose to spin up a minio server:
```sh
docker compose up
```## Accessing the MinIO Console
After running `docker compose up`, you can access the MinIO Console (the web UI) for each MinIO instance:
- Main MinIO: [http://localhost:9001](http://localhost:9001)
- Second MinIO: [http://localhost:9003](http://localhost:9003)
- Third MinIO: [http://localhost:9005](http://localhost:9005)
- Fourth MinIO: [http://localhost:9007](http://localhost:9007)**Login credentials** are set in your `docker-compose.yml` for each service. For example, for the main MinIO instance:
- Username: `minio`
- Password: `minio123`For the other instances, use the corresponding `MINIO_ROOT_PASSWORD` (e.g., `minio321`, `minio456`, `minio654`).
## Roadmap
See the [open issues](https://github.com/aminueza/terraform-provider-minio/issues) for a list of proposed features (and known issues). See [CONTRIBUTING](./.github/CONTRIBUTING.md) for more information.
## License
All versions of this provider starting from v2.0.0 are distributed under the AGPL-3.0 License. See [LICENSE](./LICENSE) for more information.
## Acknowledgements
- [HashiCorp Terraform](https://www.hashicorp.com/products/terraform)
- [MinIO](https://min.io)
- [Best Readme](https://github.com/othneildrew/Best-README-Template)