-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calico: Allow operators to choose which encapsulation mode to use #10404
Calico: Allow operators to choose which encapsulation mode to use #10404
Conversation
Hi @seh. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
736cb24
to
5f256b2
Compare
5f256b2
to
48b7d18
Compare
48b7d18
to
7c2c86c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if we really need Backend added. What do you think?
cf418a3
to
f6f2800
Compare
Should we still allow IP-in-IP traffic in the security rules even if the Calico backend is VXLAN? |
is migrating from one backend to another a supported operation for existing clusters? If it is, then modifying security group rule definitions could mean that |
Yes, it is, though at present kOps would not orchestrate this all on its own. The reason is that we'd wind up changing the requisite field in the "calico-node" ConfigMap, but we wouldn't automatically restart all the pods that need to consume that updated field value in order for the change to actually take effect. After running kops update cluster and waiting for the updated Calico manifests to be applied, an operator would have to run the following command: kubectl --namespace=kube-system rollout restart calico-node I am not sure if it's necessary to restart the pods managed by the "calico-kube-controllers" Deployment. I will ask the Calico maintainers about that. |
Please hold pending discussion with the Calico maintainers. |
f6f2800
to
faab730
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @seh. This looks mostly good. Will take another look tomorrow and give it a try.
Thank you for the prompt review. I'll follow up with corrections tomorrow morning (EST). |
faab730
to
0fd2b1f
Compare
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.
8298b54
to
f0f45b7
Compare
This looks 👍 . Thanks @seh ! |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hakman, seh The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/retest |
…-upstream-release-1.19 Automated cherry pick of #10404: Allow use of Calico's VXLAN networking backend
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.
Fixes #10168.