Introduce a new "encapsulationMode" field in Calico's portion of the
Cluster specification to allow switching between the the IP-in-IP and
VXLAN encapsulation protocols. For now, we accept the values "ipip"
and "vxlan," and forgo a possible "none" value that would disable
encapsulation altogether (at least for the default Calico IP pool).
Augment the default-populating procedure for Calico to take this field
into account when deciding both which networking backend to use and
whether to use IP-in-IP or VXLAN encapsulation for the default IP
pool. Note that these values supplied for the "CALICO_IPV4POOL_IPIP"
and "CALICO_IPV4POOL_VXLAN" environment variables in the "calico-node"
DaemonSet pod spec only matter for creating the "default" IPPool pool
object when no such objects already exist.
Generalize the documentation for the "crossSubnet" field to cover
environments more broad than just AWS, as Calico can employ this
selective encapsulation in any environment in which it can detect
boundaries between subnets.
* Fix: Mount the whole `/etc/ssl/certs` directory for k8s-ec2-srcdst deployment.
Signed-off-by: Marcos Soutullo Rodriguez <marcos.soutullo@vodafone.com>
* Fix: Retrospective change to mount all CA certificates in <k8s-1.16
* Apply suggestions from code review
Co-authored-by: Ciprian Hacman <ciprianhacman@gmail.com>
Upgrading the "k8s-ec2-srcdst" controller to this latest version
allows it to work correctly with the objects containing the new
"metadata.managedFields" field introduced in Kubernetes version
1.18.0.
The previous container image versions used a version of the
"client-go" library that was too old to consume these fields
correctly, causing the controller to fail repeatedly when trying to
read Node objects retrieved from the Kubernetes API server.