/terraform-provider-grafana

Terraform Grafana provider

Primary LanguageGoMozilla Public License 2.0MPL-2.0

Terraform Provider for Grafana

Build Status

Requirements

Development

If you're new to provider development, a good place to start is the Extending Terraform docs.

Set up your local environment by installing Go. Also Docker can be used for running tests.

Running Tests

Acceptance tests require a running instance of Grafana. You can either handle running an instance of Grafana yourself or use docker-compose.

If you choose docker-compose, run make testacc-docker. This is the simplest option, but often not the quickest.

Alternatively you can use the testacc target which will use your local go installation:

# Assuming Grafana was run with:
# docker run --rm -p 3000:3000 grafana/grafana

GRAFANA_URL=http://localhost:3000 \
GRAFANA_AUTH=admin:admin \
GRAFANA_ORG_ID=1 \
make testacc

Running enterprise tests

To run tests for resources which are available only for Grafana Enterprise, running instance of Grafana Enterprise is required. It is only possible to run tests for Grafana Enterprise using local environment.

# Assuming Grafana was run with:
# docker run --rm -p 3000:3000 grafana/grafana

GRAFANA_URL=http://localhost:3000 \
GRAFANA_AUTH=admin:admin \
GRAFANA_ORG_ID=1 \
make testacc-enterprise

Documentation

Documentation is generated with tfplugindocs. Generated files are in docs/ and should not be updated manually. They are derived from:

Use go generate to update generated docs.

Releasing

Builds and releases are automated with GitHub Actions and GoReleaser.

Currently there are a few manual steps to this:

  1. Kick off the release:

    RELEASE_VERSION=v... \
    make release
  2. Publish release:

    The Action creates the release, but leaves it in "draft" state. Open it up in a browser and if all looks well, click the Auto-generate release notes button and mash the publish button.