A Terraform module for creating a fully functional Google Memorystore Redis instance. For other memory store engine use sub-modules.
- Memcache sub-modules
- Redis Cluster sub-modules
- Valkey sub-modules
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.
Current version is 11.0. Upgrade guides:
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"
}
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({ |
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({ |
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. | 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 |
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 |
These sections describe requirements for using this module.
The following dependencies must be available:
- [Terraform][terraform] v1.3+
- [Terraform Provider for GCP][terraform-provider-gcp] plugin v4.74+
Following roles contain permissions to deploy resource.
- Cloud Memorystore Redis Admin:
roles/redis.admin
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
Refer to the contribution guidelines for information on contributing to this module.