Fix lifecycle policy to include archival policy.

This commit is contained in:
Greyscale 2025-01-20 15:59:49 +01:00
parent 8ea817da8f
commit 4ab0759e2d
Signed by: grey
GPG key ID: DDB392AE64B32D89
4 changed files with 22 additions and 2 deletions
cloud/aws/efs_file_system
docker/efs-volume

View file

@ -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"

View file

@ -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."

View file

@ -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 {

View file

@ -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"
}