From 2cb1b29aa7f3ac55eecbb1755e88614bd3f40636 Mon Sep 17 00:00:00 2001 From: Ibrahim Mkusa Date: Sun, 8 Jun 2025 21:29:06 -0400 Subject: [PATCH] use k8s as ingress for external cluster services --- manifests/jellyfin/README.md | 3 ++ manifests/jellyfin/externalip.yaml | 63 ++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 manifests/jellyfin/externalip.yaml diff --git a/manifests/jellyfin/README.md b/manifests/jellyfin/README.md index 74121e8..346ba89 100644 --- a/manifests/jellyfin/README.md +++ b/manifests/jellyfin/README.md @@ -1 +1,4 @@ make sure `nfs-common` package is installed on all nodes + +You can also use the ingress-nginx controller to point to external resources +outside the cluster like a vm running 'jellyfin' diff --git a/manifests/jellyfin/externalip.yaml b/manifests/jellyfin/externalip.yaml new file mode 100644 index 0000000..1013a8b --- /dev/null +++ b/manifests/jellyfin/externalip.yaml @@ -0,0 +1,63 @@ +# see https://stackoverflow.com/questions/57764237/kubernetes-ingress-to-external-service +--- +apiVersion: v1 +kind: Namespace +metadata: + name: jellyfin +spec: {} +status: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: external-ip + namespace: jellyfin + annotations: + external-dns.alpha.kubernetes.io/hostname: jellyfin.homelab.local +spec: + type: LoadBalancer + loadBalancerIP: 192.168.0.251 + ports: + - name: app + port: 80 + protocol: TCP + targetPort: 8096 +--- +apiVersion: v1 +kind: Endpoints +metadata: + name: external-ip + namespace: jellyfin +subsets: +- addresses: + - ip: 192.168.0.104 + ports: + - name: app + port: 8096 + protocol: TCP +--- +#apiVersion: networking.k8s.io/v1 +#kind: Ingress +#metadata: + #name: external-service + #namespace: jellyfin + #annotations: + #cert-manager.io/cluster-issuer: "letsencrypt-staging" +#spec: + #ingressClassName: nginx + #rules: + #- host: jellyfin.kwerezigua.org + #http: + #paths: + #- backend: + #service: + #name: external-ip + #port: + #number: 80 + #path: / + #pathType: Prefix + #tls: + #- hosts: + #- jellyfin.kwerezigua.org + #secretName: jellyfin-ca-secret +