233 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			233 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
roundcube:
 | 
						|
  controllers:
 | 
						|
    main:
 | 
						|
      type: deployment
 | 
						|
      replicas: 1
 | 
						|
      strategy: Recreate
 | 
						|
      revisionHistoryLimit: 3
 | 
						|
      containers:
 | 
						|
        main:
 | 
						|
          image:
 | 
						|
            repository: roundcube/roundcubemail
 | 
						|
            tag: 1.6.11-fpm-alpine
 | 
						|
            pullPolicy: IfNotPresent
 | 
						|
          env:
 | 
						|
            - name: ROUNDCUBEMAIL_DB_TYPE
 | 
						|
              value: pgsql
 | 
						|
            - name: ROUNDCUBEMAIL_DB_HOST
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: host
 | 
						|
            - name: ROUNDCUBEMAIL_DB_NAME
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: dbname
 | 
						|
            - name: ROUNDCUBEMAIL_DB_USER
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: user
 | 
						|
            - name: ROUNDCUBEMAIL_DB_PASSWORD
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: password
 | 
						|
            - name: ROUNDCUBEMAIL_DES_KEY
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-key-secret
 | 
						|
                  key: DES_KEY
 | 
						|
            - name: ROUNDCUBEMAIL_DEFAULT_HOST
 | 
						|
              value: stalwart.stalwart
 | 
						|
            - name: ROUNDCUBEMAIL_DEFAULT_PORT
 | 
						|
              value: 143
 | 
						|
            - name: ROUNDCUBEMAIL_SMTP_SERVER
 | 
						|
              value: stalwart.stalwart
 | 
						|
            - name: ROUNDCUBEMAIL_SMTP_PORT
 | 
						|
              value: 25
 | 
						|
            - name: ROUNDCUBEMAIL_SKIN
 | 
						|
              value: elastic
 | 
						|
            - name: ROUNDCUBEMAIL_PLUGINS
 | 
						|
              value: archive,zipdownload,newmail_notifier
 | 
						|
          resources:
 | 
						|
            requests:
 | 
						|
              cpu: 10m
 | 
						|
              memory: 256Mi
 | 
						|
        nginx:
 | 
						|
          image:
 | 
						|
            repository: nginx
 | 
						|
            tag: 1.29.0-alpine
 | 
						|
            pullPolicy: IfNotPresent
 | 
						|
          env:
 | 
						|
            - name: NGINX_HOST
 | 
						|
              value: mail.alexlebens.net
 | 
						|
            - name: NGINX_PHP_CGI
 | 
						|
              value: roundcube.roundcube:9000
 | 
						|
          resources:
 | 
						|
            requests:
 | 
						|
              cpu: 10m
 | 
						|
              memory: 128Mi
 | 
						|
    cleandb:
 | 
						|
      type: cronjob
 | 
						|
      cronjob:
 | 
						|
        suspend: false
 | 
						|
        concurrencyPolicy: Forbid
 | 
						|
        timeZone: US/Central
 | 
						|
        schedule: 30 4 * * *
 | 
						|
        startingDeadlineSeconds: 90
 | 
						|
        successfulJobsHistory: 3
 | 
						|
        failedJobsHistory: 3
 | 
						|
        backoffLimit: 3
 | 
						|
        parallelism: 1
 | 
						|
      containers:
 | 
						|
        backup:
 | 
						|
          image:
 | 
						|
            repository: roundcube/roundcubemail
 | 
						|
            tag: 1.6.11-fpm-alpine
 | 
						|
            pullPolicy: IfNotPresent
 | 
						|
          env:
 | 
						|
            - name: ROUNDCUBEMAIL_DB_TYPE
 | 
						|
              value: pgsql
 | 
						|
            - name: ROUNDCUBEMAIL_DB_HOST
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: host
 | 
						|
            - name: ROUNDCUBEMAIL_DB_NAME
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: dbname
 | 
						|
            - name: ROUNDCUBEMAIL_DB_USER
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: user
 | 
						|
            - name: ROUNDCUBEMAIL_DB_PASSWORD
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-postgresql-17-cluster-app
 | 
						|
                  key: password
 | 
						|
            - name: ROUNDCUBEMAIL_DES_KEY
 | 
						|
              valueFrom:
 | 
						|
                secretKeyRef:
 | 
						|
                  name: roundcube-key-secret
 | 
						|
                  key: DES_KEY
 | 
						|
            - name: ROUNDCUBEMAIL_DEFAULT_HOST
 | 
						|
              value: tls://stalwart.stalwart
 | 
						|
            - name: ROUNDCUBEMAIL_SMTP_SERVER
 | 
						|
              value: tls://stalwart.stalwart
 | 
						|
            - name: ROUNDCUBEMAIL_SKIN
 | 
						|
              value: elastic
 | 
						|
            - name: ROUNDCUBEMAIL_PLUGINS
 | 
						|
              value: archive,zipdownload,newmail_notifier
 | 
						|
          args:
 | 
						|
            - bin/cleandb.sh
 | 
						|
          resources:
 | 
						|
            requests:
 | 
						|
              cpu: 100m
 | 
						|
              memory: 128Mi
 | 
						|
  configMaps:
 | 
						|
    config:
 | 
						|
      enabled: true
 | 
						|
      data:
 | 
						|
        default.conf: |
 | 
						|
          server {
 | 
						|
              listen 80 default_server;
 | 
						|
              server_name _;
 | 
						|
              root /var/www/html;
 | 
						|
 | 
						|
              location / {
 | 
						|
                  try_files $uri /index.php$is_args$args;
 | 
						|
              }
 | 
						|
 | 
						|
              location ~ \.php(/|$) {
 | 
						|
                  try_files $uri =404;
 | 
						|
                  fastcgi_pass roundcube:9000;
 | 
						|
                  fastcgi_read_timeout 300;
 | 
						|
                  proxy_read_timeout 300;
 | 
						|
                  fastcgi_split_path_info ^(.+\.php)(/.*)$;
 | 
						|
                  include fastcgi_params;
 | 
						|
                  fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
 | 
						|
                  fastcgi_param DOCUMENT_ROOT $realpath_root;
 | 
						|
                  internal;
 | 
						|
              }
 | 
						|
 | 
						|
              client_max_body_size 6m;
 | 
						|
 | 
						|
              error_log  /var/log/nginx/error.log;
 | 
						|
              access_log /var/log/nginx/access.log;
 | 
						|
          }
 | 
						|
  service:
 | 
						|
    main:
 | 
						|
      controller: main
 | 
						|
      ports:
 | 
						|
        mail:
 | 
						|
          port: 9000
 | 
						|
          targetPort: 9000
 | 
						|
          protocol: HTTP
 | 
						|
        web:
 | 
						|
          port: 80
 | 
						|
          targetPort: 80
 | 
						|
          protocol: HTTP
 | 
						|
  persistence:
 | 
						|
    data:
 | 
						|
      forceRename: roundcube-data
 | 
						|
      storageClass: ceph-block
 | 
						|
      accessMode: ReadWriteOnce
 | 
						|
      size: 5Gi
 | 
						|
      retain: true
 | 
						|
      advancedMounts:
 | 
						|
        main:
 | 
						|
          main:
 | 
						|
            - path: /var/www/html
 | 
						|
              readOnly: false
 | 
						|
          nginx:
 | 
						|
            - path: /var/www/html
 | 
						|
              readOnly: false
 | 
						|
    temp:
 | 
						|
      type: emptyDir
 | 
						|
      advancedMounts:
 | 
						|
        main:
 | 
						|
          main:
 | 
						|
            - path: /tmp/roundcube-temp
 | 
						|
              readOnly: false
 | 
						|
    config:
 | 
						|
      enabled: true
 | 
						|
      type: configMap
 | 
						|
      name: roundcube-config
 | 
						|
      advancedMounts:
 | 
						|
        main:
 | 
						|
          nginx:
 | 
						|
            - path: /etc/nginx/conf.d/default.conf
 | 
						|
              readOnly: true
 | 
						|
              mountPropagation: None
 | 
						|
              subPath: default.conf
 | 
						|
postgres-17-cluster:
 | 
						|
  mode: standalone
 | 
						|
  cluster:
 | 
						|
    storage:
 | 
						|
      storageClass: local-path
 | 
						|
    walStorage:
 | 
						|
      storageClass: local-path
 | 
						|
    monitoring:
 | 
						|
      enabled: true
 | 
						|
      prometheusRule:
 | 
						|
        enabled: true
 | 
						|
  recovery:
 | 
						|
    method: objectStore
 | 
						|
    objectStore:
 | 
						|
      endpointURL: https://nyc3.digitaloceanspaces.com
 | 
						|
      destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/roundcube/roundcube-postgresql-17-cluster
 | 
						|
      endpointCredentials: roundcube-postgresql-17-cluster-backup-secret
 | 
						|
      recoveryIndex: 2
 | 
						|
  backup:
 | 
						|
    enabled: true
 | 
						|
    endpointURL: https://nyc3.digitaloceanspaces.com
 | 
						|
    destinationPath: s3://postgres-backups-ce540ddf106d186bbddca68a/cl01tl/roundcube/roundcube-postgresql-17-cluster
 | 
						|
    endpointCredentials: roundcube-postgresql-17-cluster-backup-secret
 | 
						|
    backupIndex: 2
 | 
						|
    retentionPolicy: "7d"
 |