apiVersion: v1 kind: PersistentVolumeClaim metadata: name: sogo-postgres-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi storageClassName: longhorn --- apiVersion: v1 kind: Secret metadata: name: sogo-db-pass type: Opaque data: password: sogo --- apiVersion: v1 kind: ConfigMap metadata: name: sogo-postgres-config labels: app: sogo-postgres data: POSTGRES_DB: sogo POSTGRES_USER: sogo POSTGRES_PASSWORD: sogo --- apiVersion: apps/v1 kind: Deployment metadata: name: sogo-postgres labels: app: sogo-postgres spec: replicas: 1 selector: matchLabels: app: sogo-postgres template: metadata: labels: app: sogo-postgres name: sogo-postgres spec: containers: - name: postgres image: postgres imagePullPolicy: "IfNotPresent" ports: - containerPort: 5432 envFrom: - configMapRef: name: sogo-postgres-config volumeMounts: - mountPath: /var/lib/postgresql/data subPath: sogo/db/data name: sogo-postgresdb volumes: - name: sogo-postgresdb persistentVolumeClaim: claimName: sogo-postgres-pvc --- apiVersion: v1 kind: Service metadata: name: sogo-postgres labels: app: sogo-postgres spec: ports: - port: 5432 selector: app: sogo-postgres --- apiVersion: v1 kind: ConfigMap metadata: name: sogo-conf data: sogo.conf: |- {{ tpl (.Files.Get "files/sogo.conf" | indent 4) . }} --- apiVersion: v1 kind: Service metadata: name: sogo labels: app: sogo spec: ports: - port: 80 targetPort: 80 selector: app: sogo --- apiVersion: apps/v1 kind: Deployment metadata: name: sogo spec: # Stop old container before starting new one. # No known upgrade policy know. Save to stop and start a new one. strategy: type: Recreate rollingUpdate: null selector: matchLabels: app: sogo replicas: 1 template: metadata: labels: app: sogo spec: containers: - name: sogo image: mailcow/sogo:nightly-1.119 resources: requests: cpu: 100m memory: 400Mi ports: - containerPort: 80 volumeMounts: - mountPath: /etc/sogo/sogo.conf name: sogo-conf subPath: sogo.conf readOnly: true volumes: - name: sogo-conf configMap: name: sogo-conf optional: false --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: sogo-ingress spec: ingressClassName: {{ .Values.homey.ingress_class }} tls: - hosts: - git.{{ .Values.homey.url }} secretName: {{ .Values.homey.certname }} rules: - host: sogo.{{ .Values.homey.url }} http: paths: - path: / pathType: Prefix backend: service: name: soo port: number: 80 ---