Skip to content

refaktory/terraform-provider-minio

Repository files navigation

terraform-provider-minio

A Terraform provider for Minio, a self-hosted object storage server that is compatible with S3.

Check out the documenation on the Terraform Registry - refaktory/minio for more information and usage examples.

Features

Resources

  • Buckets
    • Create/delete
    • Versioning config
    • Encryption config
    • Replication config
    • Lifecycle config
    • Access rules
  • Users
    • Create/delete
    • Assign policies
    • Assign groups
  • Serviceaccounts
  • Canned policies
  • Groups
    • Create/delete
    • Assign policies
  • Objects
    • [ ] Create files with a given content

Datasources

  • Bucket
  • Canned policy
  • Group
  • User
  • Serviceaccount

Usage

Consult the published documenation on the registry for usage documenation.

Additional examples are available in the ./examples directory.

Local Development

Configure Terraform to use the locally built provider

Add this configuration into $HOME/.terraformrc:

(Notice the trailing /bin in the path)

provider_installation {
  dev_overrides {
    "refaktory-dev/minio" = "/PATH/TO/LOCAL/REPO/bin"
  }

  direct {}
}

Build

Build the provider with make build

Test manually

  • Start a local minio instance in a separate terminal (and keep it running) docker-compose up

  • Use the provider cd ./examples && terraform apply

Deploy

Steps to deploy:

  • make prepare-release
  • git tag v0.X.0
  • git push

Actual publishing is handled by the Github action defined in ./.github/workflows/release.yml.

The module is managed on the Terraform registry at https://registry.terraform.io/publish/provider.

About

Developed by refaktory.