Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/grafana/terraform-provider-grafana
Terraform Grafana provider
https://github.com/grafana/terraform-provider-grafana
grafana terraform terraform-provider
Last synced: 7 days ago
JSON representation
Terraform Grafana provider
- Host: GitHub
- URL: https://github.com/grafana/terraform-provider-grafana
- Owner: grafana
- License: mpl-2.0
- Created: 2017-06-05T20:54:05.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T09:11:40.000Z (3 months ago)
- Last Synced: 2024-10-29T09:23:06.781Z (3 months ago)
- Topics: grafana, terraform, terraform-provider
- Language: Go
- Homepage: https://www.terraform.io/docs/providers/grafana/
- Size: 15.4 MB
- Stars: 430
- Watchers: 149
- Forks: 228
- Open Issues: 71
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Terraform Provider for Grafana
[![Acceptance Tests](https://github.com/grafana/terraform-provider-grafana/actions/workflows/acc-tests.yml/badge.svg)](https://github.com/grafana/terraform-provider-grafana/actions/workflows/acc-tests.yml)
[![Unit Tests](https://github.com/grafana/terraform-provider-grafana/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/grafana/terraform-provider-grafana/actions/workflows/unit-tests.yml)
[![Cloud Acceptance Tests](https://github.com/grafana/terraform-provider-grafana/actions/workflows/cloud-acc-tests.yml/badge.svg)](https://github.com/grafana/terraform-provider-grafana/actions/workflows/cloud-acc-tests.yml)- Grafana website:
- Grafana Cloud website:
- Provider Documentation:
- Grafana Chat: [Grafana #terraform Slack channel](https://grafana.slack.com/archives/C017MUCFJUT)## Requirements
- [Terraform](https://www.terraform.io/downloads.html) 0.12+
## Development
If you're new to provider development, a good place to start is the [Extending
Terraform](https://www.terraform.io/docs/extend/index.html) docs.Set up your local environment by installing [Go](http://www.golang.org). Also
[Docker](https://docs.docker.com/install/) can be used for running tests.## Local Development with Grafana
If you develop the provider and want to test locally with your grafana provider
1. create a `.terraformrc` file in your operating system user directory and paste the following
```
provider_installation {
dev_overrides {
"grafana/grafana" = "/path/to/your/terraform-provider-grafana" # this path is the directory where the binary is built
}
# For all other providers, install them directly from their origin provider
# registries as normal. If you omit this, Terraform will _only_ use
# the dev_overrides block, and so no other providers will be available.
direct {}
}
```
2. Run `go build` in this directory to get the binary, Terraform will use the binary you just built for every terraform plan/apply (it should print out a warning). No need to run terraform init.### 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:```sh
# Assuming Grafana was run with:
# docker run --rm -p 3000:3000 grafana/grafanaGRAFANA_URL=http://localhost:3000 \
GRAFANA_AUTH=admin:admin \
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.```sh
# Assuming Grafana was run with:
# docker run --rm -p 3000:3000 grafana/grafanaGRAFANA_URL=http://localhost:3000 \
GRAFANA_AUTH=admin:admin \
make testacc-enterprise
```## Documentation
Documentation is generated with
[tfplugindocs](https://github.com/hashicorp/terraform-plugin-docs). Generated
files are in `docs/` and should not be updated manually. They are derived from:- Schema `Description` fields in the provider Go code.
- [examples/](./examples)
- [templates/](./templates)Use `go generate` to update generated docs.
## Releasing
Builds and releases are automated with GitHub Actions and
[GoReleaser](https://github.com/goreleaser/goreleaser/).Currently there are a few manual steps to this:
1. Kick off the release:
```sh
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](https://github.com/grafana/terraform-provider-grafana/releases)
and if all looks well, click the `Auto-generate release notes` button and mash the publish button.