--- apiVersion: v1 kind: Namespace metadata: name: crates # ----------------------------------------------------------------------- # VOLUMES # ----------------------------------------------------------------------- --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: crates-postgres-data namespace: crates spec: storageClassName: zfs-fast accessModes: - ReadWriteOnce resources: requests: storage: 2Gi --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: crates-postgres-bootstrap namespace: crates spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- # ----------------------------------------------------------------------- # DEPLOYMENTS # ----------------------------------------------------------------------- apiVersion: apps/v1 kind: Deployment metadata: name: crates-postgres namespace: crates 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 - name: crates-postgres-bootstrap mountPath: /docker-entrypoint-initdb.d volumes: - name: crates-postgres-storage persistentVolumeClaim: claimName: crates-postgres-data - name: crates-postgres-bootstrap persistentVolumeClaim: claimName: crates-postgres-bootstrap --- # apiVersion: v1 # kind: Pod # metadata: # name: nbody-gpu-benchmark # namespace: default # spec: apiVersion: apps/v1 kind: Pod metadata: namespace: crates name: crates-api spec: spec: containers: - name: crates-api image: registry.ntwl.xyz/crates-api imagePullPolicy: Always 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: v1 kind: Pod metadata: namespace: crates name: crates-migrate spec: restartPolicy: OnFailure containers: - name: crates-migrate image: registry.ntwl.xyz/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: namespace: crates name: crates-client spec: replicas: 1 selector: matchLabels: app: crates-client template: metadata: labels: app: crates-client spec: containers: - name: crates-client image: registry.ntwl.xyz/crates-client imagePullPolicy: Always ports: - containerPort: 8080 --- # ----------------------------------------------------------------------- # SERVICES # ----------------------------------------------------------------------- apiVersion: v1 kind: Service metadata: namespace: crates name: crates-api spec: selector: app: crates-api ports: - port: 41337 --- apiVersion: v1 kind: Service metadata: namespace: crates name: crates-postgres spec: selector: app: crates-postgres ports: - port: 5432 --- apiVersion: v1 kind: Service metadata: namespace: crates name: crates-client spec: selector: app: crates-client ports: - port: 8080