apiVersion: apps/v1 kind: Deployment metadata: name: musicbrainz-db spec: replicas: 1 selector: matchLabels: app: musicbrainz-db template: metadata: labels: app: musicbrainz-db spec: nodeSelector: kubernetes.io/hostname: robin containers: - name: postgres image: postgres:16 envFrom: - secretRef: name: musicbrainz-secret env: - name: POSTGRES_DB value: "musicbrainz_db" ports: - containerPort: 5432 volumeMounts: - name: db-data mountPath: /var/lib/postgresql/data subPath: musicbrainz-data volumes: - name: db-data persistentVolumeClaim: claimName: musicbrainz-pvc --- apiVersion: apps/v1 kind: Deployment metadata: name: musicbrainz-redis spec: replicas: 1 selector: matchLabels: app: musicbrainz-redis template: metadata: labels: app: musicbrainz-redis spec: containers: - name: redis image: redis:7-alpine ports: - containerPort: 6379 --- apiVersion: apps/v1 kind: Deployment metadata: name: musicbrainz-web spec: replicas: 1 selector: matchLabels: app: musicbrainz-web template: metadata: labels: app: musicbrainz-web spec: containers: - name: musicbrainz image: metabrainz/musicbrainz-server:latest ports: - containerPort: 5000 envFrom: - secretRef: name: musicbrainz-secret env: - name: POSTGRES_HOST value: "musicbrainz-db" - name: REDIS_HOST value: "musicbrainz-redis" - name: MUSICBRAINZ_STANDALONE_SERVER value: "1"