All Projects → vmware → Terraform Provider Vcd

vmware / Terraform Provider Vcd

Licence: mpl-2.0
Terraform VMware vCloud Director provider

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Terraform Provider Vcd

Terraform Provider Helm
Terraform Helm provider
Stars: ✭ 704 (+864.38%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Kubernetes
Terraform Kubernetes provider
Stars: ✭ 898 (+1130.14%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Libvirt
Terraform provider to provision infrastructure with Linux's KVM using libvirt
Stars: ✭ 894 (+1124.66%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Vsphere
Terraform VMware vSphere provider
Stars: ✭ 380 (+420.55%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Aiven
Terraform Aiven provider
Stars: ✭ 68 (-6.85%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Oci
Terraform Oracle Cloud Infrastructure provider
Stars: ✭ 400 (+447.95%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Fastly
Terraform Fastly provider
Stars: ✭ 65 (-10.96%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Ansible
"Logical" provider for integrating with an Ansible Dynamic Inventory script.
Stars: ✭ 262 (+258.9%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Zabbix
Stars: ✭ 38 (-47.95%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Packet
Terraform provider for Equinix Metal (formerly Packet)
Stars: ✭ 33 (-54.79%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Alicloud
Terraform AliCloud provider
Stars: ✭ 340 (+365.75%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Secret
Terraform secret provider
Stars: ✭ 55 (-24.66%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Github
Terraform GitHub provider
Stars: ✭ 305 (+317.81%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Aws
Terraform AWS provider
Stars: ✭ 6,624 (+8973.97%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Digitalocean
Terraform DigitalOcean provider
Stars: ✭ 296 (+305.48%)
Mutual labels:  terraform, terraform-provider
Namecheap
Go library for Namecheap API
Stars: ✭ 18 (-75.34%)
Mutual labels:  terraform, terraform-provider
terraform-provider-terraform
Terraform terraform provider
Stars: ✭ 24 (-67.12%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Kafka
Terraform provider for managing Apache Kafka Topics + ACLs
Stars: ✭ 256 (+250.68%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Dome9
Terraform Provider for Dome9
Stars: ✭ 33 (-54.79%)
Mutual labels:  terraform, terraform-provider
Terraform Provider Netlify
Terraform Netlify provider. Please note: This Terraform provider is archived per our provider archiving process: https://terraform.io/docs/internals/archiving.html
Stars: ✭ 51 (-30.14%)
Mutual labels:  terraform, terraform-provider

Terraform vCloud Director Provider

The official Terraform provider for VMware vCloud Director

Part of Terraform

Requirements

Building The Provider (the modules way)

Note. You only need to build the provider plugin if you want to develop it. Refer to documentation for using it. Terraform will automatically download officially released binaries of this provider plugin on the first run of terraform init command.

Starting with version 2.1 provider started using Go modules This means that it is no longer necessary to be in GOPATH. See more on how to use modules and toggle between modes.

$ cd ~/mydir
$ git clone https://github.com/vmware/terraform-provider-vcd.git
$ cd terraform-provider-vcd/
$ make build

Developing the Provider

Starting with terraform-provider-vcd version 2.1 Go modules are used. This means a few things:

  • The code no longer needs to stay in your GOPATH. It can though - see more on how to use modules and toggle between modes.
  • When developing terraform-provider-vcd one often needs to add extra stuff to go-vcloud-director. Go modules have a convenient replace directive which can allow you to redirect import path to your own version of go-vcloud-director. go.mod can be altered:
  • You can replace your import with a forked branch like this:
   module github.com/vmware/terraform-provider-vcd/v2
   require (
   	...
   	github.com/vmware/go-vcloud-director/v2 v2.1.0-alpha.2
   	)
   replace github.com/vmware/go-vcloud-director/v2 v2.1.0-alpha.2 => github.com/my-git-user/go-vcloud-director/v2 v2.1.0-alpha.2    
  • You can also replace pointer to a branch with relative directory
    module github.com/vmware/terraform-provider-vcd/v2
    require (
    	...
    	github.com/vmware/go-vcloud-director/v2 v2.1.0-alpha.2
    	)
    replace github.com/vmware/go-vcloud-director/v2 v2.1.0-alpha.2 => ../go-vcloud-director

See CODING_GUIDELINES.md for more advice on how to write code for this project.

Using the provider

Installing the built provider

For a more thorough test using the Terraform client, you may want to transfer the plugin in the Terraform directory. A make command can do this for you:

$ make install

This command will build the plugin and transfer it to $HOME/.terraform.d/plugins, with a name that includes the version (as taken from the ./VERSION file).

Starting with terraform 0.13, the path where the plugin is deployed is

`$HOME/.terraform.d/plugins/registry.terraform.io/vmware/vcd/${VERSION}/${OS}_amd64/terraform-provider-vcd_v${VERSION}`

For example, on MacOS:

$HOME/.terraform.d/
├── checkpoint_signature
└── plugins
    ├── registry.terraform.io
    └── vmware
        └── vcd
            ├── 2.9.0
            │   └── darwin_amd64
            │       └── terraform-provider-vcd_v2.9.0
            └── 3.0.0
                └── darwin_amd64
                    └── terraform-provider-vcd_v3.0.0

On Linux:

$HOME/.terraform.d/
├── checkpoint_signature
└── plugins
    ├── registry.terraform.io
    └── vmware
        └── vcd
            ├── 2.9.0
            │   └── linux_amd64
            │       └── terraform-provider-vcd_v2.9.0
            └── 3.0.0
                └── linux_amd64
                    └── terraform-provider-vcd_v3.0.0

Using the new plugin

Once you have installed the plugin as mentioned above, you can simply create a new config.tf as defined in the manual and run

$ terraform init
$ terraform plan
$ terraform apply

When using terraform 0.13+, you also need to have a terraform block either in your script or in an adjacent versions.tf file, containing.

terraform {
  required_providers {
    vcd = {
      source = "vmware/vcd"
    }
  }
  required_version = ">= 0.13"
}

In this block, the vmware part of the source corresponds to the directory $HOME/.terraform.d/plugins/registry.terraform.io/vmware created by the command make install.

Note that versions.tf is generated when you run the terraform 0.13upgrade command. If you have run such command, you need to edit the file and make sure the source path corresponds to the one installed, or remove the file altogether if you have already the right block in your script.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].