let appName = "jellyseerr"; appImage = "git.gmem.ca/arch/jellyseerr:postgres"; in { kubernetes.resources.services.jellyseerr = { metadata.namespace = "jellyseerr"; spec = { selector.app = appName; ports.http = { port = 5055; targetPort = 5055; }; }; }; kubernetes.resources.deployments.jellyseerr = { metadata.namespace = "jellyseerr"; spec = { selector.matchLabels.app = appName; template = { metadata.labels.app = appName; spec = { volumes = { config.configMap.name = "jellyseerr"; }; containers = { jellyseerr = { image = appImage; envFrom = [{secretRef.name = "jellyseerr";} {configMapRef.name = "jellyseerr";}]; volumeMounts = [ { name = "config"; mountPath = "/app/config/settings.json"; subPath = "settings.json"; } ]; ports.http.containerPort = 5055; resources = { requests = { cpu = "500m"; memory = "128Mi"; }; limits = { cpu = "1"; memory = "512Mi"; }; }; }; }; }; }; }; }; kubernetes.resources.ingresses.jellyseerr = { metadata = { name = appName; namespace = "jellyseerr"; annotations = { "cert-manager.io/cluster-issuer" = "le-issuer"; }; }; spec = { tls = [ { hosts = ["request-media.gmem.ca"]; } ]; rules = [ { host = "request-media.gmem.ca"; http.paths = [ { path = "/"; pathType = "Prefix"; backend.service = { name = appName; port.name = "http"; }; } ]; } ]; }; }; }