|
@@ -5,14 +5,14 @@ metadata:
|
|
|
data:
|
|
|
route-check: |
|
|
|
set -x
|
|
|
- while true
|
|
|
+ while sleep 10
|
|
|
do
|
|
|
date
|
|
|
_cdr=$(mask2cdr {{ .Values.mask }})
|
|
|
ip link list {{ .Values.dev_name }} > /dev/null 2>&1
|
|
|
if [ $? -ne 0 ]; then
|
|
|
__server_pod_ip=$(kubectl get po -o json | jq -r '.items[] | select(.metadata.labels.component=="application" and .metadata.labels["app.kubernetes.io/instance"]=="{{ .Release.Name }}" and .metadata.labels["app.kubernetes.io/name"]=="{{ include "openvpn.name" . }}" and .metadata.deletionTimestamp==null and .status.phase=="Running").status.podIP')
|
|
|
- if [ -z "$__server_pod_ip"]; then
|
|
|
+ if [ -z "$__server_pod_ip" ]; then
|
|
|
ip route delete {{ .Values.net }}/$_cdr > /dev/null 2>&1
|
|
|
continue
|
|
|
fi
|
|
@@ -21,10 +21,12 @@ data:
|
|
|
ip route delete {{ .Values.net }}/$_cdr > /dev/null 2>&1
|
|
|
ip route add {{ .Values.net }}/$_cdr via $__server_pod_ip
|
|
|
fi
|
|
|
+ elif [ -z "$(ip route show to match {{ .Values.net }}/$_cdr | grep '{{ .Values.dev_name }}')" ]; then
|
|
|
+ ip route add {{ .Values.net }}/$_cdr dev {{ .Values.dev_name }}
|
|
|
elif [ ! -z "$(ip route show to match {{ .Values.net }}/$_cdr | grep -E -v 'default|{{ .Values.dev_name }}')" ]; then
|
|
|
ip route delete $(ip route show to match {{ .Values.net }}/$_cdr | grep -E -v 'default|{{ .Values.dev_name }}')
|
|
|
fi
|
|
|
- sleep 60
|
|
|
+ sleep 50
|
|
|
done
|
|
|
route-delete: |
|
|
|
ip route delete $(ip route show to match {{ .Values.net }}/$(mask2cdr {{ .Values.mask }}) | grep -E -v 'default|{{ .Values.dev_name }}')) > /dev/null 2>&1
|