# ----------------------------------------------------------------------- # 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