ansible-role-k8s-calico/bin/update.sh

39 lines
2.6 KiB
Bash
Executable file

#!/bin/bash
CALICO_VERSION="3.28.0"
#BASEURL=https://docs.projectcalico.org/manifests
#BASEURL=https://docs.projectcalico.org/archive/v3.18/manifests
BASEURL="https://raw.githubusercontent.com/projectcalico/calico/v${CALICO_VERSION}/manifests"
curl "${BASEURL}"/calico.yaml -O
kubernetes-split-yaml calico.yaml > generated.log
mv generated/*.yaml templates/
rmdir generated
echo -e '---\ncalico_files:' > vars/calico-files.yaml
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sort -V | sed 's|.*\(generated/\)\(.*\.yaml\)| - "\2"|' >> vars/calico-files.yaml
rm -f generated.log calico.yaml
curl "${BASEURL}"/calicoctl.yaml -O
kubernetes-split-yaml calicoctl.yaml > generated.log
mv generated/*.yaml templates/
rmdir generated
echo -e '\ncalicoctl_files:' >> vars/calico-files.yaml
cat generated.log | while read LIGNE; do if [ $(echo "${LIGNE}" | grep -c ^File) -eq 1 ]; then echo -n "${LIGNE} "; else echo "${LIGNE}"; fi; done | grep ^File | sort -V | sed 's|.*\(generated/\)\(.*\.yaml\)| - "\2"|' >> vars/calico-files.yaml
rm -f generated.log calicoctl.yaml
# Configure the pod IP range
line_nb=$(grep -n CALICO_IPV4POOL_CIDR templates/calico-node-DaemonSet.yaml | cut -d: -f1)
sed "$line_nb,$[$line_nb+1] s/# //" -i templates/calico-node-DaemonSet.yaml
# Switch to VxLan
sed "/calico_backend:/ s/bird/vxlan/" -i templates/calico-config-ConfigMap.yaml
line_nb=$(grep -n CALICO_IPV4POOL_IPIP templates/calico-node-DaemonSet.yaml | cut -d: -f1)
sed "$line_nb,$[$line_nb+1] s/\(value: \).*/\1\"Never\"/" -i templates/calico-node-DaemonSet.yaml
line_nb=$(grep -n CALICO_IPV4POOL_VXLAN templates/calico-node-DaemonSet.yaml | cut -d: -f1)
sed "$line_nb,$[$line_nb+1] s/\(value: \).*/\1\"Always\"/" -i templates/calico-node-DaemonSet.yaml
line_nb=$(grep -n CALICO_IPV4POOL_CIDR templates/calico-node-DaemonSet.yaml | cut -d: -f1)
sed "$line_nb,$[$line_nb+1] s|\(value: \).*|\1\"10.244.0.0/16\"|" -i templates/calico-node-DaemonSet.yaml
line_nb=$(grep -n FELIX_HEALTHENABLED templates/calico-node-DaemonSet.yaml | cut -d: -f1)
sed "$[${line_nb}+2]i\ - name: FELIX_IPTABLESBACKEND\n value: \"Auto\"" -i templates/calico-node-DaemonSet.yaml
sed "/-bird-/ s/\(- -bird-.*\)/# \1/" -i templates/calico-node-DaemonSet.yaml
line_nb=$(grep -n FELIX_IPTABLESBACKEND templates/calico-node-DaemonSet.yaml | cut -d: -f1)
sed "$line_nb i\{% if kubernetes_internal_network is defined %}\n - name: IP_AUTODETECTION_METHOD\n value: cidr=\"{{ kubernetes_internal_network }}\"\n{% endif %}" -i templates/calico-node-DaemonSet.yaml