Skip to content

aminueza/terraform-provider-minio

Repository files navigation

minio-provider-terraform

Terraform Provider for MinIO

Contributors GitHub go.mod Go version GitHub Workflow Status GitHub release (latest by date including pre-releases)

Explore the docs »

Table of Contents

About this project

A Terraform provider to manage MinIO Cloud Storage.

Made with using Go.

Supported Versions

  • Terraform v1.5
  • Go v1.24

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

But if you need to build it yourself, just download this repository, install Task:

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

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

For testing locally, run the docker compose to spin up a minio server:

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:

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 for a list of proposed features (and known issues). See CONTRIBUTING for more information.

License

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

Acknowledgements

About

Terraform provider for managing MinIO S3 buckets and IAM Users.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors 50