47 lines
1.6 KiB
HCL
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"]
|
|
} |