Requirements
Architecture
All resources and data sources are implemented on top of
terraform-plugin-framework (protocol v6) and live in internal/framework/.
The provider is served directly over protocol v6; the former
terraform-plugin-sdk/v2 stub and the terraform-plugin-mux layer have been
removed. SDKv2 is no longer a runtime or direct dependency and is not imported
by any provider code — it lingers only as an indirect, test-only dependency of
terraform-plugin-testing, which the acceptance tests use.
| Resource / data source |
Runtime |
mailgun_domain (resource + data source) |
terraform-plugin-framework |
mailgun_route |
terraform-plugin-framework |
mailgun_domain_credential |
terraform-plugin-framework |
mailgun_webhook |
terraform-plugin-framework |
mailgun_api_key |
terraform-plugin-framework |
The mailgun_domain schema was bumped to version 1; a state upgrader
handles state produced by previous releases (it drops the deprecated
sending_records / receiving_records lists in favour of the
*_records_set attributes).
Building The Provider
Clone repository to: $GOPATH/src/github.com/wgebis/terraform-provider-mailgun
$ mkdir -p $GOPATH/src/github.com/wgebis; cd $GOPATH/src/github.com/wgebis
$ git clone git@github.com:wgebis/terraform-provider-mailgun
Enter the provider directory and build the provider
$ cd $GOPATH/src/github.com/wgebis/terraform-provider-mailgun
$ make build
Using the provider
https://registry.terraform.io/providers/wgebis/mailgun/latest/docs
Developing the Provider
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.8+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin to your $PATH.
To compile the provider, run make build. This will build the provider and put the provider binary in the $GOPATH/bin directory.
$ make build
...
$ $GOPATH/bin/terraform-provider-mailgun
...
In order to test the provider, you can simply run make test.
$ make test
In order to run the full suite of Acceptance tests, run make testacc.
Note: Acceptance tests create real resources, and often cost money to run.
$ make testacc