feat: Separate Icecast streaming server into standalone deployment with standby fallbacks
Sync HTPC Manifests to GitOps / Sync Manifests to GitOps Repo (push) Successful in 6s

This commit is contained in:
bart
2026-11-07 12:50:49 +01:00
parent e6b76d0e26
commit c05308417e
4 changed files with 107 additions and 60 deletions
+102
View File
@@ -0,0 +1,102 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: radio-chicken-icecast
namespace: htpc
labels:
app: radio-chicken-icecast
app.kubernetes.io/name: radio-chicken-icecast
app.kubernetes.io/part-of: htpc
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: radio-chicken-icecast
template:
metadata:
labels:
app: radio-chicken-icecast
app.kubernetes.io/name: radio-chicken-icecast
app.kubernetes.io/part-of: htpc
spec:
nodeSelector:
kubernetes.io/hostname: vmserver
containers:
- name: icecast
image: moul/icecast:latest
imagePullPolicy: IfNotPresent
env:
- name: ICECAST_SOURCE_PASSWORD
value: "hackme"
- name: ICECAST_ADMIN_PASSWORD
value: "hackme"
- name: ICECAST_PASSWORD
value: "hackme"
ports:
- name: icecast
containerPort: 8000
hostPort: 8000
protocol: TCP
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 500m
memory: 512Mi
volumeMounts:
- name: icecast-config
mountPath: /etc/icecast2/icecast.xml
subPath: icecast.xml
- name: standby-media
mountPath: /usr/share/icecast2/web/standby.ogg
subPath: standby.ogg
- name: standby-media
mountPath: /usr/share/icecast2/web/standby.mp3
subPath: standby.mp3
- name: standby-media
mountPath: /usr/share/icecast2/web/standby_video.webm
subPath: standby_video.webm
livenessProbe:
httpGet:
path: /status-json.xsl
port: 8000
initialDelaySeconds: 15
periodSeconds: 20
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /status-json.xsl
port: 8000
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
volumes:
- name: icecast-config
configMap:
name: radio-chicken-icecast-config
- name: standby-media
hostPath:
path: /home/bart/jellyfinradio/webroot
type: Directory
---
apiVersion: v1
kind: Service
metadata:
name: radio-chicken-icecast
namespace: htpc
labels:
app: radio-chicken-icecast
app.kubernetes.io/name: radio-chicken-icecast
app.kubernetes.io/part-of: htpc
spec:
type: ClusterIP
selector:
app: radio-chicken-icecast
ports:
- name: http-icecast
port: 8000
targetPort: 8000
protocol: TCP