Skip to content

terraform-google-modules/terraform-google-memorystore

Repository files navigation

Google Cloud Memorystore Terraform Module

terraform registry

A Terraform module for creating a fully functional Google Memorystore Redis instance. For other memory store engine use sub-modules.

Compatibility

This module is meant for use with Terraform 1.3+ and tested using Terraform 1.3+. If you find incompatibilities using Terraform >=1.3, 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.

Version

Current version is 11.0. Upgrade guides:

Usage

Check the examples/ directory for more.

module "memorystore" {
  source  = "terraform-google-modules/memorystore/google"
  version = "~> 12.0"

  name           = "memorystore"
  project_id     = "memorystore"
  memory_size_gb = "1"
  enable_apis    = "true"
}

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
persistence_config The Redis persistence configuration parameters. https://cloud.google.com/memorystore/docs/redis/reference/rest/v1/projects.locations.instances#persistenceconfig
object({
persistence_mode = string
rdb_snapshot_period = string
})
null no
project_id 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
secondary_ip_range Optional. Additional IP range for node placement. Required when enabling read replicas on an existing 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
apphub_service_uri Service URI in CAIS style to be used by Apphub.
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.
env_vars Exported environment variables
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.
read_endpoint The IP address of the exposed readonly Redis endpoint.
region The region the instance lives in.
server_ca_certs List of server CA certificates for the instance

Requirements

These sections describe requirements for using this module.

Software

The following dependencies must be available:

  • [Terraform][terraform] v1.3+
  • [Terraform Provider for GCP][terraform-provider-gcp] plugin v4.74+

Service Account

Following roles contain permissions to deploy resource.

  • Cloud Memorystore Redis Admin: roles/redis.admin

Enable API's

In order to operate with the Service Account you must activate the following API on the project where the Service Account was created:

  • Compute Engine API - redis.googleapis.com

Contributing

Refer to the contribution guidelines for information on contributing to this module.