The CIDR-Allocator is a Kubernetes Operator that helps to implement dynamic IPAM irrespective of the Container Network Interface (CNI) being used.
At Statistics Canada, this operator is used to address an early design consideration for the Cloud Native Platform 2.0 (CNP2.0) related to our BGP route propagation solution.
In Kubernetes, a full PodCIDR must be allocated to a Node at creation-time since any modifications afterwards ti the PodCIDR
or PodCIDRs
fields are strictly prohibited.
This project follows the Kubernetes Operator Pattern
The controller watches for a NodeCIDRAllocation
custom resource (CR) that will identify blocks of IPv4 addresses that will be used during the allocation of a PodCIDR
range to a Node. A NodeSelector
is used to identify which Node
resources should align with each NodeCIDRAllocation
that is defined. This gives us the flexibility to manage Pod IP allocation with as much or as little granularity as desired.
By default, the size of the assigned
PodCIDR
range will be equal to theMaxPods
attribute on theNode
resource
Install CIDR-Allocator
from the official StatCan Helm Chart
helm repo add statcan-ca https://statcan.github.io/cidr-allocator
helm repo update
helm install cidr-allocator statcan-ca/cidr-allocator
For an example configuration for the
NodeCIDRAllocation
CR, please take a look at config/samples
Changes to this project are tracked in the CHANGELOG which uses the keepachangelog format.
- Install the CRDs into the cluster:
make install
- Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):
make run
NOTE: You can also run this in one step by running: make install run
Voir CONTRIBUTING.md
Sauf indication contraire, le code source de ce projet est protégé par le droit d'auteur de la Couronne du gouvernement du Canada et distribué sous la licence MIT.
Le mot-symbole « Canada » et les éléments graphiques connexes liés à cette distribution sont protégés en vertu des lois portant sur les marques de commerce et le droit d'auteur. Aucune autorisation n'est accordée pour leur utilisation à l'extérieur des paramètres du programme de coordination de l'image de marque du gouvernement du Canada. Pour obtenir davantage de renseignements à ce sujet, veuillez consulter les Exigences pour l'image de marque.