Files
vps-k8s/stoat/mongo.tf
T
2026-02-16 19:26:47 +01:00

90 lines
1.6 KiB
Terraform

variable "mongo" {
type = object({
app_name = optional(string, "mongo")
image = string
version = string
})
}
resource "kubernetes_service_v1" "mongo" {
metadata {
name = var.mongo.app_name
namespace = kubernetes_namespace_v1.stoat.metadata[0].name
}
spec {
selector = {
app = var.mongo.app_name
}
port {
port = 27017
target_port = 27017
}
}
}
resource "kubernetes_persistent_volume_claim_v1" "mongo" {
metadata {
name = var.mongo.app_name
namespace = kubernetes_namespace_v1.stoat.metadata[0].name
}
spec {
storage_class_name = "local-path"
access_modes = ["ReadWriteOnce"]
resources {
requests = {
storage = "5Gi"
}
}
}
}
resource "kubernetes_deployment_v1" "mongo" {
metadata {
name = var.mongo.app_name
namespace = kubernetes_namespace_v1.stoat.metadata[0].name
}
spec {
replicas = 1
selector {
match_labels = {
app = var.mongo.app_name
}
}
template {
metadata {
labels = {
"app" = var.mongo.app_name
}
}
spec {
container {
name = var.mongo.app_name
image = "${var.mongo.image}:${var.mongo.version}"
port {
container_port = 27017
}
volume_mount {
name = "mongo-data"
mount_path = "/data/db"
}
}
volume {
name = "mongo-data"
persistent_volume_claim {
claim_name = var.mongo.app_name
}
}
}
}
}
}