diff --git a/main.tf b/main.tf index ae35fef..3fca430 100644 --- a/main.tf +++ b/main.tf @@ -45,3 +45,7 @@ module "keycloak" { module "ollama" { source = "./modules/ollama" } + +module "jayne-martin-counselling" { + source = "./modules/jayne-martin-counselling" +} diff --git a/modules/jayne-martin-counselling/jobspec.nomad.hcl b/modules/jayne-martin-counselling/jobspec.nomad.hcl new file mode 100644 index 0000000..78c1d28 --- /dev/null +++ b/modules/jayne-martin-counselling/jobspec.nomad.hcl @@ -0,0 +1,90 @@ +job "jayne-martin-counselling" { + + namespace = "jaynemartincounselling-prod" + + group "webserver" { + + network { + mode = "bridge" + port "http" { + to = 80 + } + port "envoy_metrics" { + to = 9102 + } + } + + task "webserver" { + driver = "docker" + + config { + image = "git.brmartin.co.uk/jayne-martin-counselling/website:latest" + } + + resources { + cpu = 10 + memory = 32 + } + } + + service { + provider = "consul" + port = 80 + + meta { + envoy_metrics_port = "${NOMAD_HOST_PORT_envoy_metrics}" + } + + connect { + sidecar_service { + proxy { + expose { + path { + path = "/metrics" + protocol = "http" + local_path_port = 9102 + listener_port = "envoy_metrics" + } + } + transparent_proxy {} + } + } + } + } + } + + group "webserver-ingress-group" { + + network { + mode = "bridge" + port "inbound" { + to = 8080 + } + } + + service { + port = "inbound" + tags = [ + "traefik.enable=true", + + "traefik.http.routers.jmc.rule=Host(`www.jaynemartincounselling.co.uk`)", + "traefik.http.routers.jmc.entrypoints=websecure" + ] + + connect { + gateway { + ingress { + listener { + port = 8080 + protocol = "http" + service { + name = "jayne-martin-counselling-webserver" + hosts = ["*"] + } + } + } + } + } + } + } +} diff --git a/modules/jayne-martin-counselling/main.tf b/modules/jayne-martin-counselling/main.tf new file mode 100644 index 0000000..3f83be0 --- /dev/null +++ b/modules/jayne-martin-counselling/main.tf @@ -0,0 +1,3 @@ +resource "nomad_job" "jayne-martin-counselling" { + jobspec = file("${path.module}/jobspec.nomad.hcl") +}