diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-29 09:57:35 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-29 09:57:35 +0300 |
| commit | 4d71aabf4feb1dcb9c940926fbcc4285525b1c05 (patch) | |
| tree | ce60808e99b1d2a5e19017871052cab57634e4c7 /k8s | |
| parent | d6954b4de0261e45d1d57b7f9319114b508817dc (diff) | |
feat: Create Dockerfile, k8s manifests, and Magefile.go with build/test/install targets (p9)
Diffstat (limited to 'k8s')
| -rw-r--r-- | k8s/deployment.yaml | 73 | ||||
| -rw-r--r-- | k8s/pvc-db.yaml | 12 | ||||
| -rw-r--r-- | k8s/pvc-media.yaml | 12 | ||||
| -rw-r--r-- | k8s/secret.yaml | 10 | ||||
| -rw-r--r-- | k8s/service.yaml | 14 |
5 files changed, 121 insertions, 0 deletions
diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml new file mode 100644 index 0000000..c4c605e --- /dev/null +++ b/k8s/deployment.yaml @@ -0,0 +1,73 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: kiss-media-player + labels: + app: kiss-media-player +spec: + replicas: 1 + selector: + matchLabels: + app: kiss-media-player + template: + metadata: + labels: + app: kiss-media-player + spec: + securityContext: + runAsNonRoot: true + fsGroup: 65534 + containers: + - name: app + image: kiss-media-player:latest + imagePullPolicy: IfNotPresent + securityContext: + runAsUser: 65534 + runAsGroup: 65534 + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + ports: + - containerPort: 8080 + name: http + envFrom: + - secretRef: + name: kiss-media-player-secret + optional: true + env: + - name: PORT + value: "8080" + - name: DB_PATH + value: "/data/media.db" + - name: MEDIA_ROOT + value: "/media" + livenessProbe: + httpGet: + path: /healthz + port: http + initialDelaySeconds: 5 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /readyz + port: http + initialDelaySeconds: 3 + periodSeconds: 5 + volumeMounts: + - name: data + mountPath: /data + - name: media + mountPath: /media + resources: + requests: + memory: "128Mi" + cpu: "100m" + limits: + memory: "512Mi" + cpu: "1000m" + volumes: + - name: data + persistentVolumeClaim: + claimName: kiss-media-player-db + - name: media + persistentVolumeClaim: + claimName: kiss-media-player-media diff --git a/k8s/pvc-db.yaml b/k8s/pvc-db.yaml new file mode 100644 index 0000000..87fad81 --- /dev/null +++ b/k8s/pvc-db.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: kiss-media-player-db + labels: + app: kiss-media-player +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi diff --git a/k8s/pvc-media.yaml b/k8s/pvc-media.yaml new file mode 100644 index 0000000..76e2d41 --- /dev/null +++ b/k8s/pvc-media.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: kiss-media-player-media + labels: + app: kiss-media-player +spec: + accessModes: + - ReadWriteMany + resources: + requests: + storage: 10Gi diff --git a/k8s/secret.yaml b/k8s/secret.yaml new file mode 100644 index 0000000..68b21fc --- /dev/null +++ b/k8s/secret.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Secret +metadata: + name: kiss-media-player-secret + labels: + app: kiss-media-player +type: Opaque +stringData: + # Set this to the desired admin password before applying. + ADMIN_PASSWORD: "changeme" diff --git a/k8s/service.yaml b/k8s/service.yaml new file mode 100644 index 0000000..c3da918 --- /dev/null +++ b/k8s/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: kiss-media-player + labels: + app: kiss-media-player +spec: + type: ClusterIP + selector: + app: kiss-media-player + ports: + - port: 8080 + targetPort: http + name: http |
