https://github.com/metal-stack/node-init
https://github.com/metal-stack/node-init
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/metal-stack/node-init
- Owner: metal-stack
- License: mit
- Created: 2021-04-07T09:50:25.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-06-05T17:50:37.000Z (7 months ago)
- Last Synced: 2025-06-05T18:41:41.933Z (7 months ago)
- Language: Go
- Size: 91.8 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# node-init
metal-stack uses frr and BGP for routing-to-the-host. If a calico interface / pod IP gets added or removed to the kernel routing table, frr announces or removes the according BGP route.
There is an open issue with frr, that sometimes - in rare cases - frr misses these route-changes: and the BGP routing tables differs from kernel routing table, leading to unreachable pods.
Since all pod IPs on a node are from the same podCIDR anyway, there is no need for host-routes for every pod. It's sufficient enough to simply route the whole node.podCIDR to that node.
`node-init` reads node.spec.podCIDR and sets a route to dev lo0. This results in a BGP route for this podCIDR to that node and therefore mitigates the issue with missing podIP routes.
## Usage
```text
Usage:
node-init [command]
Available Commands:
help Help about any command
init init node networking
Flags:
-h, --help help for node-init
Use "node-init [command] --help" for more information about a command.
```
## Example
```bash
kubectl apply -f deploy/node-init.yaml
```