From 5b821d319066b28136c16b6cff131ec480bbe1f1 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Mon, 25 Aug 2025 12:22:39 +0000 Subject: [PATCH] add fressh rss [ci skip] --- modules/kubernetes/freshrss/main.tf | 117 ++++++++++++++++++++++++++++ modules/kubernetes/main.tf | 5 ++ 2 files changed, 122 insertions(+) create mode 100644 modules/kubernetes/freshrss/main.tf diff --git a/modules/kubernetes/freshrss/main.tf b/modules/kubernetes/freshrss/main.tf new file mode 100644 index 00000000..0567c7e2 --- /dev/null +++ b/modules/kubernetes/freshrss/main.tf @@ -0,0 +1,117 @@ +variable "tls_secret_name" {} + +module "tls_secret" { + source = "../setup_tls_secret" + namespace = "freshrss" + tls_secret_name = var.tls_secret_name +} + +resource "kubernetes_namespace" "immich" { + metadata { + name = "freshrss" + } +} + + +resource "kubernetes_deployment" "freshrss" { + metadata { + name = "freshrss" + namespace = "freshrss" + labels = { + app = "freshrss" + "kubernetes.io/cluster-service" = "true" + } + } + spec { + replicas = 1 + strategy { + type = "Recreate" + } + selector { + match_labels = { + app = "freshrss" + } + } + template { + metadata { + labels = { + app = "freshrss" + "kubernetes.io/cluster-service" = "true" + } + } + spec { + + container { + name = "freshrss" + image = "freshrss/freshrss" + env { + name = "CRON_MIN" + value = "60" + } + env { + name = "BASE_URL" + value = "https://rss.viktorbarzin.me" + } + env { + name = "PUBLISHED_PORT" + value = 80 + } + volume_mount { + name = "data" + mount_path = "/var/www/FreshRSS/data" + } + volume_mount { + name = "extensions" + mount_path = "/var/www/FreshRSS/extensions" + } + port { + name = "http" + container_port = 80 + protocol = "TCP" + } + } + volume { + name = "data" + nfs { + path = "/mnt/main/freshrss/data" + server = "10.0.10.15" + } + } + volume { + name = "extensions" + nfs { + path = "/mnt/main/freshrss/extensions" + server = "10.0.10.15" + } + } + } + } + } +} + +resource "kubernetes_service" "freshrss" { + metadata { + name = "freshrss" + namespace = "freshrss" + labels = { + "app" = "freshrss" + } + } + + spec { + selector = { + app = "freshrss" + } + port { + port = "80" + target_port = "80" + } + } +} +module "ingress" { + source = "../ingress_factory" + namespace = "freshrss" + name = "rss" + service_name = "freshrss" + tls_secret_name = var.tls_secret_name +} diff --git a/modules/kubernetes/main.tf b/modules/kubernetes/main.tf index 2d5b9e53..835c5acf 100644 --- a/modules/kubernetes/main.tf +++ b/modules/kubernetes/main.tf @@ -669,3 +669,8 @@ module "xray" { xray_reality_private_key = var.xray_reality_private_key xray_reality_short_ids = var.xray_reality_short_ids } + +module "freshrss" { + source = "./freshrss" + tls_secret_name = var.tls_secret_name +}