Skip to content

coveooss/terraform-provider-quantum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

terraform-provider-quantum

A custom provider for terraform.

Coveo Build Status Go Report Card

Installation

  1. Download the latest release for your platform
  2. rename the file to terraform-provider-quantum
  3. Copy the file to the same directory as terraform dirname $(which terraform) is installed

Usage

quantum_list_files

Example Usage (quantum_list_files)

Returns a list of files from a directory

data "quantum_list_files" "data_files" {
  folders   = ["./data"]
  patterns  = ["*.txt", "*.doc*"]
  recursive = true
}

The output will look like this:

data.quantum_list_files.data_files.files = ["./data/file1.txt", "./data/file2.docx"]

Argument Reference (quantum_list_files)

  • folders - (Optional) - The source list for folders
  • patterns - (Optional) - The patterns to match files, uses golang's filepath.Match
  • recursive - (Optional) - Default false, walk directory recursively
  • include_folder - (Optional) - Default true, include the parent folder in the results

Attributes Reference (quantum_list_files)

  • files - The list of matched files

quantum_query_json

Example Usage (quantum_query_json)

Queries a json string using GJSON (https://github.com/tidwall/gjson)

data "quantum_query_json" "instance_pricing" {
  json  = "${data.aws_pricing_product.instance.result}"
  query = "terms.OnDemand.*.priceDimensions.*.pricePerUnit.USD"
}

The output will look like this:

data.quantum_query_json.result = 0.60435

Argument Reference (quantum_query_json)

Attributes Reference (quantum_query_json)

  • result - The query result. Depending on the json and query, this could be json, float, string, etc.

quantum_password

This resource will generate a password with lowercase, uppercase, numbers and special characters matching the specified length. It will also rotate the password every 'n' days based on the rotation attribute.

Example Usage (quantum_password)

Generates a random password to be used by other resources

resource "quantum_password" "rds_backup_db_password" {
    length   = 10
    rotation = 90
}

Argument Reference (quantum_password)

  • length - (Optional) - Password length [default 20]
  • rotation - (Optional) - Number of days before a new password gets generated. [default 0 = no rotation]
  • special_chars - (Optional) - Override the special characters set [default !"#$%&'()*+,-./]

A rotation set to negative number means the password expires on each run

Attributes Reference (quantum_password)

  • password - Attribute to use in your other resources to set the password
  • last_update - Last generation date of the password

Note that on quantum_password attribute change, you need to run apply twice to get the new password propagated to dependant resources. (Comment on this behavior)

Develop

go get github.com/coveo/terraform-provider-quantum
cd $GOPATH/src/github.com/coveo/terraform-provider-quantum
go get ./...
$EDITOR .