apiVersion: v1 kind: Namespace metadata: name: doormile labels: name: doormile --- apiVersion: v1 kind: Secret metadata: name: doormile-secrets namespace: doormile labels: app: doormile type: Opaque stringData: DB_PASSWORD: "Package@321#" REDIS_PASSWORD: "Package@321#" NATS_USER: "doormile" NATS_PASSWORD: "Package@321#" --- apiVersion: apps/v1 kind: StatefulSet metadata: name: doormile namespace: doormile labels: app: doormile app-group: doormile-api spec: serviceName: "doormile-service" replicas: 3 selector: matchLabels: app: doormile app-group: doormile-api template: metadata: labels: app: doormile app-group: doormile-api spec: containers: - name: doormile image: doormile/doormile-backend:latest imagePullPolicy: Always securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL ports: - containerPort: 8081 env: - name: DB_HOST value: "31.97.228.132" - name: DB_PORT value: "5433" - name: DB_NAME value: "logistics" - name: DB_USER value: "admin" - name: DB_PASSWORD valueFrom: secretKeyRef: name: doormile-secrets key: DB_PASSWORD - name: REDIS_HOST value: "31.97.228.132" - name: REDIS_PORT value: "6379" - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: doormile-secrets key: REDIS_PASSWORD - name: NATS_URL value: "nats://66.116.226.161:4223" - name: NATS_USER valueFrom: secretKeyRef: name: doormile-secrets key: NATS_USER - name: NATS_PASSWORD valueFrom: secretKeyRef: name: doormile-secrets key: NATS_PASSWORD --- apiVersion: v1 kind: Service metadata: name: doormile-service namespace: doormile labels: app: doormile spec: type: NodePort selector: app-group: doormile-api ports: - protocol: TCP port: 8081 # Expose port 8081 internally targetPort: 8081 # The port the backend application actually listens on nodePort: 30830 # This must match what NGINX is looking for