Skip to content

toufreach5/terraform-azurerm-redis

 
 

Repository files navigation

Azure Redis Cache

Changelog Notice Apache V2 License TF Registry

This Terraform module creates a Redis Cache instance along with firewall rules. No logging is available from this resource.

The default configuration is an highly available cluster of 3 shards and data persistence enabled on the Premium tier.

Global versioning rule for Claranet Azure modules

Module version Terraform version AzureRM version
>= 5.x.x 0.15.x & 1.0.x >= 2.0
>= 4.x.x 0.13.x >= 2.0
>= 3.x.x 0.12.x >= 2.0
>= 2.x.x 0.12.x < 2.0
< 2.x.x 0.11.x < 2.0

Usage

This module is optimized to work with the Claranet terraform-wrapper tool which set some terraform variables in the environment needed by this module. More details about variables set by the terraform-wrapper available in the documentation.

module "azure_region" {
  source  = "claranet/regions/azurerm"
  version = "x.x.x"

  azure_region = var.azure_region
}

module "rg" {
  source  = "claranet/rg/azurerm"
  version = "x.x.x"

  location    = module.azure_region.location
  client_name = var.client_name
  environment = var.environment
  stack       = var.stack
}

module "logs" {
  source  = "claranet/run-common/azurerm//modules/logs"
  version = "x.x.x"

  client_name         = var.client_name
  environment         = var.environment
  stack               = var.stack
  location            = module.azure_region.location
  location_short      = module.azure_region.location_short
  resource_group_name = module.rg.resource_group_name
}

module "redis" {
  source  = "claranet/redis/azurerm"
  version = "x.x.x"

  client_name    = var.client_name
  environment    = var.environment
  location       = module.azure_region.location
  location_short = module.azure_region.location_short
  stack          = var.stack

  resource_group_name = module.rg.resource_group_name

  authorized_cidrs = {
    ip1 = "1.2.3.4/32"
    ip2 = "5.6.7.8/16"
  }

  logs_destinations_ids = [
    module.logs.logs_storage_account_id,
    module.logs.log_analytics_workspace_id
  ]

  extra_tags = {
    foo = "bar"
  }
}

Providers

Name Version
azurecaf ~> 1.1
azurerm >= 2.71

Modules

Name Source Version
diagnostics claranet/diagnostic-settings/azurerm 5.0.0

Resources

Name Type
azurecaf_name.data_storage resource
azurecaf_name.redis resource
azurecaf_name.redis_fw_rule resource
azurerm_redis_cache.redis resource
azurerm_redis_firewall_rule.redis_fw_rule resource
azurerm_storage_account.redis_storage resource

Inputs

Name Description Type Default Required
allow_non_ssl_connections Activate non SSL port (6779) for Redis connection bool false no
authorized_cidrs Map of authorized cidrs map(string) n/a yes
capacity Redis size: (Basic/Standard: 1,2,3,4,5,6) (Premium: 1,2,3,4) https://docs.microsoft.com/fr-fr/azure/redis-cache/cache-how-to-premium-clustering number 2 no
client_name Name of the client string n/a yes
cluster_shard_count Number of cluster shards desired number 3 no
custom_diagnostic_settings_name Custom name of the diagnostics settings, name will be 'default' if not set. string "default" no
custom_name Custom name of Redis Server string "" no
data_persistence_enabled "true" to enable data persistence. bool true no
data_persistence_frequency_in_minutes Data persistence snapshot frequency in minutes. number 60 no
data_persistence_max_snapshot_count Max number of data persistence snapshots. number null no
data_persistence_storage_account_replication Replication type for the Storage Account used for data persistence. string "LRS" no
data_persistence_storage_account_tier Replication type for the Storage Account used for data persistence. string "Premium" no
data_persistence_storage_custom_name Custom name for the Storage Account used for Redis data persistence. string "" no
default_tags_enabled Option to enable or disable default tags. bool true no
environment Name of the application's environnement string n/a yes
extra_tags Additional tags to associate. map(string) {} no
location Azure region in which instance will be hosted string n/a yes
location_short Azure region trigram string n/a yes
logs_categories Log categories to send to destinations. list(string) null no
logs_destinations_ids List of destination resources Ids for logs diagnostics destination. Can be Storage Account, Log Analytics Workspace and Event Hub. No more than one of each can be set. Empty list to disable logging. list(string) n/a yes
logs_metrics_categories Metrics categories to send to destinations. list(string) null no
logs_retention_days Number of days to keep logs on storage account number 30 no
minimum_tls_version The minimum TLS version string "1.2" no
name_prefix Optional prefix for the generated name string "" no
name_suffix Optional suffix for the generated name string "" no
private_static_ip_address The Static IP Address to assign to the Redis Cache when hosted inside the Virtual Network. Changing this forces a new resource to be created. string null no
redis_additional_configuration Additional configuration for the Redis instance. Some of the keys are set automatically. See https://www.terraform.io/docs/providers/azurerm/r/redis_cache.html#redis_configuration for full reference. map(string) {} no
redis_version Redis version to deploy. Allowed values are 4 or 6 number 4 no
resource_group_name Name of the application ressource group, herited from infra module string n/a yes
sku_name Redis Cache Sku name. Can be Basic, Standard or Premium string "Premium" no
stack Name of the application stack string n/a yes
subnet_id The ID of the Subnet within which the Redis Cache should be deployed. Changing this forces a new resource to be created. string null no
use_caf_naming Use the Azure CAF naming provider to generate default resource name. custom_name override this if set. Legacy default name is used if this is set to false. bool true no
zones A list of a one or more Availability Zones, where the Redis Cache should be allocated. list(number) null no

Outputs

Name Description
redis_capacity Redis capacity
redis_configuration Redis configuration
redis_family Redis family
redis_hostname Redis instance hostname
redis_id Redis instance id
redis_name Redis instance name
redis_port Redis instance port
redis_primary_access_key Redis primary access key
redis_private_static_ip_address Redis private static IP address
redis_secondary_access_key Redis secondary access key
redis_sku_name Redis SKU name
redis_ssl_port Redis instance SSL port

Related documentation

Microsoft Azure service documentation: docs.microsoft.com/en-us/azure/azure-cache-for-redis/

About

Terraform module for Azure Redis

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HCL 100.0%