--- apiVersion: v1 kind: Namespace metadata: name: mnml # ----------------------------------------------------------------------- # VOLUMES # ----------------------------------------------------------------------- --- kind: PersistentVolumeClaim apiVersion: v1 metadata: namespace: mnml name: mnml-postgres-pvc spec: storageClassName: fast accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- kind: PersistentVolumeClaim apiVersion: v1 metadata: namespace: mnml name: mnml-imgs-pvc spec: storageClassName: fast accessModes: - ReadWriteOnce resources: requests: storage: 2Gi --- # ----------------------------------------------------------------------- # DEPLOYMENTS # ----------------------------------------------------------------------- apiVersion: apps/v1 kind: Deployment metadata: namespace: mnml name: mnml-postgres spec: replicas: 1 selector: matchLabels: app: mnml-postgres template: metadata: labels: app: mnml-postgres spec: containers: - name: postgres image: postgres:16 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: namespace: mnml name: mnml-api spec: replicas: 1 selector: matchLabels: app: mnml-api template: metadata: labels: app: mnml-api spec: containers: - name: mnml-api image: registry.ntwl.xyz/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: namespace: mnml name: mnml-client spec: replicas: 1 selector: matchLabels: app: mnml-client template: metadata: labels: app: mnml-client spec: containers: - name: mnml-client image: registry.ntwl.xyz/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: namespace: mnml name: mnml-api spec: selector: app: mnml-api ports: - port: 40000 name: http --- apiVersion: v1 kind: Service metadata: namespace: mnml name: mnml-ws spec: selector: app: mnml-api ports: - port: 40055 name: ws --- apiVersion: v1 kind: Service metadata: namespace: mnml name: mnml-postgres spec: selector: app: mnml-postgres ports: - port: 5432 --- apiVersion: v1 kind: Service metadata: namespace: mnml name: mnml-client spec: selector: app: mnml-client ports: - port: 8080