Terraform provider for managing Redash configurations.
Assuming git is installed:
host> git clone https://github.com/snowplow-devops/terraform-provider-redash
host> cd terraform-provider-redash
host> make test
host> make
To remove all build files:
host> make clean
To format the golang code in the source directory:
host> make format
Note: Always run format
before submitting any code.
Note: The make test
command also generates a code coverage file which can be found at build/coverage/coverage.html
.
First download the pre-compiled binary for your platform from the release assets at the following links or generate the binaries locally using the provided make
command:
https://github.com/snowplow-devops/terraform-provider-redash/releases/latest
From here you will need to move the binary into your Terraform plugins directory - depending on your platform / installation this might change but generally speaking they are located at:
- Darwin & Linux:
~/.terraform.d/plugins
- Windows:
%APPDATA%\terraform.d\plugins
To actually start tracking Snowplow events from Terraform you will need to configure the provider
and a resource
:
Before using the provider, you will need an environment variable set with your personal API Key (which can be found in your Redash profile)
$ export REDASH_API_KEY="<YourPersonalAPIKeyHere>"
# Minimal configuration
provider "redash" {
redash_uri = "https://com.acme.redash"
}
With the provider configured, we can now use data sources and manage resources.
data "redash_user" "rrunner" {
id = 1
}
resource "redash_user" "wcoyote" {
name = "Wile E. Coyote"
email = "[email protected]"
groups = [32,1]
}
data "redash_group" "geniuses" {
id = 35
}
resource "redash_group" "runners" {
name = "Beep Beep"
}
Please note that the list of required/accepted options varies wildly by type. This is entirely dependent on the Redash installation that you are connecting to. For a detailed list of types and options, you can GET from the /api/data_sources/types
endpoint on your Redash instance.
data "redash_data_source" "acme_corp" {
id = 123
}
resource "redash_data_source" "acme_corp" {
name = "ACME Corporation Product Database"
type = "redshift"
options {
host = "newproducts.acme.com"
port = 5439
dbname = "products"
user = "wcoyote"
password = "eth3LbeRt"
}
}
resource "redash_group_data_source_attachment" "wcoyote_acme" {
group_id = redash_group.geniuses.id
data_source_id = redash_data_source.acme_corp.id
}
For more detailed documentation, please see the Terraform Provider documentaton at https://registry.terraform.io/providers/snowplow-devops/redash/latest
This is handled through CI/CD on Github Actions. However all binaries will be generated by using the make
command for local publishing.
The Terraform Redash Provider is copyright 2019-2020 Snowplow Analytics Ltd.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.