mirror of
				https://github.com/optim-enterprises-bv/Mailu.git
				synced 2025-11-04 03:57:53 +00:00 
			
		
		
		
	Deleted old folder
This commit is contained in:
		
							
								
								
									
										19
									
								
								core/dovecot/Dockerfile_BACKUP_7007
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								core/dovecot/Dockerfile_BACKUP_7007
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					<<<<<<< HEAD
 | 
				
			||||||
 | 
					FROM alpine:3.7
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					FROM alpine:3.8
 | 
				
			||||||
 | 
					>>>>>>> upstream/master
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN apk add --no-cache \
 | 
				
			||||||
 | 
					     dovecot dovecot-pigeonhole-plugin dovecot-fts-lucene rspamd-client \
 | 
				
			||||||
 | 
					     python3 py3-pip \
 | 
				
			||||||
 | 
					 && pip3 install --upgrade pip \
 | 
				
			||||||
 | 
					 && pip3 install jinja2 podop tenacity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY conf /conf
 | 
				
			||||||
 | 
					COPY start.py /start.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 110/tcp 143/tcp 993/tcp 4190/tcp 2525/tcp
 | 
				
			||||||
 | 
					VOLUME ["/data", "/mail"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMD /start.py
 | 
				
			||||||
							
								
								
									
										14
									
								
								core/dovecot/Dockerfile_BASE_7007
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								core/dovecot/Dockerfile_BASE_7007
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					FROM alpine:edge
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
 | 
				
			||||||
 | 
					 && apk add --no-cache \
 | 
				
			||||||
 | 
					     dovecot dovecot-sqlite dovecot-pigeonhole-plugin dovecot-pigeonhole-plugin-extdata \
 | 
				
			||||||
 | 
					     rspamd-client@testing python py-jinja2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY conf /conf
 | 
				
			||||||
 | 
					COPY sieve /var/lib/dovecot
 | 
				
			||||||
 | 
					COPY start.py /start.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 110/tcp 143/tcp 993/tcp 4190/tcp 2525/tcp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMD /start.py
 | 
				
			||||||
							
								
								
									
										14
									
								
								core/dovecot/Dockerfile_LOCAL_7007
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								core/dovecot/Dockerfile_LOCAL_7007
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					FROM alpine:3.7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
 | 
				
			||||||
 | 
					 && apk add --no-cache \
 | 
				
			||||||
 | 
					     dovecot dovecot-sqlite dovecot-pigeonhole-plugin dovecot-pigeonhole-plugin-extdata \
 | 
				
			||||||
 | 
					     rspamd-client@testing python py-jinja2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY conf /conf
 | 
				
			||||||
 | 
					COPY sieve /var/lib/dovecot
 | 
				
			||||||
 | 
					COPY start.py /start.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 110/tcp 143/tcp 993/tcp 4190/tcp 2525/tcp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMD /start.py
 | 
				
			||||||
							
								
								
									
										15
									
								
								core/dovecot/Dockerfile_REMOTE_7007
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								core/dovecot/Dockerfile_REMOTE_7007
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					FROM alpine:3.8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RUN apk add --no-cache \
 | 
				
			||||||
 | 
					     dovecot dovecot-pigeonhole-plugin dovecot-fts-lucene rspamd-client \
 | 
				
			||||||
 | 
					     python3 py3-pip \
 | 
				
			||||||
 | 
					 && pip3 install --upgrade pip \
 | 
				
			||||||
 | 
					 && pip3 install jinja2 podop tenacity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY conf /conf
 | 
				
			||||||
 | 
					COPY start.py /start.py
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 110/tcp 143/tcp 993/tcp 4190/tcp 2525/tcp
 | 
				
			||||||
 | 
					VOLUME ["/data", "/mail"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CMD /start.py
 | 
				
			||||||
@@ -1,157 +0,0 @@
 | 
				
			|||||||
# Install Mailu master on kubernetes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Prequisites
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Structure
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
There's chosen to have a double NGINX stack for Mailu, this way the main ingress can still be used to access other websites/domains on your cluster. This is the current structure:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- `NGINX Ingress controller`: Listens to the nodes ports 80 & 443 and directly forwards all TCP traffic on the E-amail ports (993,143,25,587,...). This is because this `DaemonSet` already consumes ports 80 & 443 and uses `hostNetwork: true`
 | 
					 | 
				
			||||||
- `Cert manager`: Creates automatic Lets Encrypt certificates based on an `Ingress`-objects domain name.
 | 
					 | 
				
			||||||
- `Mailu NGINX Front container`: This container receives all the mail traffic forwarded from the ingress controller. The web traffic is also forwarded based on an ingress
 | 
					 | 
				
			||||||
- `Mailu components`: All Mailu components are split into separate files to make them more 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### What you need
 | 
					 | 
				
			||||||
- A working Kubernetes cluster (tested with 1.10.5)
 | 
					 | 
				
			||||||
- A working [cert-manager](https://github.com/jetstack/cert-manager) installation
 | 
					 | 
				
			||||||
- A working nginx-ingress controller needed for the lets-encrypt certificates. You can find those files in the `nginx` subfolder
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#### Cert manager
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The `Cert-manager` is quite easy to deploy using Helm when reading the [docs](https://cert-manager.readthedocs.io/en/latest/getting-started/2-installing.html). 
 | 
					 | 
				
			||||||
After booting the `Cert-manager` you'll need a `ClusterIssuer` which takes care of all required certificates through `Ingress` items. An example:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```yaml
 | 
					 | 
				
			||||||
apiVersion: certmanager.k8s.io/v1alpha1
 | 
					 | 
				
			||||||
kind: ClusterIssuer
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: letsencrypt-prod
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  acme:
 | 
					 | 
				
			||||||
    email: something@example.com
 | 
					 | 
				
			||||||
    http01: {}
 | 
					 | 
				
			||||||
    privateKeySecretRef:
 | 
					 | 
				
			||||||
      key: ""
 | 
					 | 
				
			||||||
      name: letsencrypt-stage
 | 
					 | 
				
			||||||
    server: https://acme-v02.api.letsencrypt.org/directory
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Deploying Mailu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
All manifests can be found in the `mailu` subdirectory. All commands below need to be run from this subdirectory
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Personalization
 | 
					 | 
				
			||||||
- All services run in the same namespace, currently `mailu-mailserver`. So if you want to use a different one, change the `namespace` value in **every** file
 | 
					 | 
				
			||||||
- Check the `storage-class` field in the `pvc.yaml` file, you can also change the sizes to your liking. Note that you need `RWX` (read-write-many) and `RWO` (read-write-once) storageclasses.
 | 
					 | 
				
			||||||
- Check the `configmap.yaml` and adapt it to your needs. Be sure to check the kubernetes DNS values at the end (if you use a different namespace)
 | 
					 | 
				
			||||||
- Check the `ingress-ssl.yaml` and change it to the domain you want (this is for the kubernetes ingress controller, it will forward to `mailu/nginx` a.k.a. the `front` pod)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Installation
 | 
					 | 
				
			||||||
First run the command to start Mailu:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
kubectl create -f rbac.yaml
 | 
					 | 
				
			||||||
kubectl create -f configmap.yaml
 | 
					 | 
				
			||||||
kubectl create -f pvc.yaml
 | 
					 | 
				
			||||||
kubectl create -f ingress-ssl.yaml
 | 
					 | 
				
			||||||
kubectl create -f redis.yaml
 | 
					 | 
				
			||||||
kubectl create -f front.yaml
 | 
					 | 
				
			||||||
kubectl create -f webmail.yaml
 | 
					 | 
				
			||||||
kubectl create -f imap.yaml
 | 
					 | 
				
			||||||
kubectl create -f security.yaml
 | 
					 | 
				
			||||||
kubectl create -f smtp.yaml
 | 
					 | 
				
			||||||
kubectl create -f fetchmail.yaml
 | 
					 | 
				
			||||||
kubectl create -f admin.yaml
 | 
					 | 
				
			||||||
kubectl create -f webdav.yaml
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Create the first admin account
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
When the cluster is online you need to create you master user to access `https://mail.example.com/admin`.
 | 
					 | 
				
			||||||
Enter the main `admin` pod to create the root account:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver get po
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver exec -it mailu-admin-.... /bin/sh
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
And in the pod run the following command. The command uses following entries:
 | 
					 | 
				
			||||||
- `admin` Make it an admin user
 | 
					 | 
				
			||||||
- `root` The first part of the e-mail adres (ROOT@example.com)
 | 
					 | 
				
			||||||
- `example.com` the domain appendix
 | 
					 | 
				
			||||||
- `password` the chosen password for the user
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
python manage.py admin root example.com password
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Now you should be able to login on the mail account: `https://mail.example.com/admin`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Adaptations
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Postfix
 | 
					 | 
				
			||||||
I noticed you need an override for the `postfix` server in order to be able to send mail. I noticed Google wasn't able to deliver mail to my account and it had to do with the `smtpd_authorized_xclient_hosts` value in the config file. The config can be read [here](https://github.com/hacor/Mailu/blob/master/core/postfix/conf/main.cf#L35) and is pointing to a single IP of the service. But the requests come from the host IPs (the NGINX Ingress proxy) and they don't use the service specific IP.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Enter the `postfix` pod:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver get po
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver exec -it mailu-smtp-.... /bin/sh
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Now you're in the pod, create an override file like so:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
vi /overrides/postfix.cf
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
And give it the following contents, off course replacing `10.2.0.0/16` with the CIDR of your pod range. This way the NGINX pods can also restart and your mail server will still operate
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
not_needed = true
 | 
					 | 
				
			||||||
smtpd_authorized_xclient_hosts = 10.2.0.0/16
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The first line seems stupid, but is needed because its pasted after a #, so from the second line we're really in action.
 | 
					 | 
				
			||||||
Save and close the file and exit. Now you need to delete the pod in order to recreate the config file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver delete po/mailu-smtp-....
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### Dovecot
 | 
					 | 
				
			||||||
- If you are using Dovecot on a shared file system (Glusterfs, NFS,...), you need to create a special override otherwise a lot of indexing errors will occur on your Dovecot pod.
 | 
					 | 
				
			||||||
- I also higher the number of max connections per IP. Now it's limited to 10.
 | 
					 | 
				
			||||||
Enter the dovecot pod:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver get po
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver exec -it mailu-imap-.... /bin/sh
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Create the file `/overrides/dovecot.conf`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
vi /overrides/dovecot.conf
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
And enter following contents:
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
mail_nfs_index = yes
 | 
					 | 
				
			||||||
mail_nfs_storage = yes
 | 
					 | 
				
			||||||
mail_fsync = always
 | 
					 | 
				
			||||||
mmap_disable = yes
 | 
					 | 
				
			||||||
mail_max_userip_connections=100
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Save and close the file and delete the imap pod to get it recreated.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
```bash
 | 
					 | 
				
			||||||
kubectl -n mailu-mailserver delete po/mailu-imap-....
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Wait for the pod to recreate and you're online!
 | 
					 | 
				
			||||||
Happy mailing!
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Wait for the pod to recreate and you're online!
 | 
					 | 
				
			||||||
Happy mailing!
 | 
					 | 
				
			||||||
@@ -1,64 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-admin
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-admin
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: admin
 | 
					 | 
				
			||||||
        image: mailu/admin:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: maildata
 | 
					 | 
				
			||||||
            mountPath: /data
 | 
					 | 
				
			||||||
            subPath: maildata
 | 
					 | 
				
			||||||
          - name: maildata
 | 
					 | 
				
			||||||
            mountPath: /dkim
 | 
					 | 
				
			||||||
            subPath: dkim
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: http
 | 
					 | 
				
			||||||
            containerPort: 80
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 500Mi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 500Mi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: admin
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-admin
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-admin
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,153 +0,0 @@
 | 
				
			|||||||
   apiVersion: v1
 | 
					 | 
				
			||||||
   kind: ConfigMap
 | 
					 | 
				
			||||||
   metadata:
 | 
					 | 
				
			||||||
     name: mailu-config
 | 
					 | 
				
			||||||
     namespace: mailu-mailserver
 | 
					 | 
				
			||||||
   data:
 | 
					 | 
				
			||||||
    # Mailu main configuration file
 | 
					 | 
				
			||||||
    #
 | 
					 | 
				
			||||||
    # Most configuration variables can be modified through the Web interface,
 | 
					 | 
				
			||||||
    # these few settings must however be configured before starting the mail
 | 
					 | 
				
			||||||
    # server and require a restart upon change.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Common configuration variables
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Set this to the path where Mailu data and configuration is stored
 | 
					 | 
				
			||||||
    ROOT: "/mailu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Mailu version to run (1.0, 1.1, etc. or master)
 | 
					 | 
				
			||||||
    VERSION: "master"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Set to a randomly generated 16 bytes string
 | 
					 | 
				
			||||||
    SECRET_KEY: "YourKeyHere"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Address where listening ports should bind
 | 
					 | 
				
			||||||
    BIND_ADDRESS4: "127.0.0.1"
 | 
					 | 
				
			||||||
    #BIND_ADDRESS6: "::1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Main mail domain
 | 
					 | 
				
			||||||
    DOMAIN: "example.com"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Hostnames for this server, separated with comas
 | 
					 | 
				
			||||||
    HOSTNAMES: "mail.example.com"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Postmaster local part (will append the main mail domain)
 | 
					 | 
				
			||||||
    POSTMASTER: "admin"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
 | 
					 | 
				
			||||||
    TLS_FLAVOR: "cert"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Authentication rate limit (per source IP address)
 | 
					 | 
				
			||||||
    AUTH_RATELIMIT: "10/minute;1000/hour"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Opt-out of statistics, replace with "True" to opt out
 | 
					 | 
				
			||||||
    DISABLE_STATISTICS: "False"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Optional features
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Expose the admin interface (value: true, false)
 | 
					 | 
				
			||||||
    ADMIN: "true"
 | 
					 | 
				
			||||||
    # Run the admin interface in debug mode
 | 
					 | 
				
			||||||
    #DEBUG: "True"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Choose which webmail to run if any (values: roundcube, rainloop, none)
 | 
					 | 
				
			||||||
    WEBMAIL: "roundcube"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Dav server implementation (value: radicale, none)
 | 
					 | 
				
			||||||
    WEBDAV: "radicale"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Antivirus solution (value: clamav, none)
 | 
					 | 
				
			||||||
    ANTIVIRUS: "clamav"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Mail settings
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Message size limit in bytes
 | 
					 | 
				
			||||||
    # Default: accept messages up to 50MB
 | 
					 | 
				
			||||||
    MESSAGE_SIZE_LIMIT: "50000000"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Networks granted relay permissions, make sure that you include your Docker
 | 
					 | 
				
			||||||
    # internal network (default to 172.17.0.0/16)
 | 
					 | 
				
			||||||
    # For kubernetes this is the CIDR of the pod network
 | 
					 | 
				
			||||||
    RELAYNETS: "10.2.0.0/16"
 | 
					 | 
				
			||||||
    POD_ADDRESS_RANGE: "10.2.0.0/16"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Will relay all outgoing mails if configured
 | 
					 | 
				
			||||||
    #RELAYHOST=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # This part is needed for the XCLIENT login for postfix. This should be the POD ADDRESS range
 | 
					 | 
				
			||||||
    FRONT_ADDRESS: "front.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Fetchmail delay
 | 
					 | 
				
			||||||
    FETCHMAIL_DELAY: "600"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Recipient delimiter, character used to delimiter localpart from custom address part
 | 
					 | 
				
			||||||
    # e.g. localpart+custom@domain;tld
 | 
					 | 
				
			||||||
    RECIPIENT_DELIMITER: "+"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # DMARC rua and ruf email
 | 
					 | 
				
			||||||
    DMARC_RUA: "root"
 | 
					 | 
				
			||||||
    DMARC_RUF: "root"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Welcome email, enable and set a topic and body if you wish to send welcome
 | 
					 | 
				
			||||||
    # emails to all users.
 | 
					 | 
				
			||||||
    WELCOME: "false"
 | 
					 | 
				
			||||||
    WELCOME_SUBJECT: "Welcome to your new email account"
 | 
					 | 
				
			||||||
    WELCOME_BODY: "Welcome to your new email account, if you can read this, then it is configured properly!"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Web settings
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Path to the admin interface if enabled
 | 
					 | 
				
			||||||
    WEB_ADMIN: "/admin"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Path to the webmail if enabled
 | 
					 | 
				
			||||||
    WEB_WEBMAIL: "/webmail"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Website name
 | 
					 | 
				
			||||||
    SITENAME: "AppSynth"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Linked Website URL
 | 
					 | 
				
			||||||
    WEBSITE: "https://example.com"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Registration reCaptcha settings (warning, this has some privacy impact)
 | 
					 | 
				
			||||||
    # RECAPTCHA_PUBLIC_KEY=
 | 
					 | 
				
			||||||
    # RECAPTCHA_PRIVATE_KEY=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Domain registration, uncomment to enable
 | 
					 | 
				
			||||||
    # DOMAIN_REGISTRATION=true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
    # Advanced settings
 | 
					 | 
				
			||||||
    ###################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Docker-compose project name, this will prepended to containers names.
 | 
					 | 
				
			||||||
    COMPOSE_PROJECT_NAME: "mailu"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Default password scheme used for newly created accounts and changed passwords
 | 
					 | 
				
			||||||
    # (value: SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
 | 
					 | 
				
			||||||
    PASSWORD_SCHEME: "SHA512-CRYPT"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Header to take the real ip from
 | 
					 | 
				
			||||||
    #REAL_IP_HEADER:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # IPs for nginx set_real_ip_from (CIDR list separated by commas)
 | 
					 | 
				
			||||||
    #REAL_IP_FROM:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Host settings
 | 
					 | 
				
			||||||
    HOST_IMAP: "imap.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_POP3: "imap.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_SMTP: "smtp.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_AUTHSMTP: "smtp.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_WEBMAIL: "webmail.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_ADMIN: "admin.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
    HOST_WEBDAV: "webdav.mailu-mailserver.svc.cluster.local:5232"
 | 
					 | 
				
			||||||
    HOST_ANTISPAM: "antispam.mailu-mailserver.svc.cluster.local:11332"
 | 
					 | 
				
			||||||
    HOST_REDIS: "redis.mailu-mailserver.svc.cluster.local"
 | 
					 | 
				
			||||||
@@ -1,39 +0,0 @@
 | 
				
			|||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-fetchmail
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-fetchmail
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: fetchmail
 | 
					 | 
				
			||||||
        image: mailu/fetchmail:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: maildata
 | 
					 | 
				
			||||||
            mountPath: /data
 | 
					 | 
				
			||||||
            subPath: maildata
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 5232
 | 
					 | 
				
			||||||
          - containerPort: 80
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
@@ -1,129 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-front
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-front
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      restartPolicy: Always
 | 
					 | 
				
			||||||
      terminationGracePeriodSeconds: 60
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: front
 | 
					 | 
				
			||||||
        image: mailu/nginx:latest
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: certs
 | 
					 | 
				
			||||||
            mountPath: /certs
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: http
 | 
					 | 
				
			||||||
            containerPort: 80
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: https
 | 
					 | 
				
			||||||
            containerPort: 443
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: pop3
 | 
					 | 
				
			||||||
            containerPort: 110
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: pop3s
 | 
					 | 
				
			||||||
            containerPort: 995
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: imap
 | 
					 | 
				
			||||||
            containerPort: 143
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: imaps
 | 
					 | 
				
			||||||
            containerPort: 993
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp
 | 
					 | 
				
			||||||
            containerPort: 25
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp-auth
 | 
					 | 
				
			||||||
            containerPort: 10025
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: imap-auth
 | 
					 | 
				
			||||||
            containerPort: 10143
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtps
 | 
					 | 
				
			||||||
            containerPort: 465
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtpd
 | 
					 | 
				
			||||||
            containerPort: 587
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: auth
 | 
					 | 
				
			||||||
            containerPort: 8000
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 200Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: certs
 | 
					 | 
				
			||||||
          secret:
 | 
					 | 
				
			||||||
            items:
 | 
					 | 
				
			||||||
              - key: tls.crt
 | 
					 | 
				
			||||||
                path: cert.pem
 | 
					 | 
				
			||||||
              - key: tls.key
 | 
					 | 
				
			||||||
                path: key.pem
 | 
					 | 
				
			||||||
            secretName: letsencrypt-certs-all
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: front
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-admin
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-front
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: https
 | 
					 | 
				
			||||||
    port: 443
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: pop3
 | 
					 | 
				
			||||||
    port: 110
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: pop3s
 | 
					 | 
				
			||||||
    port: 995
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap
 | 
					 | 
				
			||||||
    port: 143
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imaps
 | 
					 | 
				
			||||||
    port: 993
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp
 | 
					 | 
				
			||||||
    port: 25
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtps
 | 
					 | 
				
			||||||
    port: 465
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtpd
 | 
					 | 
				
			||||||
    port: 587
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-auth
 | 
					 | 
				
			||||||
    port: 10025
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap-auth
 | 
					 | 
				
			||||||
    port: 10143
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,80 +0,0 @@
 | 
				
			|||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-imap
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-imap
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: imap
 | 
					 | 
				
			||||||
        image: mailu/dovecot:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: maildata
 | 
					 | 
				
			||||||
          - mountPath: /mail
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: mailstate
 | 
					 | 
				
			||||||
          - mountPath: /overrides
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: overrides
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 2102
 | 
					 | 
				
			||||||
          - containerPort: 2525
 | 
					 | 
				
			||||||
          - containerPort: 143
 | 
					 | 
				
			||||||
          - containerPort: 993
 | 
					 | 
				
			||||||
          - containerPort: 4190
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 500Mi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 1Gi
 | 
					 | 
				
			||||||
            cpu: 1000m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: imap
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-imap
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: imap-auth
 | 
					 | 
				
			||||||
    port: 2102
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap-transport
 | 
					 | 
				
			||||||
    port: 2525
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap-default
 | 
					 | 
				
			||||||
    port: 143
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: imap-ssl
 | 
					 | 
				
			||||||
    port: 993
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: sieve
 | 
					 | 
				
			||||||
    port: 4190
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,32 +0,0 @@
 | 
				
			|||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Ingress
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-ssl-ingress
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    kubernetes.io/ingress.class: tectonic
 | 
					 | 
				
			||||||
    kubernetes.io/tls-acme: "true"
 | 
					 | 
				
			||||||
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
 | 
					 | 
				
			||||||
    ingress.kubernetes.io/ssl-redirect: "true"
 | 
					 | 
				
			||||||
    # Replace letsencrypt-prod with the name of the certificate issuer
 | 
					 | 
				
			||||||
    certmanager.k8s.io/cluster-issuer: letsencrypt-prod
 | 
					 | 
				
			||||||
    #ingress.kubernetes.io/rewrite-target: "/"
 | 
					 | 
				
			||||||
    #ingress.kubernetes.io/app-root: "/ui"
 | 
					 | 
				
			||||||
    #ingress.kubernetes.io/follow-redirects: "true"
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  tls:
 | 
					 | 
				
			||||||
  - hosts:
 | 
					 | 
				
			||||||
    - "mail.example.com"
 | 
					 | 
				
			||||||
    secretName: letsencrypt-certs-all # If unsure how to generate these, check out https://github.com/ployst/docker-letsencrypt
 | 
					 | 
				
			||||||
  rules:
 | 
					 | 
				
			||||||
  - host: "mail.example.com"
 | 
					 | 
				
			||||||
    http:
 | 
					 | 
				
			||||||
      paths:
 | 
					 | 
				
			||||||
      - path: "/"
 | 
					 | 
				
			||||||
        backend:
 | 
					 | 
				
			||||||
          serviceName: front
 | 
					 | 
				
			||||||
          servicePort: 80
 | 
					 | 
				
			||||||
@@ -1,27 +0,0 @@
 | 
				
			|||||||
kind: PersistentVolumeClaim
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: redis-hdd
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    volume.beta.kubernetes.io/storage-class: "glusterblock-hdd"
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  accessModes:
 | 
					 | 
				
			||||||
    - ReadWriteOnce
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    requests:
 | 
					 | 
				
			||||||
      storage: 1Gi
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: PersistentVolumeClaim
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mail-storage
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    volume.beta.kubernetes.io/storage-class: "gluster-heketi-hdd"
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  accessModes:
 | 
					 | 
				
			||||||
    - ReadWriteMany
 | 
					 | 
				
			||||||
  resources:
 | 
					 | 
				
			||||||
    requests:
 | 
					 | 
				
			||||||
      storage: 100Gi
 | 
					 | 
				
			||||||
@@ -1,4 +0,0 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Namespace
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-mailserver
 | 
					 | 
				
			||||||
@@ -1,56 +0,0 @@
 | 
				
			|||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-redis
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-redis
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: redis
 | 
					 | 
				
			||||||
        image: redis:4.0-alpine
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: redisdata
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 6379
 | 
					 | 
				
			||||||
            name: redis
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 200Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 300Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: redisdata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: redis-hdd
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: redis
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-redis
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-redis
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: redis
 | 
					 | 
				
			||||||
    port: 6379
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,110 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-security
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-security
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: antispam
 | 
					 | 
				
			||||||
        image: mailu/rspamd:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 200Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: antispam
 | 
					 | 
				
			||||||
            containerPort: 11332
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            subPath: filter
 | 
					 | 
				
			||||||
            mountPath: /var/lib/rspamd
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            mountPath: /dkim
 | 
					 | 
				
			||||||
            subPath: dkim
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            mountPath: /etc/rspamd/override.d
 | 
					 | 
				
			||||||
            subPath: rspamd-overrides
 | 
					 | 
				
			||||||
      - name: antivirus
 | 
					 | 
				
			||||||
        image: mailu/clamav:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 1Gi
 | 
					 | 
				
			||||||
            cpu: 1000m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 2Gi
 | 
					 | 
				
			||||||
            cpu: 1000m
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: antivirus
 | 
					 | 
				
			||||||
            containerPort: 3310
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - name: filter
 | 
					 | 
				
			||||||
            subPath: filter
 | 
					 | 
				
			||||||
            mountPath: /data
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: filter
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: antispam
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-antispam
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-security
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: antispam
 | 
					 | 
				
			||||||
    port: 11332
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: antivirus
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-antivirus
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-security
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: antivirus
 | 
					 | 
				
			||||||
    port: 3310
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,80 +0,0 @@
 | 
				
			|||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-smtp
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-smtp
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: smtp
 | 
					 | 
				
			||||||
        image: mailu/postfix:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 500Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 1Gi
 | 
					 | 
				
			||||||
            cpu: 500m
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: maildata
 | 
					 | 
				
			||||||
          - mountPath: /overrides
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: overrides
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - name: smtp
 | 
					 | 
				
			||||||
            containerPort: 25
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp-ssl
 | 
					 | 
				
			||||||
            containerPort: 465
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp-starttls
 | 
					 | 
				
			||||||
            containerPort: 587
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
          - name: smtp-auth
 | 
					 | 
				
			||||||
            containerPort: 10025
 | 
					 | 
				
			||||||
            protocol: TCP
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: smtp
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-smtp
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: smtp
 | 
					 | 
				
			||||||
    port: 25
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-ssl
 | 
					 | 
				
			||||||
    port: 465
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-starttls
 | 
					 | 
				
			||||||
    port: 587
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: smtp-auth
 | 
					 | 
				
			||||||
    port: 10025
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,63 +0,0 @@
 | 
				
			|||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-webdav
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-webdav
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: radicale
 | 
					 | 
				
			||||||
        image: mailu/radicale:master
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: dav
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 5232
 | 
					 | 
				
			||||||
          - containerPort: 80
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: webdav
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-webdav
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-webdav
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: backend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
  - name: http-ui
 | 
					 | 
				
			||||||
    port: 5232
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,59 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: mailu-roundcube
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: mailu-roundcube
 | 
					 | 
				
			||||||
        role: mail
 | 
					 | 
				
			||||||
        tier: frontend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: roundcube
 | 
					 | 
				
			||||||
        image: mailu/roundcube:1.5
 | 
					 | 
				
			||||||
        imagePullPolicy: Always
 | 
					 | 
				
			||||||
        envFrom:
 | 
					 | 
				
			||||||
          - configMapRef:
 | 
					 | 
				
			||||||
              name: mailu-config
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            memory: 100Mi
 | 
					 | 
				
			||||||
            cpu: 100m
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            memory: 200Mi
 | 
					 | 
				
			||||||
            cpu: 200m
 | 
					 | 
				
			||||||
        volumeMounts:
 | 
					 | 
				
			||||||
          - mountPath: /data
 | 
					 | 
				
			||||||
            name: maildata
 | 
					 | 
				
			||||||
            subPath: webmail
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
          - containerPort: 80
 | 
					 | 
				
			||||||
      volumes:
 | 
					 | 
				
			||||||
        - name: maildata
 | 
					 | 
				
			||||||
          persistentVolumeClaim:
 | 
					 | 
				
			||||||
            claimName: mail-storage
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: webmail
 | 
					 | 
				
			||||||
  namespace: mailu-mailserver
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: mailu-roundcube
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: frontend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: mailu-roundcube
 | 
					 | 
				
			||||||
    role: mail
 | 
					 | 
				
			||||||
    tier: frontend
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - name: http
 | 
					 | 
				
			||||||
    port: 80
 | 
					 | 
				
			||||||
    protocol: TCP
 | 
					 | 
				
			||||||
@@ -1,55 +0,0 @@
 | 
				
			|||||||
apiVersion: extensions/v1beta1
 | 
					 | 
				
			||||||
kind: Deployment
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: default-http-backend
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: default-http-backend
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  replicas: 1
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    matchLabels:
 | 
					 | 
				
			||||||
      app: default-http-backend
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        app: default-http-backend
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      terminationGracePeriodSeconds: 60
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
      - name: default-http-backend
 | 
					 | 
				
			||||||
        # Any image is permissible as long as:
 | 
					 | 
				
			||||||
        # 1. It serves a 404 page at /
 | 
					 | 
				
			||||||
        # 2. It serves 200 on a /healthz endpoint
 | 
					 | 
				
			||||||
        image: gcr.io/google_containers/defaultbackend:1.4
 | 
					 | 
				
			||||||
        livenessProbe:
 | 
					 | 
				
			||||||
          httpGet:
 | 
					 | 
				
			||||||
            path: /healthz
 | 
					 | 
				
			||||||
            port: 8080
 | 
					 | 
				
			||||||
            scheme: HTTP
 | 
					 | 
				
			||||||
          initialDelaySeconds: 30
 | 
					 | 
				
			||||||
          timeoutSeconds: 5
 | 
					 | 
				
			||||||
        ports:
 | 
					 | 
				
			||||||
        - containerPort: 8080
 | 
					 | 
				
			||||||
        resources:
 | 
					 | 
				
			||||||
          limits:
 | 
					 | 
				
			||||||
            cpu: 10m
 | 
					 | 
				
			||||||
            memory: 20Mi
 | 
					 | 
				
			||||||
          requests:
 | 
					 | 
				
			||||||
            cpu: 10m
 | 
					 | 
				
			||||||
            memory: 20Mi
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: default-http-backend
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    app: default-http-backend
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
  - port: 80
 | 
					 | 
				
			||||||
    targetPort: 8080
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    app: default-http-backend
 | 
					 | 
				
			||||||
@@ -1,139 +0,0 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Service
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  # keep it under 24 chars
 | 
					 | 
				
			||||||
  name: appsynth-lb
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    k8s-app: appsynth-lb
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  type: ClusterIP
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    k8s-app: appsynth-lb
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
  ports:
 | 
					 | 
				
			||||||
    - name: http
 | 
					 | 
				
			||||||
      protocol: TCP
 | 
					 | 
				
			||||||
      port: 80
 | 
					 | 
				
			||||||
      targetPort: 80
 | 
					 | 
				
			||||||
    - name: https
 | 
					 | 
				
			||||||
      protocol: TCP
 | 
					 | 
				
			||||||
      port: 443
 | 
					 | 
				
			||||||
      targetPort: 443
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: ConfigMap
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: udp-services
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
kind: ConfigMap
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: tcp-services
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
data:
 | 
					 | 
				
			||||||
  25: "mailu-mailserver/front:25"
 | 
					 | 
				
			||||||
  110: "mailu-mailserver/front:110"
 | 
					 | 
				
			||||||
  465: "mailu-mailserver/front:465"
 | 
					 | 
				
			||||||
  587: "mailu-mailserver/front:587"
 | 
					 | 
				
			||||||
  143: "mailu-mailserver/front:143"
 | 
					 | 
				
			||||||
  993: "mailu-mailserver/front:993"
 | 
					 | 
				
			||||||
  995: "mailu-mailserver/front:995"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
data:
 | 
					 | 
				
			||||||
  enable-vts-status: "true"
 | 
					 | 
				
			||||||
kind: ConfigMap
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: nginx-ingress-lb-conf
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: apps/v1beta2
 | 
					 | 
				
			||||||
kind: DaemonSet
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: ingress-controller
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
  annotations:
 | 
					 | 
				
			||||||
    prometheus.io/port: "10254"
 | 
					 | 
				
			||||||
    prometheus.io/scrape: "true"
 | 
					 | 
				
			||||||
  labels:
 | 
					 | 
				
			||||||
    k8s-app: appsynth-lb
 | 
					 | 
				
			||||||
    component: ingress-controller
 | 
					 | 
				
			||||||
    type: nginx
 | 
					 | 
				
			||||||
spec:
 | 
					 | 
				
			||||||
  updateStrategy:
 | 
					 | 
				
			||||||
    rollingUpdate:
 | 
					 | 
				
			||||||
      maxUnavailable: 1
 | 
					 | 
				
			||||||
    type: RollingUpdate
 | 
					 | 
				
			||||||
  selector:
 | 
					 | 
				
			||||||
    matchLabels:
 | 
					 | 
				
			||||||
      k8s-app: appsynth-lb
 | 
					 | 
				
			||||||
      component: ingress-controller
 | 
					 | 
				
			||||||
      type: nginx
 | 
					 | 
				
			||||||
  template:
 | 
					 | 
				
			||||||
    metadata:
 | 
					 | 
				
			||||||
      labels:
 | 
					 | 
				
			||||||
        k8s-app: appsynth-lb
 | 
					 | 
				
			||||||
        component: ingress-controller
 | 
					 | 
				
			||||||
        type: nginx
 | 
					 | 
				
			||||||
    spec:
 | 
					 | 
				
			||||||
      serviceAccount: kube-nginx-ingress
 | 
					 | 
				
			||||||
      affinity:
 | 
					 | 
				
			||||||
        nodeAffinity:
 | 
					 | 
				
			||||||
          requiredDuringSchedulingIgnoredDuringExecution:
 | 
					 | 
				
			||||||
            nodeSelectorTerms:
 | 
					 | 
				
			||||||
            - matchExpressions:
 | 
					 | 
				
			||||||
              - key: node-role.kubernetes.io/master
 | 
					 | 
				
			||||||
                operator: DoesNotExist
 | 
					 | 
				
			||||||
      containers:
 | 
					 | 
				
			||||||
        - name: nginx-ingress-lb
 | 
					 | 
				
			||||||
          image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.16.2
 | 
					 | 
				
			||||||
          args:
 | 
					 | 
				
			||||||
          - /nginx-ingress-controller
 | 
					 | 
				
			||||||
          - --configmap=$(POD_NAMESPACE)/tectonic-custom-error
 | 
					 | 
				
			||||||
          - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
 | 
					 | 
				
			||||||
          #- --default-ssl-certificate=tectonic-system/tectonic-ingress-tls-secret
 | 
					 | 
				
			||||||
          - --tcp-services-configmap=$(POD_NAMESPACE)/tcp-services
 | 
					 | 
				
			||||||
          - --udp-services-configmap=$(POD_NAMESPACE)/udp-services
 | 
					 | 
				
			||||||
          - --annotations-prefix=ingress.kubernetes.io
 | 
					 | 
				
			||||||
          - --enable-ssl-passthrough
 | 
					 | 
				
			||||||
          - --ingress-class=tectonic
 | 
					 | 
				
			||||||
          # use downward API
 | 
					 | 
				
			||||||
          env:
 | 
					 | 
				
			||||||
            - name: POD_NAME
 | 
					 | 
				
			||||||
              valueFrom:
 | 
					 | 
				
			||||||
                fieldRef:
 | 
					 | 
				
			||||||
                  fieldPath: metadata.name
 | 
					 | 
				
			||||||
            - name: POD_NAMESPACE
 | 
					 | 
				
			||||||
              valueFrom:
 | 
					 | 
				
			||||||
                fieldRef:
 | 
					 | 
				
			||||||
                  fieldPath: metadata.namespace
 | 
					 | 
				
			||||||
          ports:
 | 
					 | 
				
			||||||
            - name: http
 | 
					 | 
				
			||||||
              containerPort: 80
 | 
					 | 
				
			||||||
              hostPort: 80
 | 
					 | 
				
			||||||
            - name: https
 | 
					 | 
				
			||||||
              containerPort: 443
 | 
					 | 
				
			||||||
              hostPort: 443
 | 
					 | 
				
			||||||
          readinessProbe:
 | 
					 | 
				
			||||||
            httpGet:
 | 
					 | 
				
			||||||
              path: /healthz
 | 
					 | 
				
			||||||
              port: 10254
 | 
					 | 
				
			||||||
              scheme: HTTP
 | 
					 | 
				
			||||||
          livenessProbe:
 | 
					 | 
				
			||||||
            initialDelaySeconds: 10
 | 
					 | 
				
			||||||
            timeoutSeconds: 1
 | 
					 | 
				
			||||||
            httpGet:
 | 
					 | 
				
			||||||
              path: /healthz
 | 
					 | 
				
			||||||
              port: 10254
 | 
					 | 
				
			||||||
              scheme: HTTP
 | 
					 | 
				
			||||||
      hostNetwork: true
 | 
					 | 
				
			||||||
      nodeSelector:
 | 
					 | 
				
			||||||
        node-role.kubernetes.io/node: ""
 | 
					 | 
				
			||||||
      dnsPolicy: ClusterFirst
 | 
					 | 
				
			||||||
      restartPolicy: Always
 | 
					 | 
				
			||||||
      terminationGracePeriodSeconds: 60
 | 
					 | 
				
			||||||
@@ -1,129 +0,0 @@
 | 
				
			|||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: Namespace
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: v1
 | 
					 | 
				
			||||||
kind: ServiceAccount
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: ClusterRole
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
rules:
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
      - endpoints
 | 
					 | 
				
			||||||
      - nodes
 | 
					 | 
				
			||||||
      - pods
 | 
					 | 
				
			||||||
      - secrets
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - list
 | 
					 | 
				
			||||||
      - watch
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - nodes
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - services
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - list
 | 
					 | 
				
			||||||
      - watch
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - "extensions"
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - ingresses
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - list
 | 
					 | 
				
			||||||
      - watch
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
        - events
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
        - create
 | 
					 | 
				
			||||||
        - patch
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - "extensions"
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - ingresses/status
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: Role
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
rules:
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
      - pods
 | 
					 | 
				
			||||||
      - secrets
 | 
					 | 
				
			||||||
      - namespaces
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
    resourceNames:
 | 
					 | 
				
			||||||
      - "ingress-controller-leader-nginx"
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - configmaps
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - create
 | 
					 | 
				
			||||||
  - apiGroups:
 | 
					 | 
				
			||||||
      - ""
 | 
					 | 
				
			||||||
    resources:
 | 
					 | 
				
			||||||
      - endpoints
 | 
					 | 
				
			||||||
    verbs:
 | 
					 | 
				
			||||||
      - get
 | 
					 | 
				
			||||||
      - create
 | 
					 | 
				
			||||||
      - update
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: RoleBinding
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
  namespace: kube-ingress
 | 
					 | 
				
			||||||
roleRef:
 | 
					 | 
				
			||||||
  apiGroup: rbac.authorization.k8s.io
 | 
					 | 
				
			||||||
  kind: Role
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
subjects:
 | 
					 | 
				
			||||||
  - kind: ServiceAccount
 | 
					 | 
				
			||||||
    name: kube-nginx-ingress
 | 
					 | 
				
			||||||
    namespace: kube-ingress
 | 
					 | 
				
			||||||
---
 | 
					 | 
				
			||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
 | 
					 | 
				
			||||||
kind: ClusterRoleBinding
 | 
					 | 
				
			||||||
metadata:
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
roleRef:
 | 
					 | 
				
			||||||
  apiGroup: rbac.authorization.k8s.io
 | 
					 | 
				
			||||||
  kind: ClusterRole
 | 
					 | 
				
			||||||
  name: kube-nginx-ingress
 | 
					 | 
				
			||||||
subjects:
 | 
					 | 
				
			||||||
  - kind: ServiceAccount
 | 
					 | 
				
			||||||
    name: kube-nginx-ingress
 | 
					 | 
				
			||||||
    namespace: kube-ingress
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user