Skip to content

ChessCom/terraform-google-memorystore

 
 

Repository files navigation

A Terraform module for creating a fully functional Google Memorystore (redis) instance.

Compatibility

This module is meant for use with Terraform 0.13+ and tested using Terraform 1.0+. If you find incompatibilities using Terraform >=0.13, please open an issue. If you haven't upgraded and need a Terraform 0.12.x-compatible version of this module, the last released version intended for Terraform 0.12.x is v2.0.0.

Usage

Check the examples/ directory for more.

module "memorystore" {
  source  = "terraform-google-modules/memorystore/google"
  version = "4.0.0"

  name    = "my-memorystore"
  project = "my-gcp-project"
}

Inputs

Name Description Type Default Required
alternative_location_id The alternative zone where the instance will be provisioned. string null no
auth_enabled Indicates whether OSS Redis AUTH is enabled for the instance. If set to true AUTH is enabled on the instance. bool false no
authorized_network The full name of the Google Compute Engine network to which the instance is connected. If left unspecified, the default network will be used. string null no
connect_mode The connection mode of the Redis instance. Can be either DIRECT_PEERING or PRIVATE_SERVICE_ACCESS. The default connect mode if not provided is DIRECT_PEERING. string null no
customer_managed_key Default encryption key to apply to the Redis instance. Defaults to null (Google-managed). string null no
display_name An arbitrary and optional user-provided name for the instance. string null no
enable_apis Flag for enabling redis.googleapis.com in your project bool true no
labels The resource labels to represent user provided metadata. map(string) null no
location_id The zone where the instance will be provisioned. If not provided, the service will choose a zone for the instance. For STANDARD_HA tier, instances will be created across two zones for protection against zonal failures. If [alternativeLocationId] is also provided, it must be different from [locationId]. string null no
maintenance_policy The maintenance policy for an instance.
object({
day = string
start_time = object({
hours = number
minutes = number
seconds = number
nanos = number
})
})
null no
memory_size_gb Redis memory size in GiB. Defaulted to 1 GiB number 1 no
name The ID of the instance or a fully qualified identifier for the instance. string n/a yes
project The ID of the project in which the resource belongs to. string n/a yes
read_replicas_mode Read replicas mode. https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#readreplicasmode string "READ_REPLICAS_DISABLED" no
redis_configs The Redis configuration parameters. See more details map(any) {} no
redis_version The version of Redis software. string null no
region The GCP region to use. string null no
replica_count The number of replicas. can number null no
reserved_ip_range The CIDR range of internal addresses that are reserved for this instance. string null no
tier The service tier of the instance. https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#Tier string "STANDARD_HA" no
transit_encryption_mode The TLS mode of the Redis instance, If not provided, TLS is enabled for the instance. string "SERVER_AUTHENTICATION" no

Outputs

Name Description
auth_string AUTH String set on the instance. This field will only be populated if auth_enabled is true.
current_location_id The current zone where the Redis endpoint is placed.
host The IP address of the instance.
id The memorystore instance ID.
persistence_iam_identity Cloud IAM identity used by import/export operations. Format is 'serviceAccount:'. May change over time
port The port number of the exposed Redis endpoint.
region The region the instance lives in.
server_ca_certs List of server CA certificates for the instance

File structure

The project has the following folders and files:

  • /: root folder
  • /examples: examples for using this module
  • /scripts: Scripts for specific tasks on module (see Infrastructure section on this file)
  • /test: Folders with files for testing the module (see Testing section on this file)
  • /helpers: Optional helper scripts for ease of use
  • /main.tf: main file for this module, contains all the resources to create
  • /variables.tf: all the variables for the module
  • /output.tf: the outputs of the module
  • /readme.md: this file

Releases

No releases published

Packages

No packages published

Languages

  • HCL 71.4%
  • Go 18.1%
  • Makefile 10.5%