--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: app annotations: nginx.ingress.kubernetes.io/proxy-body-size: "$MAX_UPLOAD_SIZE" cert-manager.io/cluster-issuer: letsencrypt-prod spec: ingressClassName: nginx tls: - secretName: tls-app hosts: - "$BASE_URL" rules: - host: "$BASE_URL" http: paths: - path: / pathType: Prefix backend: service: name: app port: name: http --- apiVersion: v1 kind: Service metadata: name: app labels: app: app spec: selector: app: app ports: - name: http port: 80 targetPort: http --- apiVersion: apps/v1 kind: StatefulSet metadata: name: app labels: app: app spec: replicas: $NB_REPLICAS selector: matchLabels: app: app template: metadata: labels: app: app spec: containers: - name: app image: "$IMAGEAPP" ports: - name: http containerPort: 8008 env: - name: SYNAPSE_CONFIG_PATH value: /config/homeserver.yaml - name: SYNAPSE_CONFIG_DIR value: /keys/ volumeMounts: - name: config mountPath: /config/ - name: data mountPath: /data/ - name: keys mountPath: /keys/ securityContext: fsGroup: 991 volumes: - name: config configMap: name: synapse - name: keys persistentVolumeClaim: claimName: keys volumeClaimTemplates: - metadata: name: data spec: accessModes: - ReadWriteOnce storageClassName: nfs-csi resources: requests: storage: 10Gi