#!/bin/bash BASEURL=https://docs.projectcalico.org/manifests #BASEURL=https://docs.projectcalico.org/archive/v3.18/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