Skip to content
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

Ability to customize CNI ports #1744

Closed
ncdc opened this issue Jun 10, 2020 · 1 comment · Fixed by #1747
Closed

Ability to customize CNI ports #1744

ncdc opened this issue Jun 10, 2020 · 1 comment · Fixed by #1747
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Milestone

Comments

@ncdc
Copy link
Contributor

ncdc commented Jun 10, 2020

/kind feature

Describe the solution you'd like
While #392 requests the ability to customize security group rules, the solution for that will require rethinking how we declaratively manage multiple aspects of networking (VPC, security groups, etc). We'd like to tackle that as part of a new v1alpha4 API version.

In the meantime, it would be nice to modify v1alpha3 to allow the user to customize which ports are open for a CNI to be functional. We currently hard-code rules for BGP and IP-in-IP (for Calico). Some of our users are interested in trying Antrea, which requires one UDP port for the overlay protocol (VXLAN or Geneve, for example), and another TCP port to enable Antrea agent-to-controller communications.

To add Antrea support, we could add these rules on top of the Calico ones, but that would open more ports than required. Rather than do this, we'd like to do the following:

  1. Do not make any changes to the current set of defaults (i.e., continue to configure for Calico)
  2. Do not make any changes that break current CAPA clusters
  3. Adjust the AWSCluster spec to allow CNI port configuration
    1. Maybe something like spec.networkSpec.cni (optional / pointer), which looks like this (names TBD):
type CNISpec struct {
  IngressRules infrav1.IngressRules
}
  1. Add defaulting webhook logic for this cni field
    1. If nil, fill in the Calico rules that are currently hard-coded in securitygroups.go
  2. Remove the Calico rules from securitygroups.go
  3. Modify securitygroups.go to merge the current set of hard-coded rules (SSH, etcd, etc.) with the new CNI rules from the AWSCluster spec

cc @detiber @vincepri @randomvariable - did I capture this accurately?

@k8s-ci-robot k8s-ci-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Jun 10, 2020
@ncdc
Copy link
Contributor Author

ncdc commented Jun 10, 2020

/assign @gab-satchi

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants