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.1-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"
 |