Skip to content

exoscale/terraform-provider-exoscale

Repository files navigation

Exoscale Terraform Provider

Requirements

Installation

From the Terraform Registry (recommended)

The Exoscale provider is available on the Terraform Registry. To use it, simply execute the terraform init command in a directory containing Terraform configuration files referencing Exoscale provider resources:

terraform init

Output:

Initializing the backend...

Initializing provider plugins...
- Finding exoscale/exoscale versions matching "0.18.2"...
- Installing exoscale/exoscale v0.18.2...
- Installed exoscale/exoscale v0.18.2 (signed by a HashiCorp partner, key ID 8B58C61D4FFE0C86)

...

From Sources

If you prefer to build the plugin from sources, clone the GitHub repository locally and run the command make build from the root of the sources directory. Upon successful compilation, a terraform-provider-exoscale_vdev plugin binary file can be found in the bin/ directory. Then, follow the Terraform documentation on how to install provider plugins.

Usage

The complete and up-to-date documentation for the Exoscale provider is available on the Terraform Registry. Additionally, you can find information on the general Terraform usage on the HashiCorp Terraform website.

Contributing

  • If you think you've found a bug in the code or you have a question regarding the usage of this software, please reach out to us by opening an issue in this GitHub repository.
  • Contributions to this project are welcome: if you want to add a feature or a fix a bug, please do so by opening a Pull Request in this GitHub repository. In case of feature contribution, we kindly ask you to open an issue to discuss it beforehand.
  • The documentation in the docs folder is generated from the descriptions in the source code. If you change the .Description of a resource attribute for example, you will need to run go generate in the root folder of the repository to update the generated docs. This is necessary to mere any PR as our CI checks whether the docs are up to date with the sources.
  • Code changes require associated acceptance tests: the complete provider test suite (make test-acc) is executed as part of the project's GitHub repository CI workflow, however you can execute targeted tests locally before submitting a Pull Request to ensure tests pass (e.g. for the exoscale_compute resource only):
  • We are migrating the provider to the new plugin framework. If you'd like to implement new resources, please do so in the framework. The zones datasource may provide the necessary inspiration.
make GO_TEST_EXTRA_ARGS="-v -run ^TestAccResourceCompute$" test-acc

Development Setup

If you would like to use the terraform provider you have built and try configurations on it as you are developing, then we recommend setting up a dev_override. Create a file named dev.tfrc in the root directory of this repository:

provider_installation {
  dev_overrides {
    "exoscale/exoscale" = "/path/to/the/repository/root/directory"
  }

  direct {}
}

Now export TF_CLI_CONFIG_FILE=$PWD/dev.tfrc in your shell and from now on, whenever you run a terraform command in this shell and the configuration references the exoscale/exoscale provider, it will use the provider you built locally instead of downloading an official release. For this to work you need to make sure you always run go build so that your changes are compiled into a provider binary in the root directory of the repository.