All Projects → vmware → terraform-provider-vmc

vmware / terraform-provider-vmc

Licence: MPL-2.0 license
Terraform provider for VMware Cloud on AWS

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to terraform-provider-vmc

terraform-provider-opc
Terraform Oracle Public Cloud provider
Stars: ✭ 29 (+81.25%)
Mutual labels:  terraform-provider
Arduino-MDB-UART
Atmega1284 PLC as MDB-UART converter/MDB Master/MDB VMC emulator
Stars: ✭ 70 (+337.5%)
Mutual labels:  vmc
terraform-provider-nix
terraform provider that manages nix builds and nixos machines.
Stars: ✭ 105 (+556.25%)
Mutual labels:  terraform-provider
terraform-provider-signalfx
Terraform SignalFx provider
Stars: ✭ 26 (+62.5%)
Mutual labels:  terraform-provider
terraform-provider-kite
Terraform provider for managing long term portfolio with Zerodha Kite
Stars: ✭ 21 (+31.25%)
Mutual labels:  terraform-provider
terraform-aws-kinesis-firehose
This code creates a Kinesis Firehose in AWS to send CloudWatch log data to S3.
Stars: ✭ 25 (+56.25%)
Mutual labels:  terraform-provider
terraform-provider-phpipam
Terrform provider for PHPIPAM
Stars: ✭ 45 (+181.25%)
Mutual labels:  terraform-provider
terraform-provider-dnsimple
Terraform DNSimple provider
Stars: ✭ 15 (-6.25%)
Mutual labels:  terraform-provider
terraform-provider-sumologic
Terraform provider for Sumo Logic
Stars: ✭ 24 (+50%)
Mutual labels:  terraform-provider
terraform-provider-twilio
Terraform provider for Twilio. 🌎☎️ Preserved for archaeological fun. Please see the official Twilio TF provider @ https://github.com/twilio/terraform-provider-twilio.
Stars: ✭ 32 (+100%)
Mutual labels:  terraform-provider
terraform-provider-ignition
Terraform Ignition provider
Stars: ✭ 37 (+131.25%)
Mutual labels:  terraform-provider
terraform-provider-qingcloud
Terraform QingCloud Provider
Stars: ✭ 34 (+112.5%)
Mutual labels:  terraform-provider
terraform-provider-bitbucketserver
Terraform provider for Bitbucket Server Management
Stars: ✭ 26 (+62.5%)
Mutual labels:  terraform-provider
terraform-provider-rediscloud
Terraform Redis Enterprise Cloud Pro Provider: Deploy, update, and manage Redis Enterprise Cloud Pro databases as code through HashiCorp Terraform
Stars: ✭ 24 (+50%)
Mutual labels:  terraform-provider
terraform-provider-spacelift
Terraform provider to interact with Spacelift
Stars: ✭ 26 (+62.5%)
Mutual labels:  terraform-provider
terraform-provider-alks
Terraform Provider for ALKS
Stars: ✭ 35 (+118.75%)
Mutual labels:  terraform-provider
terraform-provider-honeycombio
A Terraform provider for Honeycomb.io
Stars: ✭ 37 (+131.25%)
Mutual labels:  terraform-provider
terraform-provider-jumpcloud
A Terraform provider for JumpCloud
Stars: ✭ 17 (+6.25%)
Mutual labels:  terraform-provider
terraform-provider-astra
A project that allows DataStax Astra users to manage their full database lifecycle for Astra Serverless databases (built on Apache Cassandra(TM)) using Terraform
Stars: ✭ 16 (+0%)
Mutual labels:  terraform-provider
terraform-provider-checkly
Terraform provider for the Checkly monitoring service
Stars: ✭ 37 (+131.25%)
Mutual labels:  terraform-provider

Terraform provider for VMware Cloud on AWS

This is the repository for the Terraform provider for VMware Cloud, which one can use with Terraform to work with VMware Cloud on AWS.

Requirements

  • Terraform 0.12+
  • Go 1.19 (to build the provider plugin)

Building the Provider

The instructions outlined below are specific to Mac OS or Linux OS only.

If you wish to work on the provider, you'll first need Go installed on your machine (please check the requirements before proceeding).

First, you will want to clone the repository to : $GOPATH/src/github.com/vmware/terraform-provider-vmc

mkdir -p $GOPATH/src/github.com/vmware
cd $GOPATH/src/github.com/vmware
git clone [email protected]:vmware/terraform-provider-vmc.git

After the clone is complete, you can enter the provider directory and build the provider.

cd $GOPATH/src/github.com/vmware/terraform-provider-vmc
go get
go build -o terraform-provider-vmc

After the build is complete, if your terraform running folder does not match your GOPATH environment, you need to copy the terraform-provider-vmc executable to your running folder and re-run terraform init to make terraform aware of your local provider executable.

Using the Provider

To use a released provider in your Terraform environment, run terraform init and Terraform will automatically install the provider. To specify a particular provider version when installing released providers, see the Terraform documentation on provider versioning.

To instead use a custom-built provider in your Terraform environment (e.g. the provider binary from the build instructions above), follow the instructions to install it as a plugin. After placing the custom-built provider into your plugins directory, run terraform init to initialize it.

For either installation method, documentation about the provider specific configuration options can be found on the provider's website.

Controlling the provider version

Note that you can also control the provider version. This requires the use of a provider block in your Terraform configuration if you have not added one already.

The syntax is as follows:

provider "vmc" {
  version = "~> 1.0"
  ...
}

Version locking uses a pessimistic operator, so this version lock would mean anything within the 1.x namespace, including or after 1.0.0. Read more on provider version control.

Automated Installation (Recommended)

Download and initialization of Terraform providers is with the “terraform init” command. This applies to the VMC provider as well. Once the provider block for the VMC provider is specified in your .tf file, “terraform init” will detect a need for the provider and download it to your environment. You can list versions of providers installed in your environment by running “terraform version” command:

$ terraform version
Terraform v0.12.20
+ provider.vmc (unversioned)

Manual Installation

NOTE: Unless you are developing or require a pre-release bugfix or feature, you will want to use the officially released version of the provider (see the section above).

NOTE: Note that if the provider is manually copied to your running folder (rather than fetched with the “terraform init” based on provider block), Terraform is not aware of the version of the provider you’re running. It will appear as “unversioned”:

$ terraform version
Terraform v0.12.20
+ provider.vmc (unversioned)

Since Terraform has no indication of version, it cannot upgrade in a native way, based on the “version” attribute in provider block. In addition, this may cause difficulties in housekeeping and issue reporting.

Developing the Provider

NOTE: Before you start work on a feature, please make sure to check the issue tracker and existing pull requests to ensure that work is not being duplicated. For further clarification, you can also ask in a new issue.

See the section above for details on building the provider.

Testing the Provider

Set required environment variables based as per your infrastructure settings

$ # API token provided from CSP with at least "Organization Member" role and service role
$ # on "VMware Cloud on AWS" service that is allowed to deploy SDDCs.
$ export API_TOKEN=xxx
$ # Id of a VMC Org in which test SDDC are (to be) placed 
$ export ORG_ID=xxxx
$ # Id of an existing SDDC used for SDDC data source (import) test
$ export TEST_SDDC_ID=xxx
$ # Name of above SDDC
$ export TEST_SDDC_NAME=xxx
$ # NSX URL of a non-ZEROCLOUD SDDC, used for real IP testing
$ export NSXT_REVERSE_PROXY_URL=xxx
$ # Account number of a connected to the above Org AWS account, required for test SDDC deployment 
$ export AWS_ACCOUNT_NUMBER=xxx

In order to run the full suite of Acceptance tests, run make testacc.

Note: Acceptance tests create real resources, and often cost money to run.

$ make testacc

If you want to run against a specific set of tests, run make testacc with the TESTARGS parameter containing the run mask as per below:

$ make testacc TESTARGS="-run=TestAccResourceVmcSddc_basic"

Additionally, limited set of acceptance tests can be ran with the ZEROCLOUD cloud provider, which is much faster and cheaper, while providing decent API coverage:

$ make testacc TESTARGS="-run=TestAccResourceVmcSddc_Zerocloud"

License

Copyright 2019-2022 VMware, Inc.

The Terraform provider for VMware Cloud on AWS is available under MPL2.0 license.

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].