From 0542bd00ae3cea77f44c8f656902b72711f51f31 Mon Sep 17 00:00:00 2001 From: Nathan Rashleigh Date: Tue, 9 Jan 2024 22:28:06 +1100 Subject: [PATCH] jeah --- .gitignore | 1 + crates.yaml | 245 ++++++++++++++++++++++++++++++++++++++ mnml.yaml | 310 +++++++++++++++++++++++++++++++++++++++++++++++++ spacerace.yaml | 128 ++++++++++++++++++++ 4 files changed, 684 insertions(+) create mode 100644 .gitignore create mode 100644 crates.yaml create mode 100644 mnml.yaml create mode 100644 spacerace.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..10f24cc --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +pvs/ \ No newline at end of file diff --git a/crates.yaml b/crates.yaml new file mode 100644 index 0000000..6d65477 --- /dev/null +++ b/crates.yaml @@ -0,0 +1,245 @@ +# ----------------------------------------------------------------------- +# 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: "/home/ntr/strix/pvs/crates-postgres" # Specify the local path on your node + +--- + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: crates-postgres-pvc +spec: + 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:latest + ports: + - containerPort: 5432 + env: + - name: POSTGRES_DB + value: crates + - name: POSTGRES_USER + value: crates + - name: POSTGRES_PASSWORD + value: digdeep + 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: crates-api + imagePullPolicy: IfNotPresent + ports: + - containerPort: 80 + env: + - name: DATABASE_URL + value: 'postgresql://crates:digdeep@crates-postgres:5432/crates?schema=public' + - name: DISCORD_TOKEN + value: 'MTA3MjQ4OTgzMDE0NTA2NDk5MA.G4ZhOg.rFchS4vp0cNqHKuqubMFZSZCD15_E58MQhfDJo' + - name: DISCOGS_TOKEN + value: 'Discogs token=wRTXuYZGOPsIQgKRGKCAkUkidGtvpSfQgPWkYIpD' + - name: DISCORD_ENABLED + value: 'true' + +--- + +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: crates-api + imagePullPolicy: IfNotPresent + command: ["npx"] + args: ["prisma", "migrate", "dev"] + env: + - name: DATABASE_URL + value: 'postgresql://crates:digdeep@crates-postgres:5432/crates?schema=public' + +--- + +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: 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 + + +--- + +# ----------------------------------------------------------------------- +# INGRESS +# ----------------------------------------------------------------------- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: crates-client +spec: + ingressClassName: nginx + rules: + - host: crates.localdev.me + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: crates-client + port: + number: 8080 + +--- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + annotations: + nginx.ingress.kubernetes.io/use-regex: "true" + nginx.ingress.kubernetes.io/rewrite-target: /$2 + name: crates-api + namespace: default +spec: + ingressClassName: nginx + rules: + - host: crates.localdev.me + http: + paths: + - path: /api(/|$)(.*) + pathType: ImplementationSpecific + backend: + service: + name: crates-api + port: + number: 41337 + diff --git a/mnml.yaml b/mnml.yaml new file mode 100644 index 0000000..a123b3a --- /dev/null +++ b/mnml.yaml @@ -0,0 +1,310 @@ +# ----------------------------------------------------------------------- +# VOLUMES +# ----------------------------------------------------------------------- + +--- + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: mnml-postgres-pv +spec: + storageClassName: "" + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + claimRef: + namespace: default + name: mnml-postgres-pvc + hostPath: + path: "/home/ntr/strix/pvs/mnml-postgres" + +--- + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: mnml-postgres-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + +--- + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: mnml-img-pv +spec: + storageClassName: "" + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + claimRef: + namespace: default + name: mnml-img-pvc + hostPath: + path: "/home/ntr/strix/pvs/mnml-img" + +--- + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: mnml-img-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + +--- + + +# ----------------------------------------------------------------------- +# DEPLOYMENTS +# ----------------------------------------------------------------------- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mnml-postgres +spec: + replicas: 1 + selector: + matchLabels: + app: mnml-postgres + template: + metadata: + labels: + app: mnml-postgres + spec: + containers: + - name: postgres + image: postgres:latest + ports: + - containerPort: 5432 + env: + - name: POSTGRES_DB + value: mnml + - name: POSTGRES_USER + value: mnml + - name: POSTGRES_PASSWORD + value: maximal + volumeMounts: + - name: mnml-postgres-storage + mountPath: /var/lib/postgresql/data + + volumes: + - name: mnml-postgres-storage + persistentVolumeClaim: + claimName: mnml-postgres-pvc + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mnml-api +spec: + replicas: 1 + selector: + matchLabels: + app: mnml-api + template: + metadata: + labels: + app: mnml-api + spec: + containers: + - name: mnml-api + image: mnml-api + imagePullPolicy: IfNotPresent + ports: + - containerPort: 40000 + name: http + - containerPort: 40055 + name: ws + env: + - name: DATABASE_URL + value: 'postgresql://mnml:maximal@mnml-postgres:5432/mnml' + - name: MAIL_ADDRESS + value: 'machines@mnml.gg' + - name: MAIL_PASSWORD + value: 'rabble' + - name: MAIL_DOMAIN + value: 'gmail' + - name: STRIPE_WH_SECRET + value: 'aaaaaaaaa' + - name: STRIPE_SECRET + value: 'bignreese' + volumeMounts: + - name: mnml-img-storage + mountPath: /var/lib/mnml/public/imgs + + volumes: + - name: mnml-img-storage + persistentVolumeClaim: + claimName: mnml-img-pvc + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mnml-client +spec: + replicas: 1 + selector: + matchLabels: + app: mnml-client + template: + metadata: + labels: + app: mnml-client + spec: + containers: + - name: mnml-client + image: mnml-client + imagePullPolicy: IfNotPresent + ports: + - containerPort: 8080 + volumeMounts: + - name: mnml-img-storage + mountPath: /srv/imgs + volumes: + - name: mnml-img-storage + persistentVolumeClaim: + claimName: mnml-img-pvc + +--- + +# ----------------------------------------------------------------------- +# SERVICES +# ----------------------------------------------------------------------- + +apiVersion: v1 +kind: Service +metadata: + name: mnml-api +spec: + selector: + app: mnml-api + ports: + - port: 40000 + name: http + +--- + +apiVersion: v1 +kind: Service +metadata: + name: mnml-ws +spec: + selector: + app: mnml-api + ports: + - port: 40055 + name: ws + +--- + +apiVersion: v1 +kind: Service +metadata: + name: mnml-postgres +spec: + selector: + app: mnml-postgres + ports: + - port: 5432 + +--- + +apiVersion: v1 +kind: Service +metadata: + name: mnml-client +spec: + selector: + app: mnml-client + ports: + - port: 8080 + +--- +# ----------------------------------------------------------------------- +# INGRESS +# ----------------------------------------------------------------------- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: mnml-client +spec: + ingressClassName: nginx + rules: + - host: mnml.localdev.me + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: mnml-client + port: + number: 8080 + +--- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: mnml-api + namespace: default + annotations: + nginx.org/websocket-services: "mnml-ws" +spec: + ingressClassName: nginx + rules: + - host: mnml.localdev.me + http: + paths: + - path: /api + pathType: Prefix + backend: + service: + name: mnml-api + port: + number: 40000 + +--- + +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: mnml-ws + annotations: + nginx.org/proxy-read-timeout: "3600" + nginx.org/proxy-send-timeout: "3600" + nginx.org/websocket-services: mnml-ws +spec: + ingressClassName: nginx + rules: + - host: mnml.localdev.me + http: + paths: + - path: /api/ws + pathType: Exact + backend: + service: + name: mnml-ws + port: + number: 40055 diff --git a/spacerace.yaml b/spacerace.yaml new file mode 100644 index 0000000..30df5b1 --- /dev/null +++ b/spacerace.yaml @@ -0,0 +1,128 @@ +# ----------------------------------------------------------------------- +# VOLUMES +# ----------------------------------------------------------------------- + +apiVersion: v1 +kind: PersistentVolume +metadata: + name: spacerace-postgres-pv +spec: + storageClassName: "" + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Retain + claimRef: + namespace: default + name: spacerace-postgres-pvc + hostPath: + path: "/home/ntr/strix/pvs/spacerace-postgres" # Specify the local path on your node + +--- + +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: spacerace-postgres-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + +--- + +# ----------------------------------------------------------------------- +# DEPLOYMENTS +# ----------------------------------------------------------------------- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: spacerace-postgres +spec: + replicas: 1 + selector: + matchLabels: + app: spacerace-postgres + template: + metadata: + labels: + app: spacerace-postgres + spec: + containers: + - name: postgres + image: postgres:latest + ports: + - containerPort: 5432 + env: + - name: POSTGRES_DB + value: spacerace + - name: POSTGRES_USER + value: spacerace + - name: POSTGRES_PASSWORD + value: zoomzoom + volumeMounts: + - name: spacerace-postgres-storage + mountPath: /var/lib/postgresql/data + + volumes: + - name: spacerace-postgres-storage + persistentVolumeClaim: + claimName: spacerace-postgres-pvc + +--- + +apiVersion: apps/v1 +kind: Deployment +metadata: + name: spacerace-api +spec: + replicas: 1 + selector: + matchLabels: + app: spacerace-api + template: + metadata: + labels: + app: spacerace-api + spec: + containers: + - name: spacerace-api + image: spacerace-api + imagePullPolicy: IfNotPresent + ports: + - containerPort: 80 + env: + - name: CONNECTIONSTRINGS__SPACERACE + value: "Server=spacerace-postgres;Port=5432;Database=spacerace;User Id=spacerace;Password=zoomzoom" + +--- + +# ----------------------------------------------------------------------- +# SERVICES +# ----------------------------------------------------------------------- + +apiVersion: v1 +kind: Service +metadata: + name: spacerace-api +spec: + selector: + app: spacerace-api + ports: + - port: 80 + +--- + +apiVersion: v1 +kind: Service +metadata: + name: spacerace-postgres +spec: + selector: + app: spacerace-postgres + ports: + - port: 5432