Compare commits
2 Commits
5ef0b4edf6
...
6c77b8e7f8
| Author | SHA1 | Date | |
|---|---|---|---|
| 6c77b8e7f8 | |||
| 78195c4685 |
@ -55,6 +55,8 @@ spec:
|
|||||||
front:
|
front:
|
||||||
hostnames: [mail.bstein.dev]
|
hostnames: [mail.bstein.dev]
|
||||||
proxied: true
|
proxied: true
|
||||||
|
hostPort:
|
||||||
|
enabled: false
|
||||||
https:
|
https:
|
||||||
enabled: true
|
enabled: true
|
||||||
external: true
|
external: true
|
||||||
@ -62,7 +64,7 @@ spec:
|
|||||||
externalService:
|
externalService:
|
||||||
enabled: true
|
enabled: true
|
||||||
type: LoadBalancer
|
type: LoadBalancer
|
||||||
externalTrafficPolicy: Local
|
externalTrafficPolicy: Cluster
|
||||||
nodePorts:
|
nodePorts:
|
||||||
pop3: 30010
|
pop3: 30010
|
||||||
pop3s: 30011
|
pop3s: 30011
|
||||||
@ -92,6 +94,11 @@ spec:
|
|||||||
value: 127.0.0.1,10.42.0.0/16
|
value: 127.0.0.1,10.42.0.0/16
|
||||||
- name: DNS_RESOLVERS
|
- name: DNS_RESOLVERS
|
||||||
value: 1.1.1.1,9.9.9.9
|
value: 1.1.1.1,9.9.9.9
|
||||||
|
dnsPolicy: None
|
||||||
|
dnsConfig:
|
||||||
|
nameservers:
|
||||||
|
- 1.1.1.1
|
||||||
|
- 9.9.9.9
|
||||||
clamav:
|
clamav:
|
||||||
logLevel: DEBUG
|
logLevel: DEBUG
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
|
|||||||
@ -6,3 +6,4 @@ resources:
|
|||||||
- namespace.yaml
|
- namespace.yaml
|
||||||
- helmrelease.yaml
|
- helmrelease.yaml
|
||||||
- certificate.yaml
|
- certificate.yaml
|
||||||
|
- vip-controller.yaml
|
||||||
|
|||||||
71
services/mailu/vip-controller.yaml
Normal file
71
services/mailu/vip-controller.yaml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# services/mailu/vip-controller.yaml
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: vip-controller
|
||||||
|
namespace: mailu-mailserver
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: vip-controller-role
|
||||||
|
namespace: mailu-mailserver
|
||||||
|
rules:
|
||||||
|
- apiGroups: ["apps"]
|
||||||
|
resources: ["deployments"]
|
||||||
|
verbs: ["get", "list", "patch", "update"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: vip-controller-binding
|
||||||
|
namespace: mailu-mailserver
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: vip-controller-role
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: vip-controller
|
||||||
|
namespace: mailu-mailserver
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: DaemonSet
|
||||||
|
metadata:
|
||||||
|
name: vip-controller
|
||||||
|
namespace: mailu-mailserver
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vip-controller
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: vip-controller
|
||||||
|
spec:
|
||||||
|
serviceAccountName: vip-controller
|
||||||
|
hostNetwork: true
|
||||||
|
nodeSelector:
|
||||||
|
mailu.bstein.dev/vip: "true"
|
||||||
|
containers:
|
||||||
|
- name: vip-controller
|
||||||
|
image: lachlanevenson/k8s-kubectl:latest
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command:
|
||||||
|
- /bin/sh
|
||||||
|
- -c
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
set -e
|
||||||
|
while true; do
|
||||||
|
if ip addr show end0 | grep -q 'inet 192\.168\.22\.9/32'; then
|
||||||
|
NODE=$(hostname)
|
||||||
|
echo "VIP found on node ${NODE}."
|
||||||
|
kubectl patch deployment mailu-front -n mailu-mailserver --type='merge' \
|
||||||
|
-p "{\"spec\":{\"template\":{\"spec\":{\"nodeSelector\":{\"kubernetes.io/hostname\":\"${NODE}\"}}}}}"
|
||||||
|
else
|
||||||
|
echo "No VIP on node ${HOSTNAME}."
|
||||||
|
fi
|
||||||
|
sleep 60
|
||||||
|
done
|
||||||
Loading…
x
Reference in New Issue
Block a user