{"id":22423865,"url":"https://github.com/statcan/cidr-allocator","last_synced_at":"2025-03-27T05:42:01.716Z","repository":{"id":207646515,"uuid":"719593517","full_name":"StatCan/cidr-allocator","owner":"StatCan","description":"A Kubernetes Operator that assigns pod subnets to nodes from a provided set a address pools","archived":false,"fork":false,"pushed_at":"2025-01-30T14:54:34.000Z","size":207,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-30T15:38:04.271Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StatCan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-16T13:53:40.000Z","updated_at":"2025-01-30T14:54:38.000Z","dependencies_parsed_at":"2023-11-16T22:53:01.174Z","dependency_job_id":"09158f7b-39d4-410e-a218-bae9e9096952","html_url":"https://github.com/StatCan/cidr-allocator","commit_stats":null,"previous_names":["statcan/cidr-allocator"],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StatCan%2Fcidr-allocator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StatCan%2Fcidr-allocator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StatCan%2Fcidr-allocator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StatCan%2Fcidr-allocator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StatCan","download_url":"https://codeload.github.com/StatCan/cidr-allocator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245791929,"owners_count":20672669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-05T18:13:17.716Z","updated_at":"2025-03-27T05:42:01.699Z","avatar_url":"https://github.com/StatCan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## CIDR-Allocator\n\nThe CIDR-Allocator is a Kubernetes Operator that helps to implement dynamic IPAM irrespective of the Container Network Interface (CNI) being used.\n\nAt 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.\n\nIn 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.\n\nThis project follows the [`Kubernetes Operator Pattern`](https://kubernetes.io/docs/concepts/extend-kubernetes/operator/)\n\n### Architecture\n\n![CIDR-Allocator Solution Architecture](/docs/media/cidr_allocator_solution_architecture.svg)\n\n\nThe controller watches for a [`NodeCIDRAllocation`](./api/v1alpha1/nodecidrallocation_types.go) 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.\n\n\u003e By default, the size of the assigned `PodCIDR` range will be equal to the `MaxPods` attribute on the `Node` resource\n\n### Installation\n\nInstall `CIDR-Allocator` from the official StatCan Helm Chart\n\n```bash\nhelm repo add statcan-ca https://statcan.github.io/cidr-allocator\nhelm repo update\nhelm install cidr-allocator statcan-ca/cidr-allocator\n```\n\n\u003e For an example configuration for the `NodeCIDRAllocation` CR, please take a look at [config/samples](/config/samples/)\n\n### Changelog\n\nChanges to this project are tracked in the [CHANGELOG](/CHANGELOG.md) which uses the [keepachangelog](https://keepachangelog.com/en/1.0.0/) format.\n\n### Test It Out (locally)\n1. Install the CRDs into the cluster:\n\n```sh\nmake install\n```\n\n2. Run your controller (this will run in the foreground, so switch to a new terminal if you want to leave it running):\n\n```sh\nmake run\n```\n\n**NOTE:** You can also run this in one step by running: `make install run`\n\n______________________\n\n## CIDR-Allocator\n\n### Comment contribuer\n\nVoir [CONTRIBUTING.md](CONTRIBUTING.md)\n\n### Licence\n\nSauf 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](LICENSE).\n\nLe 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](https://www.canada.ca/fr/secretariat-conseil-tresor/sujets/communications-gouvernementales/exigences-image-marque.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatcan%2Fcidr-allocator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstatcan%2Fcidr-allocator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstatcan%2Fcidr-allocator/lists"}