From 7721d6d291b1248ff97e7a41ebc8604ee92b327f Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Sat, 16 Aug 2025 12:03:21 +0000 Subject: [PATCH] add forgejo [ci skip] --- modules/kubernetes/forgejo/main.tf | 103 +++++++++++++++++++++++++++++ modules/kubernetes/main.tf | 6 ++ 2 files changed, 109 insertions(+) create mode 100644 modules/kubernetes/forgejo/main.tf diff --git a/modules/kubernetes/forgejo/main.tf b/modules/kubernetes/forgejo/main.tf new file mode 100644 index 00000000..84aaaf24 --- /dev/null +++ b/modules/kubernetes/forgejo/main.tf @@ -0,0 +1,103 @@ +variable "tls_secret_name" {} + +resource "kubernetes_namespace" "forgejo" { + metadata { + name = "forgejo" + labels = { + "istio-injection" : "disabled" + } + } +} + +module "tls_secret" { + source = "../setup_tls_secret" + namespace = "forgejo" + tls_secret_name = var.tls_secret_name +} + +resource "kubernetes_deployment" "forgejo" { + metadata { + name = "forgejo" + namespace = "forgejo" + labels = { + app = "forgejo" + } + } + spec { + replicas = 1 + strategy { + type = "RollingUpdate" # DB is external so we can roll + } + selector { + match_labels = { + app = "forgejo" + } + } + template { + metadata { + labels = { + app = "forgejo" + } + } + spec { + container { + name = "forgejo" + image = "codeberg.org/forgejo/forgejo:11" + env { + name = "USER_UID" + value = 1000 + } + env { + name = "USER_GID" + value = 1000 + } + volume_mount { + name = "data" + mount_path = "/data" + } + port { + name = "http" + container_port = 3000 + protocol = "TCP" + } + } + volume { + name = "data" + nfs { + path = "/mnt/main/forgejo" + server = "10.0.10.15" + } + } + } + } + } +} + +resource "kubernetes_service" "forgejo" { + metadata { + name = "forgejo" + namespace = "forgejo" + labels = { + "app" = "forgejo" + } + } + + spec { + selector = { + app = "forgejo" + } + port { + port = 80 + target_port = 3000 + } + } +} +module "ingress" { + source = "../ingress_factory" + namespace = "forgejo" + name = "forgejo" + tls_secret_name = var.tls_secret_name + extra_annotations = { + "nginx.ingress.kubernetes.io/proxy-body-size" : "20000m" + } +} diff --git a/modules/kubernetes/main.tf b/modules/kubernetes/main.tf index 428cdd7c..49d6fa70 100644 --- a/modules/kubernetes/main.tf +++ b/modules/kubernetes/main.tf @@ -647,3 +647,9 @@ module "kured" { # source = "./onlyoffice" # tls_secret_name = var.tls_secret_name # } + + +module "forgejo" { + source = "./forgejo" + tls_secret_name = var.tls_secret_name +}