From c1c9781eb66a9c8e2c81eba37293e832a66f20fe Mon Sep 17 00:00:00 2001 From: Viktor Ribchev Date: Fri, 29 Mar 2024 13:45:01 +0200 Subject: [PATCH] Added on/off toggle for the backup module --- main.tf | 5 ++++- modules/graphdb/templates/04_gdb_backup_conf.sh.tpl | 12 ++++++++---- modules/graphdb/user_data.tf | 1 + modules/graphdb/variables.tf | 8 ++++++-- variables.tf | 5 +++++ 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/main.tf b/main.tf index 8367045..f87c7a1 100644 --- a/main.tf +++ b/main.tf @@ -20,6 +20,8 @@ module "vpc" { module "backup" { source = "./modules/backup" + count = var.deploy_backup ? 1 : 0 + resource_name_prefix = var.resource_name_prefix iam_role_id = module.graphdb.iam_role_id } @@ -109,9 +111,10 @@ module "graphdb" { # Backup Configuration + deploy_backup = var.deploy_backup backup_schedule = var.backup_schedule backup_retention_count = var.backup_retention_count - backup_bucket_name = module.backup.bucket_name + backup_bucket_name = var.deploy_backup == false ? "" : module.backup[0].bucket_name # VM Image diff --git a/modules/graphdb/templates/04_gdb_backup_conf.sh.tpl b/modules/graphdb/templates/04_gdb_backup_conf.sh.tpl index 48c8079..8bbc5b3 100644 --- a/modules/graphdb/templates/04_gdb_backup_conf.sh.tpl +++ b/modules/graphdb/templates/04_gdb_backup_conf.sh.tpl @@ -13,7 +13,8 @@ echo "#################################################" echo "# Configuring the GraphDB backup cron job #" echo "#################################################" -cat <<-EOF > /usr/bin/graphdb_backup +if [ ${deploy_backup} == "true" ]; then + cat <<-EOF >/usr/bin/graphdb_backup #!/bin/bash set -euxo pipefail @@ -64,7 +65,10 @@ rotate_backups EOF -chmod +x /usr/bin/graphdb_backup -echo "${backup_schedule} graphdb /usr/bin/graphdb_backup" > /etc/cron.d/graphdb_backup + chmod +x /usr/bin/graphdb_backup + echo "${backup_schedule} graphdb /usr/bin/graphdb_backup" > /etc/cron.d/graphdb_backup -echo "Cron job created" + echo "Cron job created" +else + echo "Backup module is not deployed, skipping provisioning..." +fi diff --git a/modules/graphdb/user_data.tf b/modules/graphdb/user_data.tf index 1001e39..924f92f 100644 --- a/modules/graphdb/user_data.tf +++ b/modules/graphdb/user_data.tf @@ -56,6 +56,7 @@ data "cloudinit_config" "graphdb_user_data" { backup_schedule : var.backup_schedule backup_retention_count : var.backup_retention_count backup_bucket_name : var.backup_bucket_name + deploy_backup : var.deploy_backup }) } diff --git a/modules/graphdb/variables.tf b/modules/graphdb/variables.tf index fb70a7b..0c03099 100644 --- a/modules/graphdb/variables.tf +++ b/modules/graphdb/variables.tf @@ -1,4 +1,3 @@ - # Common parameters variable "resource_name_prefix" { @@ -109,6 +108,11 @@ variable "lb_subnets" { # Backup Parameters +variable "deploy_backup" { + description = "Deploy monitoring module" + type = bool +} + variable "backup_schedule" { description = "Cron expression for the backup job." type = string @@ -119,7 +123,7 @@ variable "backup_bucket_name" { type = string validation { - condition = can(regex("^[a-z0-9_-]+$", var.backup_bucket_name)) + condition = var.backup_bucket_name == "" || can(regex("^[a-z0-9_-]+$", var.backup_bucket_name)) error_message = "Bucket name can only contain lowercase letters, numbers, hyphens, and underscores." } } diff --git a/variables.tf b/variables.tf index 4c9989d..3d119ae 100644 --- a/variables.tf +++ b/variables.tf @@ -12,6 +12,11 @@ variable "aws_region" { } # Backup configurations +variable "deploy_backup" { + description = "Deploy monitoring module" + type = bool + default = true +} variable "backup_schedule" { description = "Cron expression for the backup job."