Skip to content

Commit

Permalink
Make NFS backup through DLM opt-in
Browse files Browse the repository at this point in the history
  • Loading branch information
sunu committed Nov 26, 2024
1 parent 99fa60d commit 73e21ee
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 1 deletion.
3 changes: 3 additions & 0 deletions terraform/aws/data-lifecycle-manager.tf
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# Data Lifecycle Manager (DLM) is used to automate backup of EBS volumes.

resource "aws_iam_role" "dlm_lifecycle_role" {
count = var.enable_nfs_backup ? 1 : 0
name = "dlm-lifecycle-role"

assume_role_policy = jsonencode({
Expand All @@ -20,6 +21,7 @@ resource "aws_iam_role" "dlm_lifecycle_role" {

# Attach required policy to the IAM role
resource "aws_iam_role_policy" "dlm_lifecycle" {
count = var.enable_nfs_backup ? 1 : 0
name = "dlm-lifecycle-policy"
role = aws_iam_role.dlm_lifecycle_role.id

Expand Down Expand Up @@ -51,6 +53,7 @@ resource "aws_iam_role_policy" "dlm_lifecycle" {

# Create the DLM lifecycle policy for NFS home directories backup
resource "aws_dlm_lifecycle_policy" "nfs_backup" {
count = var.enable_nfs_backup ? 1 : 0
description = "DLM lifecycle policy for NFS home directories backup"
execution_role_arn = aws_iam_role.dlm_lifecycle_role.arn
state = "ENABLED"
Expand Down
2 changes: 1 addition & 1 deletion terraform/aws/ebs-volumes.tf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ resource "aws_ebs_volume" "nfs_home_dirs" {

tags = merge(each.value.tags, {
Name = each.value.name_suffix == null ? "hub-nfs-home-dirs" : "hub-nfs-home-dirs-${each.value.name_suffix}"
NFSBackup = "true" # Tag to identify volumes to backup by Data Lifecycle Manager (DLM)
NFSBackup = var.enable_nfs_backup ? "true" : "false" # Tag to identify volumes to backup by Data Lifecycle Manager (DLM)
})

lifecycle {
Expand Down
2 changes: 2 additions & 0 deletions terraform/aws/projects/nasa-veda.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -226,4 +226,6 @@ ebs_volumes = {
}
}

enable_nfs_backup = true

original_single_efs_tags = { "2i2c:hub-name" : "prod" }
8 changes: 8 additions & 0 deletions terraform/aws/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -308,3 +308,11 @@ variable "ebs_volumes" {
server to store home directories for users.
EOT
}

variable "enable_nfs_backup" {
type = bool
default = false
description = <<-EOT
Enable backup of NFS home directories using Data Lifecycle Manager (DLM).
EOT
}

0 comments on commit 73e21ee

Please sign in to comment.