The Statuspage provider is used to interact with the resources supported by Statuspage.io.
Clone repository to: `$GOPATH/src/github.com/yannh/terraform-provider-statuspage
$ mkdir -p $GOPATH/src/github.com/yannh; cd $GOPATH/src/github.com/yannh
$ git clone https://github.com/yannh/terraform-provider-statuspage.git
Enter the provider directory and build the provider
$ cd $GOPATH/src/github.com/yannh/terraform-provider-statuspage
$ make build
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.11+ 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-statuspage
...
In order to test the provider, set the following variables:
$ export STATUSPAGE_TOKEN=www
$ export STATUSPAGE_PAGE=xxx # PageID of the Statuspage page
$ export STATUSPAGE_PAGE_2=xxx # PageID of another Statuspage page
$ export DATADOG_API_KEY=yyy
$ export DATADOG_APPLICATION_KEY=zzz
, and then run make test acc
.
$ make test acc
Introducing group_id
parameter within the component creation has introduced a limitation in the flow of creating statuspage_component_group
and statuspage_component
.
Creating statuspage_component
without group_id
configured leads to it being highlighted as empty string on the terraform local state whereas configuring the statuspage_component_group
resource within the IaC can lead to the remote state being changed, this in turn leads to a difference in terraform plan. For group_id
parameter in statuspage_component
, DiffSuppressFunc
has been added to ignore terraform plan diff when new group_id
is expected to be an empty string.
This chicken and egg problem can happen for the statuspage_component_group
terraform resource as well, so in that case group_id
should be only set on the statuspage_component
resource when statuspage_component_group
is not included within IaC.