<a href="https://github.com/aminueza/terraform-provider-minio/graphs/contributors">
<img alt="Contributors" src="https://img.shields.io/github/contributors/aminueza/terraform-provider-minio">
</a>
<a href="https://golang.org/doc/devel/release.html">
<img alt="GitHub go.mod Go version" src="https://img.shields.io/github/go-mod/go-version/aminueza/terraform-provider-minio">
</a>
<a href="https://github.com/aminueza/terraform-provider-minio/actions?query=workflow%3A%22Terraform+Provider+CI%22">
<img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/aminueza/terraform-provider-minio/go.yml?branch=main">
</a>
<a href="https://github.com/aminueza/terraform-provider-minio/releases/latest">
<img alt="Latest release on GitHub" src="https://img.shields.io/github/v/release/aminueza/terraform-provider-minio">
</a>
<a href="https://github.com/aminueza/terraform-provider-minio/tree/main/docs"><strong>Explore the docs »</strong></a>
<a href="https://github.com/aminueza/terraform-provider-minio/raw/v3.38.1/github/VISION.md"><strong>Project Vision »</strong></a>
<a href="https://github.com/aminueza/terraform-provider-minio/raw/v3.38.1/github/SECURITY.md"><strong>Security Policy »</strong></a>
The Terraform Provider for MinIO enables infrastructure as code management for MinIO object storage deployments. This provider supports comprehensive MinIO features including:
s3_compat_modePrebuilt versions of this provider are available on the Releases page.
But if you need to build it yourself, just download this repository, install Task, then run the following command to build and install the plugin in the correct folder (resolved automatically based on the current Operating System):
task install
Explore the examples folder for more usage scenarios.
To get started quickly, you can use the configuration from examples/user/main.tf as shown below:
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):
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"
}
The project uses Docker Compose to run acceptance tests against multiple MinIO instances. Docker is required.
Run all acceptance tests:
docker compose run --rm test
Run specific tests by pattern:
TEST_PATTERN=TestAccAWSUser_SettingAccessKey docker compose run --rm test
After running docker compose up, you can access the MinIO Console (the web UI) for each MinIO instance:
Login credentials are set in your docker-compose.yml for each service. For example, for the main MinIO instance:
miniominio123For the other instances, use the corresponding MINIO_ROOT_PASSWORD (e.g., minio321, minio456, minio654).
See the Project Vision for our detailed roadmap, upcoming features, and development priorities.
We welcome contributions! See CONTRIBUTING.md for detailed guidelines.
This project follows open governance principles. See GOVERNANCE.md for:
All versions of this provider starting from v2.0.0 are distributed under the AGPL-3.0 License. See LICENSE for more information.
$ claude mcp add terraform-provider-minio \
-- python -m otcore.mcp_server <graph>