Convert all internet-facing services to ClusterIP

This commit is contained in:
Astra Logical 2026-04-05 16:47:11 -04:00
parent e09dd5694d
commit b696349b02
21 changed files with 235 additions and 29 deletions

View file

@ -31,6 +31,7 @@ spec:
ports:
- containerPort: 80
protocol: TCP
name: web-ui
volumeMounts:
- mountPath: /audiobooks
name: audiobookshelf-audiobooks

View file

@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: audiobookshelf-ingress
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: lyrebird.mynest.love
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: audiobookshelf
port:
name: http-web

View file

@ -8,11 +8,10 @@ metadata:
io.kompose.service: audiobookshelf
name: audiobookshelf
spec:
type: NodePort
type: ClusterIP
ports:
- name: "30378"
port: 30378
targetPort: 80
nodePort: 30378
- name: http-web
port: 80
targetPort: web-ui
selector:
io.kompose.service: audiobookshelf

View file

@ -33,6 +33,7 @@ spec:
ports:
- containerPort: 8083
protocol: TCP
name: web-ui
volumeMounts:
- mountPath: /config
name: calibre-web-config

View file

@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: calibre-web-ingress
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: rookery.mynest.love
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: calibre-web
port:
name: http-web

View file

@ -5,11 +5,10 @@ metadata:
io.kompose.service: calibre-web
name: calibre-web
spec:
type: NodePort
type: ClusterIP
ports:
- name: "30083"
port: 30083
targetPort: 8083
nodePort: 30083
- name: http-web
port: 80
targetPort: web-ui
selector:
io.kompose.service: calibre-web

View file

@ -53,6 +53,7 @@ spec:
ports:
- containerPort: 30000
protocol: TCP
name: web-ui
volumeMounts:
- mountPath: /data
name: foundry-vtt-volume

View file

@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: foundry-ingress
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: foundry.mynest.love
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: foundry-vtt
port:
name: http-web

View file

@ -8,10 +8,10 @@ metadata:
io.kompose.service: foundry-vtt
name: foundry-vtt
spec:
type: NodePort
type: ClusterIP
ports:
- port: 30000
targetPort: 30000
nodePort: 30000
- name: http-web
port: 80
targetPort: web-ui
selector:
io.kompose.service: foundry-vtt

View file

@ -33,6 +33,7 @@ spec:
ports:
- containerPort: 8096
protocol: TCP
name: web-ui
volumeMounts:
- mountPath: /config
name: jellyfin-config

View file

@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: jellyfin-ingress
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: beak.mynest.love
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: jellyfin
port:
name: http-web

View file

@ -8,11 +8,10 @@ metadata:
io.kompose.service: jellyfin
name: jellyfin
spec:
type: NodePort
type: ClusterIP
ports:
- name: "30796"
port: 30796
targetPort: 8096
nodePort: 30796
- name: http-web
port: 80
targetPort: web-ui
selector:
io.kompose.service: jellyfin

View file

@ -43,6 +43,7 @@ spec:
ports:
- containerPort: 4533
protocol: TCP
name: http
securityContext:
runAsGroup: 1000
runAsUser: 1000

View file

@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: navidrome-ingress
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: chirp.mynest.love
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: navidrome
port:
name: http-web

View file

@ -8,11 +8,10 @@ metadata:
io.kompose.service: navidrome
name: navidrome
spec:
type: NodePort
type: ClusterIP
ports:
- name: "30533"
port: 30533
targetPort: 4533
nodePort: 30533
- name: http-web
port: 80
targetPort: http
selector:
io.kompose.service: navidrome

View file

@ -0,0 +1,59 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: vault-keykeeper
namespace: vault
spec:
replicas: 1
selector:
matchLabels:
app: vault-keykeeper
template:
metadata:
labels:
app: vault-keykeeper
spec:
nodeSelector:
app: keykeeper # Should be Robin/some non-server node with a /keykeeper local dir
containers:
- name: vault
image: hashicorp/vault:latest
args: ["server"]
env:
- name: VAULT_LOCAL_CONFIG
value: |
storage "file" {
path = "/vault/file"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
disable_mlock = true
- name: VAULT_API_ADDR
value: "http://$(HOSTNAME).vault-internal:8200"
- name: SKIP_SETCAP
value: "true"
- name: VAULT_ADDR
value: "http://127.0.0.1:8200"
- name: VAULT_CLUSTER_ADDR
value: "http://$(HOSTNAME).vault-internal:8201"
- name: VAULT_K8S_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: VAULT_K8S_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
ports:
- containerPort: 8200
name: vault-ui
volumeMounts:
- name: vault-data
mountPath: /vault/file
volumes:
- name: vault-data
hostPath:
path: /vaultkeeper
type: DirectoryOrCreate

View file

@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: keykeeper-ingress
namespace: vault
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: keykeeper.k3s.home.nest
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: vault-keykeeper
port:
name: http-web

View file

@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: vault-keykeeper
namespace: vault
spec:
type: ClusterIP
ports:
- name: http-web
port: 8200
targetPort: vault-ui
selector:
app: vault-keykeeper

View file

@ -8,7 +8,6 @@ metadata:
io.kompose.service: vaultwarden
name: vaultwarden
spec:
replicas: 3
selector:
matchLabels:
io.kompose.service: vaultwarden
@ -33,6 +32,7 @@ spec:
ports:
- containerPort: 80
protocol: TCP
name: http
securityContext:
runAsGroup: 1000
runAsUser: 1000

View file

@ -0,0 +1,19 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: vaultwarden-ingress
namespace: default
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: vault.mynest.love
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: vaultwarden
port:
name: http-web

View file

@ -8,10 +8,10 @@ metadata:
io.kompose.service: vaultwarden
name: vaultwarden
spec:
type: NodePort
type: ClusterIP
ports:
- port: 32233
targetPort: 80
nodePort: 32233
- name: http-web
port: 80
targetPort: http
selector:
io.kompose.service: vaultwarden