{"id":20700192,"url":"https://github.com/dmpe/terraform-provider-storagegrid","last_synced_at":"2026-02-06T03:09:34.130Z","repository":{"id":262609910,"uuid":"885755160","full_name":"dmpe/terraform-provider-storagegrid","owner":"dmpe","description":"NetApp StorageGrid S3 Provider for Terraform","archived":false,"fork":false,"pushed_at":"2026-02-03T15:15:16.000Z","size":280,"stargazers_count":3,"open_issues_count":2,"forks_count":5,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-04T05:19:15.441Z","etag":null,"topics":["netapp","s3","storagegrid","terraform-plugin-framework","terraform-provider"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/providers/dmpe/storagegrid/latest/docs","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmpe.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-11-09T10:05:31.000Z","updated_at":"2026-02-03T15:16:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb0a1dc6-f518-4484-a13f-54cd9444e7ba","html_url":"https://github.com/dmpe/terraform-provider-storagegrid","commit_stats":null,"previous_names":["dmpe/terraform-provider-storagegrid"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/dmpe/terraform-provider-storagegrid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmpe%2Fterraform-provider-storagegrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmpe%2Fterraform-provider-storagegrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmpe%2Fterraform-provider-storagegrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmpe%2Fterraform-provider-storagegrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmpe","download_url":"https://codeload.github.com/dmpe/terraform-provider-storagegrid/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmpe%2Fterraform-provider-storagegrid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29147517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-06T02:39:25.012Z","status":"ssl_error","status_checked_at":"2026-02-06T02:37:22.784Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["netapp","s3","storagegrid","terraform-plugin-framework","terraform-provider"],"created_at":"2024-11-17T00:33:57.458Z","updated_at":"2026-02-06T03:09:34.114Z","avatar_url":"https://github.com/dmpe.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Terraform Provider for NetApp StorageGRID S3\n\nThis is a terraform provider plugin for [NetApp StorageGRID S3](https://www.netapp.com/data-storage/storagegrid/) system.\n\n**Update Summer 2025**:\nI no longer work at the company which has access to the StorageGrid system. \nAs a result, I am no longer able to conduct any tests and rely on contributors to 1) find and 2) fix any issues. \n\nThat does __NOT__ mean that this provider is abandoned and will not be updated anymore. \nIf fact, if a PR is opened, I will be happy to review + release a new version ASAP.\n\n## What is working and what is not working?\n\nThis provider aims to cover selected **Tenant** [REST API endpoints such](https://docs.netapp.com/us-en/storagegrid/tenant/understanding-tenant-management-api.html) `users`, `groups`, `buckets` or `s3` (which creates access/secret keys). \n\nThis provider does not currently support any [Grid Management API endpoints](https://docs.netapp.com/us-en/storagegrid/admin/grid-management-api-operations.html) which can be found in the Grid Management view.\n\nThis severally limits what can be changed and adjusted, when compared to the Grid Management REST API.\n\n# Getting started\n\nConfiguring [required providers](https://www.terraform.io/docs/language/providers/requirements.html#requiring-providers):\n\n```terraform\nterraform {\n  required_providers {\n    storagegrid = {\n      source  = \"dmpe/storagegrid\"\n      version = \"\" # My strong advice - always pin this provider's version!\n    }\n  }\n}\n```\n\n### Authentication\n\nThe StorageGRID provider offers 2 different ways of providing credentials for authentication.\n\nThe following methods are supported:\n\n* Static credentials\n* Environment variables\n\n#### Static credentials\n\nDefault static credentials can be provided by adding the `tenant`, `username`, \n`password` and `address` in the provider block:\n\n`insecure` can be used when using self-signed certificates on your StorageGRID system.\n\n```terraform\nprovider \"storagegrid\" {\n  address   = \"https://grid.firm.com:9443\"\n  username  = \"grid\"\n  password  = \"change_me\"\n  tenant    = \"\u003cint\u003e\" # Tenant ID\n  insecure  = false\n}\n```\n\n#### Environment Variables\n\nYou can also provide your credentials for the default connection via the `STORAGEGRID_ADDRESS`, \n`STORAGEGRID_USERNAME`, `STORAGEGRID_PASSWORD`, `STORAGEGRID_TENANT` environmental variables. \n\nMake sure that you export them properly, like this:\n\n```bash\nexport STORAGEGRID_ADDRESS=\nexport STORAGEGRID_USERNAME=\nexport STORAGEGRID_PASSWORD=\nexport STORAGEGRID_TENANT=\n```\n\nand then use:\n\n```terraform\nprovider \"storagegrid\" {\n}\n```\n\n# Developer Contributions and Documentation\n\n## How to develop this provider\n\nContributions are always welcome! In order to develop this provider your system needs:\n\n- `make`\n- `golang`\n- `terraform` for running real life tests\n\nThe GitHub workflow is very simple:\n\n1. Fork this repo.\n2. Push your changes to some branch, and create Pull Request against this repo.\n3. Then either ping me or assign me for review.\n\nPlease, make sure that your changes either:\n\n- a) include tests (in `golang`, `terraform` or `terraform-in-golang`, etc.) OR\n- b) your confirmation that if you cannot publish your tests, your changes have been tested with real StorageGRID system.\n\n## Some additional information:\n\n- I followed this guideline fow how to create new provider: \u003chttps://developer.hashicorp.com/terraform/tutorials/providers-plugin-framework\u003e.\n- We use only the modern [Terraform Plugin Framework](https://github.com/hashicorp/terraform-plugin-framework) SDK.\nNot the `SDKv2` and support for it (whatever the reason) will not be accepted.\n- An early attempt was done with [Code Generation](https://developer.hashicorp.com/terraform/plugin/code-generation) approach, but I\nhave failed to overcome several issues with StorageGRID REST API (=json file) without doing manual changes to the Swagger API.\n\n## Code repository structure\n\n- `Resources` and `data sources` are located in `internal/provider/`.\n- Generated documentation is in `docs/`. Trigger it by `make generate`.\n- All tests are in `tests` folder. Golang tests are currently not being developed, i.e. validation is done with real life Terraform examples.\n- `tools` folder contains some additional functionality such as adding file headers (`copywrite`) or code for aforementioned generation of documentation. \nAdditionally, in `tools/rest-api`, it contains Swagger/OpenAPI export for specific StorageGRID version(s). \n- In `root` we can find:\n  - `.terraformrc` file which is used for local development. You may not need it. But you will, if your tests will include other Terraform providers (such as my internal tests that use HashiCorp Vault etc.)\n  - `makefile` which essentially governs developing this provider. Execute as \n\n  ```bash\n  make install_dnf\n  make lint\n  make fmt\n  make build\n  ```\n\nThe repo also contains `Dockerfile` which can be build using `make docker`. \nAfter that you simply use inside the container different `make` commands like this:\n\n```bash\ndocker run -it -v $(pwd):/home storagegrid_dev:latest\n$ make build\n$ make lint\n....\n```\n\n## Contributors\n\nThis project has received significant contributions by:\n\n- several corporate employees employed at \u003chttps://github.com/svalabs\u003e.\n\nOther open source enthusiasts can be found here:\n- \u003chttps://github.com/dmpe/terraform-provider-storagegrid/graphs/contributors\u003e\n\nI am grateful to them. Thank you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmpe%2Fterraform-provider-storagegrid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmpe%2Fterraform-provider-storagegrid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmpe%2Fterraform-provider-storagegrid/lists"}