-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
datapath: allow specifying cilium_host routes metric #17544
Conversation
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.
LGTM. @brb could you also have a quick look?
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.
LGTM, thanks!
/test |
This comment has been minimized.
This comment has been minimized.
51b1b97
to
b55596b
Compare
You'll need to rebase with latest master for build-commits to pass (I'd recommend to rebase whenever you update the PR branch). The above error is also still present. See Travis CI build for example. |
b55596b
to
7b49a69
Compare
5db3bda
to
0748ea7
Compare
The networks used by cilium (pod range, etc.) must be routed to the nodes. One possibility of announcing the ranges is to add them to the `lo` interface. Then, a specific route-map on the local router will announce all the networks belonging to an interface. However, when adding an IP or a range to an interface, the kernel automatically adds a route to it like so: ``` 2001:my:range::/112 dev lo proto kernel metric 256 pref medium ``` this metric corresponds to `IP6_RT_PRIO_ADDRCONF = 256`. The problem arises the moment cilium adds these routes to the cilium host device. If a metric is not specified (by default 0), then the kernel will use `IP6_RT_PRIO_USER = 1024`, which won't take precedence over the above route. We thus introduce the `--route-metric` param which allows overriding this metric. If the param is not used, the default metrics won't change. Fixes: cilium#16539 Signed-off-by: Frank Villaro-Dixon <frank.villaro@infomaniak.com>
0748ea7
to
6df5d7c
Compare
This comment has been minimized.
This comment has been minimized.
Hi @pchaigno thanks for the test and sorry for the huge delay on my part :(. I don't see how the 2 failed tests could be related to this MR ? Thanks ! |
Seems like the GKE failure was caused by a connectivity blip with kube-apiserver. Restarting to be sure. /test-gke The k8s-1.21-kernel-4.19 failure seems to be known flake #12690. |
The networks used by cilium (pod range, etc.) must be routed to the
nodes. One possibility of announcing the ranges is to add them to the
lo
interface. Then, a specific route-map on the local router will announceall the networks belonging to an interface.
However, when adding an IP or a range to an interface, the kernel
automatically adds a route to it like so:
this metric corresponds to
IP6_RT_PRIO_ADDRCONF = 256
.The problem arises the moment cilium adds these routes to the cilium host
device. If a metric is not specified (by default 0), then the kernel will use
IP6_RT_PRIO_USER = 1024
, which won't take precedence over the aboveroute.
We thus introduce the
--route-metric
param which allows overridingthis metric. If the param is not used, the default metrics won't change.
Fixes: #16539
Signed-off-by: Frank Villaro-Dixon frank.villaro@infomaniak.com