This provider allows to manage with Terraform AWS Redshift objects like users, groups, schemas, etc..
It's published on the Terraform registry.
Requirements
- Terraform >= 1.0
- Go 1.17 (to build the provider plugin)
Building The Provider
$ git clone git@github.com:brainly/terraform-provider-redshift
Enter the provider directory and build the provider
$ cd terraform-provider-redshift
$ make build
Development
If you're new to provider development, a good place to start is the Extending
Terraform docs.
Running Tests
Acceptance tests require a running real AWS Redshift cluster.
REDSHIFT_HOST=<cluster ip or DNS>
REDSHIFT_USER=root
REDSHIFT_DATABASE=redshift
REDSHIFT_PASSWORD=<password>
make testacc
If your cluster is only accessible from within the VPC, you can connect via a socks proxy:
ALL_PROXY=socks5[h]://[<socks-user>:<socks-password>@]<socks-host>[:<socks-port>]
NO_PROXY=127.0.0.1,192.168.0.0/24,*.example.com,localhost
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.
The changelog is managed with github-changelog-generator.
Currently there are a few manual steps to this:
-
Update the changelog:
RELEASE_VERSION=v... \
CHANGELOG_GITHUB_TOKEN=... \
make changelog
This will commit the changelog locally.
-
Review generated changelog and push:
View the committed changelog with git show
. If all is well git push origin master
.
-
Kick off the release:
RELEASE_VERSION=v... \
make release
Once the command exits, you can monitor the rest of the process on the
Actions UI.
-
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 publish button.