diff --git a/cloud/aws/efs_file_system/efs.tf b/cloud/aws/efs_file_system/efs.tf index 2c12c41..391e3cf 100644 --- a/cloud/aws/efs_file_system/efs.tf +++ b/cloud/aws/efs_file_system/efs.tf @@ -3,6 +3,9 @@ resource "aws_efs_file_system" "volume" { lifecycle_policy { transition_to_ia = var.ia_lifecycle_policy } + lifecycle_policy { + transition_to_archive = var.archive_lifecycle_policy + } tags = local.efs_tags encrypted = true throughput_mode = "elastic" diff --git a/cloud/aws/efs_file_system/inputs.tf b/cloud/aws/efs_file_system/inputs.tf index 6575ab8..e2a312d 100644 --- a/cloud/aws/efs_file_system/inputs.tf +++ b/cloud/aws/efs_file_system/inputs.tf @@ -43,7 +43,15 @@ variable "ia_lifecycle_policy" { condition = can(regex("AFTER_(1|7|14|30|60|90|180|270|365)_DAY[S]?", var.ia_lifecycle_policy)) } } - +variable "archive_lifecycle_policy" { + default = "AFTER_60_DAYS" + description = "The lifecycle policy for transitioning to Archive storage" + type = string + validation { + error_message = "Must be one of AFTER_7_DAYS, AFTER_14_DAYS, AFTER_30_DAYS, AFTER_60_DAYS, AFTER_90_DAYS, AFTER_180_DAYS, AFTER_270_DAYS, AFTER_365_DAYS." + condition = can(regex("AFTER_(7|14|30|60|90|180|270|365)_DAY[S]?", var.archive_lifecycle_policy)) + } +} variable "subnet_ids" { type = list(string) description = "The subnet IDs in which the EFS file system will be available." diff --git a/docker/efs-volume/efs.tf b/docker/efs-volume/efs.tf index 8d33a0a..1910e33 100644 --- a/docker/efs-volume/efs.tf +++ b/docker/efs-volume/efs.tf @@ -4,12 +4,12 @@ module "efs_file_system" { users = local.users tags = merge(var.tags, { Name = local.display_name_ascii }, coalesce(var.application.application_tag, {})) ia_lifecycle_policy = var.ia_lifecycle_policy + archive_lifecycle_policy = var.archive_lifecycle_policy application = var.application origin_security_group_id = var.origin_security_group_id vpc_id = data.aws_vpc.vpc.id subnet_ids = var.subnet_ids } - data "aws_vpc" "vpc" { id = var.vpc_id lifecycle { diff --git a/docker/efs-volume/inputs.tf b/docker/efs-volume/inputs.tf index c3235ab..276cf66 100644 --- a/docker/efs-volume/inputs.tf +++ b/docker/efs-volume/inputs.tf @@ -30,6 +30,15 @@ variable "ia_lifecycle_policy" { condition = can(regex("AFTER_(1|7|14|30|60|90|180|270|365)_DAY[S]?", var.ia_lifecycle_policy)) } } +variable "archive_lifecycle_policy" { + default = "AFTER_60_DAYS" + description = "The lifecycle policy for transitioning to Archive storage" + type = string + validation { + error_message = "Must be one of AFTER_7_DAYS, AFTER_14_DAYS, AFTER_30_DAYS, AFTER_60_DAYS, AFTER_90_DAYS, AFTER_180_DAYS, AFTER_270_DAYS, AFTER_365_DAYS." + condition = can(regex("AFTER_(7|14|30|60|90|180|270|365)_DAY[S]?", var.archive_lifecycle_policy)) + } +} variable "origin_security_group_id" { description = "The security group ID to allow NFS traffic from" }