+ kustomize build ${SCRIPTDIR}/addons/calico/ipv4 >${SCRIPTDIR}/addons/calico/ipv4.yaml
+ # Dual stack
+ cat <<'EOF' >${SCRIPTDIR}/addons/calico/dualstack/configmap-patch.yaml
+kind: ConfigMap
+apiVersion: v1
+metadata:
+ name: calico-config
+ namespace: kube-system
+data:
+ cni_network_config: |-
+ {
+ "name": "k8s-pod-network",
+ "cniVersion": "0.3.1",
+ "plugins": [
+ {
+ "type": "calico",
+ "log_level": "info",
+ "log_file_path": "/var/log/calico/cni/cni.log",
+ "datastore_type": "kubernetes",
+ "nodename": "__KUBERNETES_NODE_NAME__",
+ "mtu": __CNI_MTU__,
+ "ipam": {
+ "type": "calico-ipam",
+ "assign_ipv4": "true",
+ "assign_ipv6": "true"
+ },
+ "policy": {
+ "type": "k8s"
+ },
+ "kubernetes": {
+ "kubeconfig": "__KUBECONFIG_FILEPATH__"
+ }
+ },
+ {
+ "type": "portmap",
+ "snat": true,
+ "capabilities": {"portMappings": true}
+ },
+ {
+ "type": "bandwidth",
+ "capabilities": {"bandwidth": true}
+ }
+ ]
+ }
+EOF
+ cat <<EOF >${SCRIPTDIR}/addons/calico/dualstack/ip-autodetection-method-patch.yaml
+kind: DaemonSet
+apiVersion: apps/v1
+metadata:
+ name: calico-node
+ namespace: kube-system
+spec:
+ template:
+ spec:
+ containers:
+ - name: calico-node
+ env:
+ - name: IP_AUTODETECTION_METHOD
+ value: can-reach=www.google.com
+ - name: IP6_AUTODETECTION_METHOD
+ value: can-reach=www.google.com
+ - name: IP6
+ value: autodetect
+ - name: FELIX_IPV6SUPPORT
+ value: true
+EOF
+ cat <<EOF >${SCRIPTDIR}/addons/calico/dualstack/kustomization.yaml
+resources:
+- ../base
+patches:
+- path: configmap-patch.yaml
+- path: ip-autodetection-method-patch.yaml
+EOF
+ kustomize build ${SCRIPTDIR}/addons/calico/dualstack >${SCRIPTDIR}/addons/calico/dualstack.yaml
+ # IPv6 only
+ cat <<'EOF' >${SCRIPTDIR}/addons/calico/ipv6/configmap-patch.yaml
+kind: ConfigMap
+apiVersion: v1
+metadata:
+ name: calico-config
+ namespace: kube-system
+data:
+ cni_network_config: |-
+ {
+ "name": "k8s-pod-network",
+ "cniVersion": "0.3.1",
+ "plugins": [
+ {
+ "type": "calico",
+ "log_level": "info",
+ "log_file_path": "/var/log/calico/cni/cni.log",
+ "datastore_type": "kubernetes",
+ "nodename": "__KUBERNETES_NODE_NAME__",
+ "mtu": __CNI_MTU__,
+ "ipam": {
+ "type": "calico-ipam",
+ "assign_ipv4": "false",
+ "assign_ipv6": "true"
+ },
+ "policy": {
+ "type": "k8s"
+ },
+ "kubernetes": {
+ "kubeconfig": "__KUBECONFIG_FILEPATH__"
+ }
+ },
+ {
+ "type": "portmap",
+ "snat": true,
+ "capabilities": {"portMappings": true}
+ },
+ {
+ "type": "bandwidth",
+ "capabilities": {"bandwidth": true}
+ }
+ ]
+ }
+EOF
+ cat <<EOF >${SCRIPTDIR}/addons/calico/ipv6/ip-autodetection-method-patch.yaml
+kind: DaemonSet
+apiVersion: apps/v1
+metadata:
+ name: calico-node
+ namespace: kube-system
+spec:
+ template:
+ spec:
+ containers:
+ - name: calico-node
+ env:
+ - name: IP6_AUTODETECTION_METHOD
+ value: can-reach=www.google.com
+ - name: IP6
+ value: autodetect
+ - name: FELIX_IPV6SUPPORT
+ value: true
+ - name: IP
+ value: none
+ - name: CALICO_ROUTER_ID
+ value: hash
+EOF
+ cat <<EOF >${SCRIPTDIR}/addons/calico/ipv6/kustomization.yaml
+resources:
+- ../base
+patches:
+- path: configmap-patch.yaml
+- path: ip-autodetection-method-patch.yaml
+EOF
+ kustomize build ${SCRIPTDIR}/addons/calico/ipv6 >${SCRIPTDIR}/addons/calico/ipv6.yaml
+