refactoring proxy ingress to use endpointslice

This commit is contained in:
2026-01-02 16:29:49 -07:00
parent dae82f8971
commit 97ac6d224b
9 changed files with 271 additions and 92 deletions

View File

@@ -8,7 +8,7 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- audiobook.alexmickelson.guru - audiobook.alexmickelson.guru
secretName: audiobookshelf-tls-cert secretName: audiobookshelf-tls-cert
rules: rules:
@@ -19,15 +19,35 @@ spec:
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: audiobookshelf-service name: audiobookshelf
port: port:
number: 13378 number: 13378
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: audiobookshelf-service name: audiobookshelf
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 13378
targetPort: 13378
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: audiobookshelf
namespace: projects
labels:
kubernetes.io/service-name: audiobookshelf
addressType: IPv4
ports:
- name: http
port: 13378
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -8,7 +8,7 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- copilot.alexmickelson.guru - copilot.alexmickelson.guru
secretName: copilot-tls-cert secretName: copilot-tls-cert
rules: rules:
@@ -19,15 +19,35 @@ spec:
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: copilot-service name: copilot
port: port:
number: 4444 number: 4444
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: copilot-service name: copilot
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 4444
targetPort: 4444
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: copilot
namespace: projects
labels:
kubernetes.io/service-name: copilot
addressType: IPv4
ports:
- name: http
port: 4444
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -8,7 +8,7 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- grafana.alexmickelson.guru - grafana.alexmickelson.guru
secretName: grafana-tls-cert secretName: grafana-tls-cert
rules: rules:
@@ -19,15 +19,35 @@ spec:
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: grafana-service name: grafana
port: port:
number: 3000 number: 3000
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: grafana-service name: grafana
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 3000
targetPort: 3000
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: grafana
namespace: projects
labels:
kubernetes.io/service-name: grafana
addressType: IPv4
ports:
- name: http
port: 3000
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -8,7 +8,7 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- ha.alexmickelson.guru - ha.alexmickelson.guru
secretName: ha-tls-cert secretName: ha-tls-cert
rules: rules:
@@ -19,15 +19,35 @@ spec:
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: home-assistant-service name: home-assistant
port: port:
number: 8123 number: 8123
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: home-assistant-service name: home-assistant
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 8123
targetPort: 8123
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: home-assistant
namespace: projects
labels:
kubernetes.io/service-name: home-assistant
addressType: IPv4
ports:
- name: http
port: 8123
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -8,27 +8,46 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- home.alexmickelson.guru - home.alexmickelson.guru
secretName: home-tls-cert secretName: home-tls-cert
rules: rules:
- host: home.alexmickelson.guru - host: home.alexmickelson.guru
http: http:
paths: paths:
- path: / - path: /
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: homepage-service name: homepage
port: port:
number: 3001 number: 3001
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: homepage-service name: homepage
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 3001
targetPort: 3001
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: homepage
namespace: projects
labels:
kubernetes.io/service-name: homepage
addressType: IPv4
ports:
- name: http
port: 3001
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -12,26 +12,46 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- photos.alexmickelson.guru - photos.alexmickelson.guru
secretName: immich-tls-cert secretName: immich-tls-cert
rules: rules:
- host: photos.alexmickelson.guru - host: photos.alexmickelson.guru
http: http:
paths: paths:
- path: / - path: /
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: immich-service name: immich
port: port:
number: 2283 number: 2283
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: immich-service name: immich
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 2283
targetPort: 2283
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: immich
namespace: projects
labels:
kubernetes.io/service-name: immich
addressType: IPv4
ports:
- name: http
port: 2283
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -8,26 +8,46 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- sound.alexmickelson.guru - sound.alexmickelson.guru
secretName: sound-tls-cert secretName: sound-tls-cert
rules: rules:
- host: sound.alexmickelson.guru - host: sound.alexmickelson.guru
http: http:
paths: paths:
- path: / - path: /
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: musicassistant-service name: musicassistant
port: port:
number: 8095 number: 8095
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: musicassistant-service name: musicassistant
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 8095
targetPort: 8095
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: musicassistant
namespace: projects
labels:
kubernetes.io/service-name: musicassistant
addressType: IPv4
ports:
- name: http
port: 8095
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -5,10 +5,10 @@ metadata:
namespace: projects namespace: projects
annotations: annotations:
cert-manager.io/cluster-issuer: cloudflare-issuer cert-manager.io/cluster-issuer: cloudflare-issuer
nginx.ingress.kubernetes.io/proxy-body-size: 51200m nginx.ingress.kubernetes.io/proxy-body-size: 51200m
nginx.ingress.kubernetes.io/server-snippet: |- nginx.ingress.kubernetes.io/server-snippet: |-
server_tokens off; server_tokens off;
proxy_hide_header X-Powered-By; proxy_hide_header X-Powered-By;
nginx.ingress.kubernetes.io/cors-allow-headers: X-Forwarded-For nginx.ingress.kubernetes.io/cors-allow-headers: X-Forwarded-For
nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/proxy-buffer-size: 225m nginx.ingress.kubernetes.io/proxy-buffer-size: 225m
@@ -20,26 +20,46 @@ metadata:
spec: spec:
ingressClassName: nginx ingressClassName: nginx
tls: tls:
- hosts: - hosts:
- next.alexmickelson.guru - next.alexmickelson.guru
secretName: nextcloud-tls-cert secretName: nextcloud-tls-cert
rules: rules:
- host: next.alexmickelson.guru - host: next.alexmickelson.guru
http: http:
paths: paths:
- path: / - path: /
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: nextcloud-service name: nextcloud
port: port:
number: 9001 number: 9001
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: nextcloud-service name: nextcloud
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 9001
targetPort: 9001
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: nextcloud
namespace: projects
labels:
kubernetes.io/service-name: nextcloud
addressType: IPv4
ports:
- name: http
port: 9001
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true

View File

@@ -19,15 +19,35 @@ spec:
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: prometheus-service name: prometheus
port: port:
number: 9091 number: 9091
--- ---
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: prometheus-service name: prometheus
namespace: projects namespace: projects
spec: spec:
type: ExternalName ports:
externalName: 100.122.128.107 - port: 9091
targetPort: 9091
protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: prometheus
namespace: projects
labels:
kubernetes.io/service-name: prometheus
addressType: IPv4
ports:
- name: http
port: 9091
protocol: TCP
endpoints:
- addresses:
- 100.122.128.107
conditions:
ready: true