# ----------------------------------------------------------------------- # VOLUMES # ----------------------------------------------------------------------- --- apiVersion: v1 kind: PersistentVolume metadata: name: mnml-postgres-pv spec: storageClassName: local-path capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain claimRef: namespace: default name: mnml-postgres-pvc hostPath: path: "/var/lib/rancher/k3s/storage/mnml-postgres-pv" type: DirectoryOrCreate --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mnml-postgres-pvc spec: volumeName: mnml-postgres-pv accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: PersistentVolume metadata: name: mnml-imgs-pv spec: storageClassName: local-path capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain claimRef: namespace: default name: mnml-imgs-pvc hostPath: path: "/var/lib/rancher/k3s/storage/mnml-imgs-pv" type: DirectoryOrCreate --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: mnml-imgs-pvc spec: volumeName: mnml-imgs-pv 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 valueFrom: secretKeyRef: name: mnml key: POSTGRES_DB - name: POSTGRES_USER valueFrom: secretKeyRef: name: mnml key: POSTGRES_USER - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: mnml key: POSTGRES_PASSWORD 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: registry.strix.systems/mnml-api imagePullPolicy: IfNotPresent ports: - containerPort: 40000 name: http - containerPort: 40055 name: ws env: - name: DATABASE_URL valueFrom: secretKeyRef: name: mnml key: DATABASE_URL - name: MAIL_ADDRESS valueFrom: secretKeyRef: name: mnml key: MAIL_ADDRESS - name: MAIL_PASSWORD valueFrom: secretKeyRef: name: mnml key: MAIL_PASSWORD - name: MAIL_DOMAIN valueFrom: secretKeyRef: name: mnml key: MAIL_DOMAIN - name: STRIPE_WH_SECRET valueFrom: secretKeyRef: name: mnml key: STRIPE_WH_SECRET - name: STRIPE_SECRET valueFrom: secretKeyRef: name: mnml key: STRIPE_SECRET volumeMounts: - name: mnml-img-storage mountPath: /var/lib/mnml/public/imgs volumes: - name: mnml-img-storage persistentVolumeClaim: claimName: mnml-imgs-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: registry.strix.systems/mnml-client imagePullPolicy: IfNotPresent ports: - containerPort: 8080 volumeMounts: - name: mnml-img-storage mountPath: /srv/imgs volumes: - name: mnml-img-storage persistentVolumeClaim: claimName: mnml-imgs-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