-
Notifications
You must be signed in to change notification settings - Fork 3.4k
IPAM: Refactors Node API Types to Support Separate IP Families #30684
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
Conversation
/test |
6efd000
to
e733a51
Compare
e733a51
to
620b4a7
Compare
620b4a7
to
0b266af
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.
It's nice to see preparation / refactoring PRs outside of the implementation PR 💯
/test |
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 for the PR. A few comments:
- See below
- For the change to
EmptyInterfaceSlots
, I didn't see any justification for it in the commit msg, but from the context of the changes, I deduce thatEmptyInterfaceSlots
is not subject to IP family, so it has been moved out of the IP family-specific struct. Is that right? If so, please add that context to the commit msg.
@christarazi you are correct, |
0b266af
to
a620529
Compare
a620529
to
27e061b
Compare
/ci-ipsec-upgrade |
/ci-ipsec-e2e |
/ci-clustermesh |
/ci-ginkgo |
/ci-e2e |
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
Adds datapath support for ENI IPv6 prefix delegation. Supports cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
Previously, ENI prefix delegation support was limited to IPv4. This PR updates existing structs, methods, etc. to support IPv6 prefix delegation. The overall implementation follows the existing approach taken for IPv4 prefix delegation. Although AWS assigns a /80 prefix to an ENI, 64 addresses are the maximum number of allocatable addresses. This restriction can be user configurable in the future if needed. Supports cilium#30684 Note: IPv6 metrics are still unsupported and will be added in a future PR. Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- Updates all providers to support changes to IPAM NodeOpertions interface. - Updates pkg/aws/ec2 to manage ENI, VPC, etc. IPv6 attributes. - Updates pkg/aws/eni to manage IPv6 prefix delegation, e.g. address allocation, resyncing interfaces, etc. Supports cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
Adds the `awsEnableIPv6PrefixDelegation` boolean flag for enabling IPv6 prefix delegation for the ENI IPAM mode. This flag is disabled by default. Supports cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: #30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
- `operator/option/config.go`: Adds an option for enabling AWS IPv6 prefix delegation (PD). - `*_test.go`: Updates IPAM implementation unit tests to call `NewNodeManager()` with IPv6 PD config option. - `pkg/ipam/node.go`: Adds `ipv6Alloc` field to `Node` type to represent IPv6-specific allocation node attributes. - `pkg/ipam/node_manager.go`: Adds IPv6 PD field to the `NodeManager` type and associated `NewNodeManager()`. Supports: cilium#30684 Signed-off-by: Daneyon Hansen <daneyon.hansen@solo.io>
Previously, the IPAM Node type represented IP information such as pools, allocations, etc. that are specific to IPv4. This PR introduces the following changes:
and IPv6 node statistics.
and IPv6.
Note: This PR does not implement IPv6 Node attributes.
Supports: #19251