|
@@ -8,20 +8,23 @@ data:
|
|
while true
|
|
while true
|
|
do
|
|
do
|
|
date
|
|
date
|
|
- /sbin/ip link list {{ .Values.dev_name }} > /dev/null 2>&1
|
|
|
|
|
|
+ _cdr=$(mask2cdr {{ .Values.mask }})
|
|
|
|
+ ip link list {{ .Values.dev_name }} > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
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')
|
|
__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')
|
|
- __route_ip=$(ip route get {{ .Values.net }} | awk '{print $3}')
|
|
|
|
|
|
+ if [ -z "$__server_pod_ip"]; then
|
|
|
|
+ ip route delete {{ .Values.net }}/$_cdr > /dev/null 2>&1
|
|
|
|
+ continue
|
|
|
|
+ fi
|
|
|
|
+ __route_ip=$(ip route get {{ .Values.net }}/$_cdr | awk '{print $3}')
|
|
if [[ $__server_pod_ip != $__route_ip ]]; then
|
|
if [[ $__server_pod_ip != $__route_ip ]]; then
|
|
- ip route delete {{ .Values.net }}/$(mask2cdr {{ .Values.mask }}) > /dev/null 2>&1
|
|
|
|
- ip route add {{ .Values.net }}/$(mask2cdr {{ .Values.mask }}) via $__server_pod_ip
|
|
|
|
|
|
+ ip route delete {{ .Values.net }}/$_cdr > /dev/null 2>&1
|
|
|
|
+ ip route add {{ .Values.net }}/$_cdr via $__server_pod_ip
|
|
fi
|
|
fi
|
|
- elif [ $(ip route show to match {{ .Values.net }} | wc -l) -gt 2 ]; then
|
|
|
|
- ip route delete {{ .Values.net }}/$(mask2cdr {{ .Values.mask }}) > /dev/null 2>&1
|
|
|
|
- elif [ $(ip route show to match {{ .Values.net }} | wc -l) -le 2 ]; then
|
|
|
|
- ip route add {{ .Values.net }}/$(mask2cdr {{ .Values.mask }}) 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
|
|
fi
|
|
sleep 60
|
|
sleep 60
|
|
done
|
|
done
|
|
route-delete: |
|
|
route-delete: |
|
|
- ip route delete {{ .Values.net }}/$(mask2cdr {{ .Values.mask }}) > /dev/null 2>&1
|
|
|
|
|
|
+ ip route delete $(ip route show to match {{ .Values.net }}/$(mask2cdr {{ .Values.mask }}) | grep -E -v 'default|{{ .Values.dev_name }}')) > /dev/null 2>&1
|