The provider can be used to interact with Juju - a model-driven Operator Lifecycle Manager (OLM).
Requirements
Building The Provider
- Clone the repository
- Enter the repository directory
- Build the provider using the Go
install
command:
go install
Adding Dependencies
This provider uses Go modules.
Please see the Go documentation for the most up to date information about using Go modules.
To add a new dependency github.com/author/dependency
to your Terraform provider:
go get github.com/author/dependency
go mod tidy
Then commit the changes to go.mod
and go.sum
.
Developing the Provider
If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements above).
To compile the provider, run go install
. This will build the provider and put the provider binary in the $GOPATH/bin
directory.
To generate or update documentation, run go generate
.
In order to run the full suite of Acceptance tests, run make testacc
.
Note: Acceptance tests create real resources.
Prior to running the tests locally, ensure you have the following environmental variables set:
JUJU_CONTROLLER_ADDRESSES
JUJU_USERNAME
JUJU_PASSWORD
JUJU_CA_CERT
For example, here they are set using the currently active controller:
CONTROLLER=$(juju whoami | yq .Controller)
export JUJU_CONTROLLER_ADDRESSES="$(juju show-controller | yq .$CONTROLLER.details.api-endpoints | tr -d "[]' ")"
export JUJU_USERNAME="$(cat ~/.local/share/juju/accounts.yaml | yq .controllers.$CONTROLLER.user)"
export JUJU_PASSWORD="$(cat ~/.local/share/juju/accounts.yaml | yq .controllers.$CONTROLLER.password)"
export JUJU_CA_CERT="$(juju show-controller $CONTROLLER | yq .$CONTROLLER.details.ca-cert)"
Then, finally, run the tests:
make testacc