MCPcopy Index your code
hub / github.com/aminueza/terraform-provider-minio

github.com/aminueza/terraform-provider-minio @v3.38.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.38.1 ↗ · + Follow
1,413 symbols 4,487 edges 231 files 161 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

minio-provider-terraform

Terraform Provider for MinIO

<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>

Project Overview

The Terraform Provider for MinIO enables infrastructure as code management for MinIO object storage deployments. This provider supports comprehensive MinIO features including:

  • Bucket Management: Create, configure, and manage S3-compatible buckets
  • IAM Operations: User management, policies, and access control
  • Object Operations: Upload, download, and manage objects
  • Advanced Features: Replication, lifecycle rules, encryption, versioning
  • Enterprise Support: Multi-cluster, federation, and auditing capabilities
  • S3 Compatibility: Works with Hetzner, Cloudflare R2, Backblaze B2, DigitalOcean Spaces

Key Features

  • Complete MinIO API Coverage - 55+ resources and 25+ data sources covering buckets, IAM, ILM, encryption, replication, notifications, and server configuration
  • S3 Compatible - Use with any S3-compatible backend via s3_compat_mode
  • Security First - STS AssumeRole, OIDC Web Identity, mTLS, and session token authentication
  • Developer Friendly - Descriptions on every attribute, import support on every resource
  • Active Community - Responsive maintainers and growing contributor base

Building and Installing

Prebuilt 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

Examples

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"
}

Testing

The project uses Docker Compose to run acceptance tests against multiple MinIO instances. Docker is required.

Running Tests

Run all acceptance tests:

docker compose run --rm test

Run specific tests by pattern:

TEST_PATTERN=TestAccAWSUser_SettingAccessKey docker compose run --rm test

Accessing the MinIO Console

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:

  • Username: minio
  • Password: minio123

For the other instances, use the corresponding MINIO_ROOT_PASSWORD (e.g., minio321, minio456, minio654).

Roadmap

See the Project Vision for our detailed roadmap, upcoming features, and development priorities.

Community

Getting Help

Contributing

We welcome contributions! See CONTRIBUTING.md for detailed guidelines.

  • Bug Reports: Help us fix issues
  • Feature Requests: Suggest new capabilities
  • Documentation: Improve guides and examples
  • Testing: Add test coverage and validation
  • Translation: Help with internationalization

Project Governance

This project follows open governance principles. See GOVERNANCE.md for:

  • Maintainer roles and responsibilities
  • Decision-making processes
  • Community guidelines
  • Security requirements for maintainers

License

All versions of this provider starting from v2.0.0 are distributed under the AGPL-3.0 License. See LICENSE for more information.

Acknowledgments

Core symbols most depended-on inside this repo

Shape

Function 1,343
Struct 49
Method 17
TypeAlias 4

Languages

Go100%

Modules by API surface

minio/resource_minio_s3_bucket_test.go68 symbols
minio/resource_minio_s3_bucket_lifecycle_test.go49 symbols
minio/payload.go42 symbols
minio/resource_minio_ilm_policy_test.go36 symbols
minio/resource_minio_service_account_test.go33 symbols
minio/resource_minio_accesskey_test.go30 symbols
minio/check_config.go30 symbols
minio/resource_minio_iam_user_test.go29 symbols
minio/resource_minio_notify_targets_acc_test.go24 symbols
minio/utils.go23 symbols
minio/resource_minio_s3_bucket_lifecycle.go22 symbols
minio/resource_minio_s3_bucket.go20 symbols

For agents

$ claude mcp add terraform-provider-minio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page