terraform-google-modules / terraform-google-memorystore

Creates a fully functional Google Memorystore (redis) instance
https://registry.terraform.io/modules/terraform-google-modules/memorystore/google
Apache License 2.0
43 stars 98 forks source link
cft-terraform databases

Google Cloud Memorystore Terraform Module

A Terraform module for creating a fully functional Google Memorystore Redis instance. For Memcache and Redis Cluster see 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 8.0. Upgrade guides:

Usage

Check the examples/ directory for more.

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

  name           = "memorystore"
  project        = "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 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
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:

Service Account

Following roles contain permissions to deploy resource.

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:

Contributing

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