From 0c4f8362a5325566d5e924264bb599fd67647f11 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sun, 6 Aug 2023 16:44:31 +0000 Subject: [PATCH] add travel blog website [ci skip] --- modules/kubernetes/main.tf | 5 + modules/kubernetes/travel_blog/main.tf | 136 +++++++++++++++++++++++++ terraform.tfvars | Bin 17126 -> 17159 bytes 3 files changed, 141 insertions(+) create mode 100644 modules/kubernetes/travel_blog/main.tf diff --git a/modules/kubernetes/main.tf b/modules/kubernetes/main.tf index d623b9cc..6a903487 100644 --- a/modules/kubernetes/main.tf +++ b/modules/kubernetes/main.tf @@ -290,6 +290,11 @@ module "infra-maintenance" { git_token = var.webhook_handler_git_token } +module "travel_blog" { + source = "./travel_blog" + tls_secret_name = var.tls_secret_name +} + # module "metrics_api" { # source = "./metrics_api" # tls_secret_name = var.tls_secret_name diff --git a/modules/kubernetes/travel_blog/main.tf b/modules/kubernetes/travel_blog/main.tf new file mode 100644 index 00000000..0c1e30f0 --- /dev/null +++ b/modules/kubernetes/travel_blog/main.tf @@ -0,0 +1,136 @@ +variable "tls_secret_name" {} + +resource "kubernetes_namespace" "website" { + metadata { + name = "travel-blog" + } +} + +module "tls_secret" { + source = "../setup_tls_secret" + namespace = "travel-blog" + tls_secret_name = var.tls_secret_name +} + +# module "dockerhub_creds" { +# source = "../dockerhub_secret" +# namespace = "website" +# password = var.dockerhub_password +# } + +resource "kubernetes_deployment" "blog" { + metadata { + name = "travel-blog" + namespace = "travel-blog" + labels = { + run = "travel-blog" + } + } + spec { + replicas = 3 + selector { + match_labels = { + run = "travel-blog" + } + } + template { + metadata { + labels = { + run = "travel-blog" + } + } + spec { + container { + image = "viktorbarzin/travel-blog:latest" + name = "travel-blog" + resources { + limits = { + cpu = "0.5" + memory = "512Mi" + } + requests = { + cpu = "250m" + memory = "50Mi" + } + } + port { + container_port = 80 + } + } + + container { + image = "nginx/nginx-prometheus-exporter" + name = "nginx-exporter" + args = ["-nginx.scrape-uri", "http://127.0.0.1:8080/nginx_status"] + port { + container_port = 9113 + } + } + } + } + } +} + +resource "kubernetes_service" "travel-blog" { + metadata { + name = "travel-blog" + namespace = "travel-blog" + labels = { + "run" = "travel-blog" + } + annotations = { + "prometheus.io/scrape" = "true" + "prometheus.io/path" = "/metrics" + "prometheus.io/port" = "9113" + } + } + + spec { + selector = { + run = "travel-blog" + } + port { + name = "http" + port = "80" + target_port = "80" + } + port { + name = "prometheus" + port = "9113" + target_port = "9113" + } + } +} + +resource "kubernetes_ingress_v1" "travel-blog" { + metadata { + name = "travel-blog-ingress" + namespace = "travel-blog" + annotations = { + "kubernetes.io/ingress.class" = "nginx" + } + } + + spec { + tls { + hosts = ["travel.viktorbarzin.me"] + secret_name = var.tls_secret_name + } + rule { + host = "viktorbarzin.me" + http { + path { + path = "/" + backend { + service { + name = "travel-blog" + port { + number = 80 + } + } + } + } + } + } + } +} diff --git a/terraform.tfvars b/terraform.tfvars index 91b5566398a1f1e5540fc7f9e12af68d97bf50ad..81c7ac1ab1bab26154de8c4e8dce5df3642e1cfc 100644 GIT binary patch literal 17159 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 OPv}9ae49cx&%hUml{@wT literal 17126 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