62 lines
1.6 KiB
HCL
62 lines
1.6 KiB
HCL
locals {
|
|
app_slug = "${var.instance}${var.component == "" ? "" : "-"}${var.component}"
|
|
pvc_labels = merge(var.labels, {
|
|
"app.kubernetes.io/component" = "pvc"
|
|
})
|
|
pvc_annotations = {
|
|
"k8up.io/backup" = var.backup
|
|
"resize.kubesphere.io/storage_limit" = var.storage.max_size
|
|
}
|
|
# pvc_spec = merge({
|
|
# "accessModes" = [var.storage.access_mode]
|
|
# "volumeMode" = var.storage.type
|
|
# "resources" = {
|
|
# "requests" = {
|
|
# "storage" = var.storage.size
|
|
# }
|
|
# }
|
|
# }, var.storage.class != "" ? {
|
|
# "storageClassName" = var.storage.class
|
|
# } : {})
|
|
}
|
|
# resource "kubectl_manifest" "pvc" {
|
|
# ignore_fields = [
|
|
# "spec.resources.requests.storage",
|
|
# "spec.storageClassName",
|
|
# ]
|
|
# yaml_body = <<-EOF
|
|
# apiVersion: v1
|
|
# kind: PersistentVolumeClaim
|
|
# metadata:
|
|
# name: ${local.app_slug}
|
|
# namespace: "${var.namespace}"
|
|
# annotations:
|
|
# k8up.io/backup: "${var.backup}"
|
|
# resize.kubesphere.io/storage_limit: "${var.storage.max_size}"
|
|
# labels: ${jsonencode(local.pvc_labels)}
|
|
# spec: ${jsonencode(local.pvc_spec)}
|
|
# EOF
|
|
# }
|
|
resource "kubernetes_persistent_volume_claim_v1" "pvc" {
|
|
metadata {
|
|
name = local.app_slug
|
|
namespace = var.namespace
|
|
annotations = local.pvc_annotations
|
|
labels = local.pvc_labels
|
|
}
|
|
spec {
|
|
access_modes = [var.storage.access_mode]
|
|
resources {
|
|
requests = {
|
|
storage = var.storage.size
|
|
}
|
|
}
|
|
storage_class_name = var.storage.class
|
|
}
|
|
lifecycle {
|
|
ignore_changes = [
|
|
spec[0].resources[0].requests[0],
|
|
spec[0].storage_class_name,
|
|
]
|
|
}
|
|
} |