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" } } } }