resource "kubernetes_persistent_volume_claim_v1" "automatic-pvc" { for_each = { for key, value in local.pvc_details : "${value.index}" => merge(value, { mew_key = value.index }) if value.pvc && value.existing_pvc != true && value.docker != true } metadata { namespace = coalesce(each.value.namespace, each.key) name = "${each.value.name}-pvc" labels = { deployment_method = "Terraform" } annotations = { fileType = try(each.value.annotations_fileType, "file") } } spec { access_modes = ["ReadWriteMany"] storage_class_name = each.value.storage_class_name resources { requests = { storage = each.value.pvc_size } } } } resource "kubernetes_persistent_volume_claim_v1" "automatic-pvc-database" { for_each = { for key, value in var.kubernetes : key => value if value.database != null && value.enabled == true && !(try(value.database.shunt, false)) && value.docker != true } metadata { namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key) name = "${each.key}-db-pvc" labels = { deployment_method = "Terraform" } } spec { access_modes = ["ReadWriteMany"] storage_class_name = "nfs-storage-intelligent" resources { requests = { storage = "1Gi" } } } } resource "kubernetes_persistent_volume_claim_v1" "backup-pvc-database" { for_each = { for key, value in var.kubernetes : key => value if value.database != null && value.enabled == true && value.docker != true } metadata { namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key) name = "${each.key}-db-backup" labels = { deployment_method = "Terraform" } annotations = { fileType = "Backup" } } spec { access_modes = ["ReadWriteMany"] storage_class_name = "nfs-storage-fastaccess" resources { requests = { storage = "1Gi" } } } } resource "kubernetes_persistent_volume_claim_v1" "automatic-pvc-redis" { for_each = { for key, value in var.kubernetes : key => value if value.redis != null && value.enabled == true && value.docker != true } metadata { namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key) name = "${each.key}-redis-pvc" labels = { deployment_method = "Terraform" } } spec { access_modes = ["ReadWriteMany"] storage_class_name = "nfs-storage-intelligent" resources { requests = { storage = "1Gi" } } } }