Skip to content

[network-driver]: Add multi-pool Resource IPAM operator cell#44081

Merged
pippolo84 merged 4 commits intocilium:feature/dra-driverfrom
pippolo84:pr/pippolo84/network-driver-ipam-operator
Feb 11, 2026
Merged

[network-driver]: Add multi-pool Resource IPAM operator cell#44081
pippolo84 merged 4 commits intocilium:feature/dra-driverfrom
pippolo84:pr/pippolo84/network-driver-ipam-operator

Conversation

@pippolo84
Copy link
Copy Markdown
Member

@pippolo84 pippolo84 commented Jan 30, 2026

Multi-Pool Resource IPAM replicates the way Multi-Pool IPAM mode allocates IP addresses to pods, but specializes for DRA resources. When a pod with a ResourceClaim is scheduled on a node, the Cilium Network Driver is responsible for setting up the needed DRA resources to fulfill the claim. With Multi Pool Resource IPAM the claim can specify a pool (namely, a CiliumResourceIPPool object) from which the IP address should be taken and assigned to the resource.

An example of a ResouceClaim Spec where two dummy devices are requested, each with an IP address from a different pool is the following:

devices:
  config:
    - opaque:
        driver: dummy.cilium.k8s.io
        parameters:
          ip-pool: a-ip-pool
      requests:
        - dummy-a
    - opaque:
        driver: dummy.cilium.k8s.io
        parameters:
          ip-pool: b-ip-pool
      requests:
        - dummy-b
  requests:
    - exactly:
        allocationMode: ExactCount
        count: 1
        deviceClassName: dummy.cilium.k8s.io
      name: dummy-a
    - exactly:
        allocationMode: ExactCount
        count: 1
        deviceClassName: dummy.cilium.k8s.io
      name: dummy-b

This PR adds the operator part of Multi-Pool Resource IPAM (for more details refer to the Cilium Network Driver CfP). Specifically, the operator watches CiliumResourceIPPools to keep track of all the pools available in the cluster and based on the addresses requests from each agent, it carves out CIDRs from the pools and reserve them for the requesting node, so that they can assign single IPs.

Depends on #44080
Blocked on #44033

@pippolo84 pippolo84 added the area/ipam IP address management, including cloud IPAM label Jan 30, 2026
@maintainer-s-little-helper maintainer-s-little-helper bot added the dont-merge/needs-release-note-label The author needs to describe the release impact of these changes. label Jan 30, 2026
@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch 2 times, most recently from 6fed791 to af806cb Compare January 30, 2026 19:18
@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch 3 times, most recently from e16189e to b61a52d Compare February 2, 2026 11:25
@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch from b61a52d to c66c7d9 Compare February 3, 2026 18:07
@pippolo84
Copy link
Copy Markdown
Member Author

/test

@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch 2 times, most recently from d52bd7b to 80b7b0b Compare February 3, 2026 20:30
@pippolo84 pippolo84 added release-note/major This PR introduces major new functionality to Cilium. release-note/misc This PR makes changes that have no direct user impact. area/operator Impacts the cilium-operator component and removed dont-merge/needs-release-note-label The author needs to describe the release impact of these changes. release-note/major This PR introduces major new functionality to Cilium. labels Feb 3, 2026
@pippolo84
Copy link
Copy Markdown
Member Author

/test

@pippolo84 pippolo84 marked this pull request as ready for review February 3, 2026 21:51
@pippolo84 pippolo84 requested review from a team as code owners February 3, 2026 21:51
@pippolo84 pippolo84 requested review from HadrienPatte and YutaroHayakawa and removed request for a team February 3, 2026 21:51
@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch from 80b7b0b to e675d24 Compare February 4, 2026 14:53
@joestringer joestringer removed the request for review from aditighag February 4, 2026 20:01
Copy link
Copy Markdown
Member

@YutaroHayakawa YutaroHayakawa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

k8s resource change looks good to me. Some non-blocking comments.

@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch from e675d24 to 5a9955c Compare February 9, 2026 16:57
@pippolo84 pippolo84 requested a review from joamaki February 9, 2026 16:57
@pippolo84
Copy link
Copy Markdown
Member Author

/test

@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch from 5a9955c to 014ae8f Compare February 9, 2026 18:31
@pippolo84
Copy link
Copy Markdown
Member Author

/test

@pippolo84 pippolo84 requested review from a team as code owners February 10, 2026 10:16
@pippolo84 pippolo84 requested review from tklauser and removed request for a team February 10, 2026 10:16
In order to have separated files for CiliumPodIPPool and the upcoming
CiliumResourceIPPool for DRA resources IPAM.

Signed-off-by: Fabio Falzoi <fabio.falzoi@isovalent.com>
Signed-off-by: Fabio Falzoi <fabio.falzoi@isovalent.com>
DRA resources IPAM relies on this specific field in CiliumNode to keep
track of the requested and allocated IP pools. Doing this allows to
avoid any interference between pod IPAM and DRA resources IPAM.

Signed-off-by: Fabio Falzoi <fabio.falzoi@isovalent.com>
Add the operator cell that manages the multi-pool controller for
DRA resource IPAM. The implementation works in the same way of the pod
IPAM counterpart, but it is specialized for DRA resources and isolated
from the existing one.

Signed-off-by: Fabio Falzoi <fabio.falzoi@isovalent.com>
@pippolo84 pippolo84 force-pushed the pr/pippolo84/network-driver-ipam-operator branch from 014ae8f to e0c14da Compare February 10, 2026 10:26
@julianwiedmann julianwiedmann added the area/dra-plugin Impacts the Cilium Network Driver DRA plugin. label Feb 11, 2026
@tklauser tklauser removed their request for review February 11, 2026 10:43
@pippolo84 pippolo84 merged commit 76c2e69 into cilium:feature/dra-driver Feb 11, 2026
56 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/dra-plugin Impacts the Cilium Network Driver DRA plugin. area/ipam IP address management, including cloud IPAM area/operator Impacts the cilium-operator component release-note/misc This PR makes changes that have no direct user impact.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants