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