locals { app_slug = (var.component == var.instance || var.component=="") ? var.instance : format("%s-%s", var.component, var.instance) pvc_spec = merge({ "accessModes" = [var.storage.accessMode] "volumeMode" = var.storage.type "resources" = { "requests" = { "storage" = "${var.storage.size}" } } }, var.storage.volume.class != "" ?{ "storageClassName" = var.storage.class }:{}) } resource "kubectl_manifest" "pvc" { yaml_body = <<-EOF apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ${local.app_slug} namespace: "${var.namespace}" annotations: k8up.io/backup: "true" labels: ${jsonencode(local.labels)} spec: ${jsonencode(local.pvc_spec)} EOF }