All Projects → RedisLabs → terraform-provider-rediscloud

RedisLabs / terraform-provider-rediscloud

Licence: Apache-2.0 license
Terraform Redis Enterprise Cloud Pro Provider: Deploy, update, and manage Redis Enterprise Cloud Pro databases as code through HashiCorp Terraform

Programming Languages

go
31211 projects - #10 most used programming language

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

terraform-provider-vra
Terraform VMware vRealize Automation provider
Stars: ✭ 82 (+241.67%)
Mutual labels:  terraform-provider
terraform-provider-servicenow
Terraform provider to manage ServiceNow objects.
Stars: ✭ 25 (+4.17%)
Mutual labels:  terraform-provider
terraform-provider-phpipam
Terrform provider for PHPIPAM
Stars: ✭ 45 (+87.5%)
Mutual labels:  terraform-provider
terraform-provider-graylog
Terraform Provider for Graylog
Stars: ✭ 21 (-12.5%)
Mutual labels:  terraform-provider
terraform-provider-jenkins
A Terraform plugin to enable JenkinsCI manipulation from Terraform.
Stars: ✭ 47 (+95.83%)
Mutual labels:  terraform-provider
terraform-provider-akamai
An Akamai GTM Terraform provider
Stars: ✭ 14 (-41.67%)
Mutual labels:  terraform-provider
terraform-provider-mcbroken
Base the count of your infrastucture resources on the current number of broken mcdonald's ice cream machines nationally or by a city of your choosing. Powered by https://mcbroken.com/
Stars: ✭ 29 (+20.83%)
Mutual labels:  terraform-provider
terraform-provider-opc
Terraform Oracle Public Cloud provider
Stars: ✭ 29 (+20.83%)
Mutual labels:  terraform-provider
django-concurrency-talk
🎭 Database Integrity in Django: Safely Handling Critical Data in Distributed Systems
Stars: ✭ 49 (+104.17%)
Mutual labels:  databases
terraform-provider-akamai
Terraform Akamai provider
Stars: ✭ 75 (+212.5%)
Mutual labels:  terraform-provider
terraform-provider-cloudhealth
Terraform provider for Cloudhealth
Stars: ✭ 14 (-41.67%)
Mutual labels:  terraform-provider
terraform-provider-k8s
Kubernetes Terraform provider with support for raw manifests
Stars: ✭ 99 (+312.5%)
Mutual labels:  terraform-provider
terraform-provider-boundary
Manage Boundary's identity-based access controls for resources provisioned with Terraform. This provider is maintained internally by the HashiCorp Boundary team.
Stars: ✭ 87 (+262.5%)
Mutual labels:  terraform-provider
terraform-provider-civo
Terraform Civo provider
Stars: ✭ 54 (+125%)
Mutual labels:  terraform-provider
terraform-provider-alks
Terraform Provider for ALKS
Stars: ✭ 35 (+45.83%)
Mutual labels:  terraform-provider
terraform-provider-env0
Terraform Provider for env0
Stars: ✭ 28 (+16.67%)
Mutual labels:  terraform-provider
terraform-provider-auth0
Please see https://github.com/alexkappa/terraform-provider-auth0
Stars: ✭ 28 (+16.67%)
Mutual labels:  terraform-provider
deloominator
Shed the light on your data!
Stars: ✭ 47 (+95.83%)
Mutual labels:  databases
docker-mysql-replication
master master & master slave replication in mysql
Stars: ✭ 33 (+37.5%)
Mutual labels:  databases
terraform-provider-gotemplate
a custom terraform provider to use go text/template language instead of terraform's
Stars: ✭ 20 (-16.67%)
Mutual labels:  terraform-provider

Terraform Provider Redis Cloud

The Redis Enterprise Cloud Terraform provider is a plugin for Terraform that allows Redis Enterprise Cloud Flexible customers to manage the full lifecyle of their subscriptions and related Redis databases.

Requirements

Quick Starts

To use the Redis Enterprise Cloud Terraform provider you will need to set the following environment variables, and these are created through the Redis Enterprise Cloud console under the settings menu.

  • REDISCLOUD_ACCESS_KEY - Account Cloud API Access Key
  • REDISCLOUD_SECRET_KEY - Individual user Cloud API Secret Key

Developing the Provider

If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements above). You will also need to create or have access to a Redis Cloud Enterprise account.

Building the Provider

  1. Clone the repository
  2. Enter the repository directory
  3. Build the provider using the make build command:
$ make build

The make build command will build a local provider binary into a bin directory at the root of the repository.

Installing the Provider

After the provider has been built locally it must be placed in the user plugins directory so it can be discovered by the Terraform CLI. The default user plugins directory root is ~/.terraform.d/plugins.

Use the following make command to install the provider locally.

$ make install_local

The provider will now be installed in the following location ready to be used by Terraform

~/.terraform.d/plugins
└── registry.terraform.io
    └── RedisLabs
        └── rediscloud
            └── 99.99.99
                └── <OS>_<ARCH>
                    └── terraform-provider-rediscloud_v99.99.99

The provider binary is built using a version number of 99.99.99 and this will allow terraform to use the locally built provider over a released version.

The terraform provider is installed and can now be discovered by Terraform through the following HCL block.

terraform {
  required_providers {
    rediscloud = {
      source = "RedisLabs/rediscloud"
    }
  }
  required_version = ">= 0.13"
}

The following is an example of using the rediscloud_regions data-source to discover a list of supported regions. It can be used to verify that the provider is setup and installed correctly without incurring the cost of subscriptions and databases.

data "rediscloud_regions" "example" {
}

output "all_regions" {
  value = data.rediscloud_regions.example.regions
}

Testing the Provider

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

In order to run an individual acceptance test, the '-run' flag can be used together with a regular expression. The following example uses a regular expression matching single test called 'TestAccResourceRedisCloudSubscription_createWithDatabase'.

$ make testacc TESTARGS='-run=TestAccResourceRedisCloudSubscription_createWithDatabase'

In order to run the tests with extra debugging context, prefix the make command with TF_LOG (see the terraform documentation for details).

$ TF_LOG=trace make testacc

By default, the tests run with a parallelism of 3. This can be reduced if some tests are failing due to network-related issues, or increased if possible, to reduce the running time of the tests. Prefix the make command with TEST_PARALLELISM, as in the following example, to configure this.

$ TEST_PARALLELISM=2 make testacc

A core set of Acceptance tests are executed through the build pipeline, (considered short tests).
Functionality that requires additional setup or environment variables can be executed using the following flags.

Flag Description
-tls Allows execution of TLS based acceptance tests
-contract Allows execution of contract payment method tests

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.

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