This provider is used to configure certain resources supported by Split API.
For provider bugs/questions, please open an issue on this repository.
Documentation
Documentation about resources and data sources can be found
here.
Requirements
- Terraform
v0.13.x+
- Go 1.18 (to build the provider plugin)
Usage
provider "split" {
version = "~> 0.1.0"
# Use either api_key (default) for Bearer token authentication
api_key = "YOUR_API_KEY"
# OR use harness_token for x-api-key header authentication
# harness_token = "YOUR_HARNESS_TOKEN"
}
Authentication Options
This provider supports two authentication methods:
-
API Key Authentication (Default): Uses a Bearer token in the Authorization header.
- Set via the
api_key parameter or the SPLIT_API_KEY environment variable.
-
Harness Token Authentication: Uses the x-api-key header for authentication.
- Set via the
harness_token parameter or the HARNESS_TOKEN environment variable.
- When this authentication method is used, the following resources are deprecated and cannot be used:
split_user
split_group
split_workspace
split_api_key (only when type = "admin")
Releases
Provider binaries can be found here.
Development
If you wish to work on the provider, you'll first need Go installed on your machine (version 1.12+ is required).
If you wish to bump the provider version, you can do so in the file version/version.go.
Build the Provider
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-split
...
Using the Provider
To use the dev provider with local Terraform, copy the freshly built plugin into Terraform's local plugins directory:
cp $GOPATH/bin/terraform-provider-split ~/.terraform.d/plugins/
Set the split provider without a version constraint:
provider "split" {}
Then, initialize Terraform:
terraform init
Testing
Please see the TESTING guide for detailed instructions on running tests.
Updating or adding dependencies
This project uses Go Modules for dependency management.
This example will fetch a module at the release tag and record it in your project's go.mod and go.sum files.
It's a good idea to run go mod tidy afterward and then go mod vendor to copy the dependencies into a vendor/ directory.
If a module does not have release tags, then module@SHA can be used instead.