diff --git a/modules/kubernetes/main.tf b/modules/kubernetes/main.tf index acad8247..7f419434 100644 --- a/modules/kubernetes/main.tf +++ b/modules/kubernetes/main.tf @@ -312,3 +312,9 @@ module "reverse-proxy" { source = "./reverse_proxy" tls_secret_name = var.tls_secret_name } + +# Selfhosted Firefox send +module "send" { + source = "./send" + tls_secret_name = var.tls_secret_name +} diff --git a/modules/kubernetes/send/main.tf b/modules/kubernetes/send/main.tf new file mode 100644 index 00000000..929f2c25 --- /dev/null +++ b/modules/kubernetes/send/main.tf @@ -0,0 +1,133 @@ +variable "tls_secret_name" {} + +resource "kubernetes_namespace" "send" { + metadata { + name = "send" + } +} + +module "tls_secret" { + source = "../setup_tls_secret" + namespace = "send" + tls_secret_name = var.tls_secret_name +} + +resource "kubernetes_deployment" "dashy" { + metadata { + name = "send" + namespace = "send" + labels = { + app = "send" + } + annotations = { + "reloader.stakater.com/search" = "true" + } + } + spec { + replicas = 1 + selector { + match_labels = { + app = "send" + } + } + template { + metadata { + labels = { + app = "send" + } + } + spec { + container { + image = "registry.gitlab.com/timvisee/send:latest" + name = "send" + + port { + container_port = 1443 + } + env { + name = "FILE_DIR" + value = "/uploads" + } + env { + name = "BASE_URL" + value = "https://send.viktorbarzin.me" + } + env { + name = "MAX_FILE_SIZE" + value = "5368709120" + } + env { + name = "MAX_DOWNLOADS" + value = 10 # try to minimize abusive behaviour + } + env { + name = "MAX_EXPIRE_SECONDS" + value = 7 * 24 * 3600 + } + volume_mount { + name = "data" + mount_path = "/uploads" + } + } + volume { + name = "data" + nfs { + path = "/mnt/main/send" + server = "10.0.10.15" + } + } + } + } + } +} +resource "kubernetes_service" "send" { + metadata { + name = "send" + namespace = "send" + labels = { + app = "send" + } + } + + spec { + selector = { + app = "send" + } + port { + name = "http" + port = 1443 + } + } +} +resource "kubernetes_ingress_v1" "send" { + metadata { + name = "send" + namespace = "send" + annotations = { + "kubernetes.io/ingress.class" = "nginx" + } + } + + spec { + tls { + hosts = ["send.viktorbarzin.me"] + secret_name = var.tls_secret_name + } + rule { + host = "send.viktorbarzin.me" + http { + path { + path = "/" + backend { + service { + name = "send" + port { + number = 1443 + } + } + } + } + } + } + } +} diff --git a/terraform.tfstate b/terraform.tfstate index 58e4e90e..f660904a 100644 Binary files a/terraform.tfstate and b/terraform.tfstate differ