Skip to content

Add option in BootstrapConfiguration for always using IP-IP #1234

Open
@gdemonet

Description

@gdemonet

Component: salt, network

Why this is needed:

In case the networks backing a cluster drop any packet from an unknown origin, Pod-to-Pod communication through DNS resolution will be broken (since it will rely on ClusterIPs).
Always enabling IP-IP encapsulation would prevent this kind of issue.

What should be done:

Add a configuration option in the BootstrapConfiguration file (/etc/metalk8s/bootstrap.yaml) to control usage of IP-IP encapsulation. Values should be either Always or CrossSubnet (we use the latter in the current version of MetalK8s).

This configuration value should be reflected in the calico-node DaemonSet, replacing the CALICO_IPV4POOL_IPIP environment variable (see salt/metalk8s/kubernetes/cni/calico/deployed.sls#L620).

See https://docs.projectcalico.org/v3.5/usage/configuration/ip-in-ip for more details.

Test plan:

Pod-to-Pod communication should work with both variants of this option in a network that doesn't enforce the known origin policy.
Pod-to-Pod communication should work with IP-IP set to Always in a network that do enforce this policy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind:bugSomething isn't workingtopic:networkingNetworking-related issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions