weather/manifests/application.tf

86 lines
2.0 KiB
HCL

resource "kubernetes_deployment" "application" {
metadata {
name = "poller-application"
labels = {
app = local.service_match_label
env = local.environment
}
namespace = kubernetes_namespace.application_namespace.id
}
spec {
replicas = 1
revision_history_limit = 0
selector {
match_labels = {
app = local.deployment_match_label
}
}
template {
metadata {
labels = {
app = local.deployment_match_label
env = local.environment
}
}
spec {
volume {
name = local.config_volume_name
config_map {
name = kubernetes_config_map.weather_config.metadata.0.name
}
}
volume {
name = local.log_volume_name
persistent_volume_claim {
claim_name = kubernetes_persistent_volume_claim.log_volume_claim.metadata.0.name
}
}
container {
image = format("%s:%s", var.application_image_tag, var.application_version)
name = "poller-application"
args = ["-filename", "/conf/config.hcl", "-logLevel", "info", "-logOutput", "/logs/weather.log"]
volume_mount {
mount_path = "/conf"
name = local.config_volume_name
}
volume_mount {
mount_path = "/logs"
name = local.log_volume_name
}
resources {
limits = {
cpu = "0.5"
memory = "512Mi"
}
requests = {
cpu = "250m"
memory = "50Mi"
}
}
}
}
}
}
timeouts {
create = "5m"
delete = "5m"
update = "5m"
}
}
resource "kubernetes_persistent_volume_claim" "log_volume_claim" {
metadata {
namespace = kubernetes_namespace.application_namespace.id
name = "log-weather-pvc"
}
spec {
storage_class_name = "dx30-nfs"
access_modes = ["ReadWriteMany"]
resources {
requests = {
storage = "2Gi"
}
}
}
}