diff --git a/environments/au-syd1/terragrunt.hcl b/environments/au-syd1/terragrunt.hcl index 8c1b5e7..9c298bb 100644 --- a/environments/au-syd1/terragrunt.hcl +++ b/environments/au-syd1/terragrunt.hcl @@ -6,6 +6,7 @@ inputs = { job_files = [ "testapp1", "testapp2", + "app-sudaporn-research-normalised", ] policy_files = [] } diff --git a/jobs/app-sudaporn-research-normalised.hcl b/jobs/app-sudaporn-research-normalised.hcl new file mode 100644 index 0000000..85bd7d9 --- /dev/null +++ b/jobs/app-sudaporn-research-normalised.hcl @@ -0,0 +1,71 @@ +job "app-sudaporn-research-normalised" { + datacenters = ["au-syd1"] + type = "service" + + group "app" { + count = 2 + + network { + port "http" { + to = 80 + } + } + + update { + max_parallel = 1 + health_check = "checks" + min_healthy_time = "30s" + healthy_deadline = "5m" + progress_deadline = "10m" + auto_revert = true + auto_promote = true + canary = 1 + stagger = "20s" + } + + # Ensure instances run on different agents + spread { + attribute = "${node.unique.id}" + weight = 100 + } + + # Application Task + task "webapp" { + driver = "docker" + + config { + image = "git.query.consul/unkin/almalinux9-base:latest" + network_mode = "bridge" + ports = ["http"] + command = "sh" + args = [ + "-c", + "rm -rf /app && git clone https://git.query.consul/unkin/app-sudaporn-research-normalised.git /app && cd /app && make run" + ] + } + + env { + PORT = "80" + PYTHONUNBUFFERED = "1" + } + + resources { + cpu = 500 + memory = 350 + } + + service { + name = "app-sudaporn-research-normalised" + port = "http" + address_mode = "driver" + + check { + type = "http" + path = "/" + interval = "10s" + timeout = "2s" + } + } + } + } +}