# ----------------------------------------------------------------------- # VOLUMES # ----------------------------------------------------------------------- --- apiVersion: v1 kind: PersistentVolume metadata: name: crates-postgres-pv spec: storageClassName: "" capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain claimRef: namespace: default name: crates-postgres-pvc hostPath: path: "/var/lib/rancher/k3s/storage/crates-postgres-pv" type: DirectoryOrCreate --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: crates-postgres-pvc spec: volumeName: crates-postgres-pv accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- # ----------------------------------------------------------------------- # DEPLOYMENTS # ----------------------------------------------------------------------- apiVersion: apps/v1 kind: Deployment metadata: name: crates-postgres spec: replicas: 1 selector: matchLabels: app: crates-postgres template: metadata: labels: app: crates-postgres spec: containers: - name: postgres image: postgres:16 ports: - containerPort: 5432 env: - name: POSTGRES_DB valueFrom: secretKeyRef: name: crates key: POSTGRES_DB - name: POSTGRES_USER valueFrom: secretKeyRef: name: crates key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: crates key: POSTGRES_PASSWORD volumeMounts: - name: crates-postgres-storage mountPath: /var/lib/postgresql/data volumes: - name: crates-postgres-storage persistentVolumeClaim: claimName: crates-postgres-pvc --- apiVersion: apps/v1 kind: Deployment metadata: name: crates-api spec: replicas: 1 selector: matchLabels: app: crates-api template: metadata: labels: app: crates-api spec: containers: - name: crates-api image: registry.strix.systems/crates-api imagePullPolicy: IfNotPresent ports: - containerPort: 80 env: - name: DATABASE_URL valueFrom: secretKeyRef: name: crates key: DATABASE_URL - name: DISCORD_TOKEN valueFrom: secretKeyRef: name: crates key: DISCORD_TOKEN - name: DISCOGS_TOKEN valueFrom: secretKeyRef: name: crates key: DISCOGS_TOKEN - name: DISCORD_ENABLED valueFrom: secretKeyRef: name: crates key: DISCORD_ENABLED --- apiVersion: apps/v1 kind: Deployment metadata: name: crates-migrate spec: replicas: 1 selector: matchLabels: app: crates-migrate template: metadata: labels: app: crates-migrate spec: containers: - name: crates-migrate image: registry.strix.systems/crates-api imagePullPolicy: IfNotPresent command: ["npx"] args: ["prisma", "migrate", "deploy"] env: - name: DATABASE_URL valueFrom: secretKeyRef: name: crates key: DATABASE_URL --- apiVersion: apps/v1 kind: Deployment metadata: name: crates-client spec: replicas: 1 selector: matchLabels: app: crates-client template: metadata: labels: app: crates-client spec: containers: - name: crates-client image: registry.strix.systems/crates-client imagePullPolicy: IfNotPresent ports: - containerPort: 8080 --- # ----------------------------------------------------------------------- # SERVICES # ----------------------------------------------------------------------- apiVersion: v1 kind: Service metadata: name: crates-api spec: selector: app: crates-api ports: - port: 41337 --- apiVersion: v1 kind: Service metadata: name: crates-postgres spec: selector: app: crates-postgres ports: - port: 5432 --- apiVersion: v1 kind: Service metadata: name: crates-client spec: selector: app: crates-client ports: - port: 8080