weather/manifests/common.tf

47 lines
1.6 KiB
HCL

resource "kubernetes_namespace" "application_namespace" {
metadata {
name = "application"
}
}
resource "kubernetes_config_map" "weather_config" {
metadata {
name = "weather-hcl"
namespace = kubernetes_namespace.application_namespace.id
}
data = {
"config.hcl" = <<EOF
openweather_secret = "${var.openweather_secret}"
s3 {
endpoint_url = "${var.S3_endpoint}"
bucket_name = "${var.S3_bucket}"
region = "${var.S3_region}"
aws_access_key_id = "${var.S3_key_id}"
aws_secret_access_key = "${var.S3_key_secret}"
}
EOF
}
}
// deploy poller application
module "poller_application" {
source = "./application"
environment = var.environment
application_name = "poller"
kubernetes_namespace = kubernetes_namespace.application_namespace
application_image = format("docker.registry/weather/poller:%s", var.poller_version)
kubernetes_config_map = kubernetes_config_map.weather_config.metadata.0
application_args = ["-filename", "/conf/config.hcl", "-logLevel", "info", "-logOutput", "/logs/weather.log", "-check-interval", "1h"]
}
// deploy weather server application
module "weather_server_application" {
source = "./application"
environment = var.environment
application_name = "weather-server"
kubernetes_namespace = kubernetes_namespace.application_namespace
application_image = format("docker.registry/weather/server:%s", var.weather_version)
kubernetes_config_map = kubernetes_config_map.weather_config.metadata.0
expose_application = true
application_dns = "weather.localdomain"
application_args = ["-filename", "/conf/config.hcl"]
}