The OVH Provider allows Terraform to manage OVH resources.
Clone repository to: $GOPATH/src/github.com/ovh/terraform-provider-ovh
$ mkdir -p $GOPATH/src/github.com/terraform-providers/; cd $GOPATH/src/github.com/terraform-providers/ $ git clone git@github.com:ovh/terraform-provider-ovhEnter the provider directory and build the provider
$ cd $GOPATH/src/github.com/ovh/terraform-provider-ovh $ make buildPlease see the documentation in the Terraform registry.
Or you can browse the documentation within this repo here.
Configure a dev override in your .terraformrc to be able to test the local version of the provider you built. If not already present, create a terraformrc file and add a dev override for the ovh provider.
$ cat > ~/.terraformrc <<EOF provider_installation { dev_overrides { "ovh/ovh" = "$GOPATH/bin/" } direct {} } EOFBuild the provider.
# Set your target environment (OS_architecture): linux_amd64, darwin_amd64... $ export ENV="linux_amd64" $ make buildCreate a Terraform configuration with the following provider configuration.
$ mkdir ~/test-terraform-provider-ovh $ cd ~/test-terraform-provider-ovh $ cat > providers.tf <<EOF # Configure the OVHcloud Provider terraform { required_providers { ovh = { source = "ovh/ovh" version = ">= 2.7.0" } } } provider "ovh" { } EOF # Export OVHcloud API credentials $ export OVH_ENDPOINT="..." $ export OVH_APPLICATION_KEY="..." $ export OVH_APPLICATION_SECRET="..." $ export OVH_CONSUMER_KEY="..." # Initialize your project and remove existing dependencies lock file $ rm .terraform.lock.hcl && terraform init ... # Apply your resources & datasources $ terraform apply ...If you wish to work on the provider, you'll first need Go installed on your machine (version 1.8+ is required). You'll also need to correctly setup a GOPATH, as well as adding $GOPATH/bin to your $PATH.
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-ovh ...In order to test the provider, you can simply run make test.
$ make testIn order to run the full suite of Acceptance tests you will need to have the following list of OVH products attached to your account:
- a Vrack
- a Load Balancer
- a registered Domain
- a Cloud Project
- a KMS
You will also need to setup your OVH API credentials. (see documentation)
Once setup, please follow these steps to prepare an environment for running the Acceptance tests:
$ cat > ~/.ovhrc <<EOF # setup ovh api credentials export OVH_ENDPOINT="ovh-eu" export OVH_APPLICATION_KEY="..." export OVH_APPLICATION_SECRET="..." export OVH_CONSUMER_KEY="..." EOF $ source ~/.ovhrcIn order for all the tests to pass you can run:
export OVH_IP_TEST="..." export OVH_IP_BLOCK_TEST="..." export OVH_IP_REVERSE_TEST="..." export OVH_IP_MOVE_SERVICE_NAME_TEST="..." export OVH_IPLB_SERVICE_TEST="..." export OVH_CLOUD_PROJECT_SERVICE_TEST="..." export OVH_CLOUD_PROJECT_REGION_TEST="..." export OVH_CLOUD_PROJECT_LOADBALANCER_TEST="..." export OVH_CLOUD_PROJECT_FAILOVER_IP_TEST="..." export OVH_CLOUD_PROJECT_FAILOVER_IP_ROUTED_TO_1_TEST="..." export OVH_CLOUD_PROJECT_FAILOVER_IP_ROUTED_TO_2_TEST="..." export OVH_VRACK_SERVICE_TEST="..." export OVH_ZONE_TEST="..." export OVH_DOMAIN_NS1_HOST_TEST="..." export OVH_DOMAIN_NS1_IP_TEST="..." export OVH_DOMAIN_NS2_HOST_TEST="..." export OVH_DOMAIN_NS3_HOST_TEST="..." export OVH_DOMAIN_DS_RECORD_ALGORITHM_TEST="..." export OVH_DOMAIN_DS_RECORD_PUBLIC_KEY_TEST="..." export OVH_DOMAIN_DS_RECORD_TAG_TEST="..." export OVH_OKMS="..." $ make testaccTo run only one acceptance test, you can run:
$ make testacc TESTARGS="-run TestAccCloudProjectKubeUpdateVersion_basic"To run one acceptance test and bypass go test caching:
$ TF_ACC=1 go test -count=1 $(go list ./... |grep -v 'vendor') -v -run TestAccCloudProjectKubeUpdateVersion_basic -timeout 600m -p 10To remove dangling resources, you can run:
$ make testacc TESTARGS="-sweep"Please read the contributing guide to learn about how you can contribute to the OVHcloud Terraform provider ;-).
There is no small contribution, don't hesitate!
Our awesome contributors: