128 Commits

Author SHA1 Message Date
Aaron U'Ren
0e94d43d40
doc(user-guide.md): add service IP validation to table of contents 2026-03-15 20:48:39 -05:00
Aaron U'Ren
a1f0b2eea3
fix: validate external IPs and LB IPs against configured ranges
Moves all Service VIP range configurations into pkg/svcip this is where
validation and querying of ranges goes rather than passing each range to
each controller.

It also centralizes the validation logic since NRC and NSC need
basically equivalent logic. It additionally adds a RangeQuerier
interface for the NPC and LBC controllers which require knowing the
literal ranges.
2026-03-15 20:46:54 -05:00
Aaron U'Ren
06cff2e498
doc: remove slashes from headings to fix website generation 2026-03-15 15:11:36 -05:00
Aaron U'Ren
193bef9f15 doc: update architecture diagram with lbc
Also makes it editable in the future by including draw.io diagram in SVG
2026-03-15 12:29:17 -07:00
Aaron U'Ren
4ff7c86060 doc: add a statement about supported versions of kube-router 2026-03-15 12:29:17 -07:00
Aaron U'Ren
1df7ecde9c doc: add table of contents to long markdown files 2026-03-15 12:29:17 -07:00
Aaron U'Ren
2f26e67e6b doc(troubleshoot.md): add content to the guide 2026-03-15 12:29:17 -07:00
Aaron U'Ren
3e193a74a7 doc: correct spelling and grammar mistakes 2026-03-15 12:29:17 -07:00
Aaron U'Ren
06b0b746bf doc: update and modernize documentation 2026-03-15 12:29:17 -07:00
Aaron U'Ren
b5b1081679 doc(development): update / clarify development / contribution practices 2026-03-15 12:29:17 -07:00
Aaron U'Ren
f05ae5a1a3
doc(metrics.md): replace controller_bgp_peers -> bgp_peer_info 2026-03-07 22:45:38 -06:00
Aaron U'Ren
fef6c4f377 doc(user-guide.md): use obvious kubernetes master port 2026-01-11 18:09:06 -06:00
Cat C
9e091b8875 feat(NRC): This commit adds support for a consolidated annotation for configuring
a node's BGP peer settings while maintaining backwards support for the existing
annotations to address #1393.
2025-12-15 22:46:22 -06:00
xyb
8628aed178 doc(kubeadm.md): correct kube-proxy image address to match the one used
in crt run command.
2025-10-11 08:21:11 -05:00
Aaron U'Ren
ec5c41db13 feat(markdown): update linter from 0.39.0 -> 0.45.0 2025-09-20 16:30:54 -05:00
Richard Kojedzinszky
766627645e feat(nsc): collect service statistics on demand 2025-09-01 21:04:49 -05:00
Aaron U'Ren
d8cac914ab feat(options): allow disabling GoBGP grpc port 2025-03-30 19:40:16 -05:00
Aaron U'Ren
de3e2186a1 feat(options): add flag for GoBGP grpc port 2025-03-30 19:40:16 -05:00
Jussi Nummelin
14a9e80e74 Enhance DSR docs aroung CRI socket mounting
Change the mount examples to use whole directory as the socket file might change during runtime and thus mounting the single file might break the behaviour in case of container runtime restarts.

Also simplified all the examples to use containerd as CRI as it's probably the most used CRI.

Signed-off-by: Jussi Nummelin <jnummelin@mirantis.com>
2024-09-12 16:56:02 -05:00
Billie Cleek
c0fd658d4c docs: fix annotation casing 2024-05-18 20:18:58 -05:00
Billie Cleek
9741733cca docs: improve scheduler docs
Fix a broken link and edit for active voice.

Document how to configure a service to use the maglev scheduler.
2024-05-18 20:18:58 -05:00
Aaron U'Ren
e40f46edbf fix(user-guide.md): update cleanup example 2024-04-26 14:16:09 -05:00
Jean-Philippe Evrard
4b011db7e8 Fix typo 2024-04-20 09:17:00 -05:00
Aaron U'Ren
1db3438b38
fix: rt_tables -> rt-tables in daemonset examples 2024-03-30 14:24:58 -05:00
Aaron U'Ren
70920609dc fix(rt_tables): add path fallback logic
Ever since version v6.5.0 of iproute2, iproute2 no longer automatically
creates the /etc/iproute2 files, instead preferring to add files to
/usr/lib/iproute2 and then later on /usr/share/iproute2.

This adds fallback path matching to kube-router so that it can find
/etc/iproute2/rt_tables wherever it is defined instead of just failing.

This also means people running kube-router in containers will need to
change their mounts depending on where this file is located on their
host OS. However, ensuring that this file is copied to `/etc/iproute2`
is a legitimate way to ensure that this is consistent across a fleet of
multiple OS versions.
2024-03-25 18:56:23 -05:00
Aaron U'Ren
614d47285c doc(DSR): add /etc/iproute2/rt_tables caveat 2024-03-19 07:13:40 -05:00
Aaron U'Ren
cff45a66a4
docs(index.md): improve styling 2024-03-17 14:39:19 -05:00
Aaron U'Ren
dda7ce6182 doc(cni): CNI requirements and install process 2024-01-31 14:40:45 -06:00
Aaron U'Ren
98eea791d1 doc(user-guide.md): add info about traffic policies 2024-01-24 09:05:24 -08:00
Aaron U'Ren
ced5102d99 feat(NSC): add IPVS service timeouts
This is a feature that has been requested a few times over the years and
would bring us closer to feature parity with other k8s network
implementations for service proxy.
2023-12-26 14:26:11 -06:00
Jason Piper
fcf0ad913d prometheus metrics: add option to specify listen address
In the situation that you have multiple interfaces/IP addresses,
we want to be able to specify which one we want to expose the
prometheus metrics on.
2023-11-05 18:49:13 -06:00
Aaron U'Ren
9d6b647457
doc(user-guide): remove bootkube, add k3s
Bootkube has been deprecated upstream, so its likely a lot less relevant
than it used to be when this doc was created.

Add that k3s uses our network policy implementation.
2023-10-21 18:15:43 -05:00
Aaron U'Ren
dad4991d85 doc: update and format all documentation 2023-10-19 18:22:35 -05:00
Aaron U'Ren
644268961a doc(user-guide.md): update formatting 2023-10-19 16:51:21 -05:00
Aaron U'Ren
dbd741a5b4 doc(introduction.md): update and format 2023-10-19 16:51:21 -05:00
Aaron U'Ren
43791045b6 doc(generic.md): update and format
Fixes: #1546
2023-10-19 16:51:21 -05:00
Aaron U'Ren
1957907b67 doc(kubeadm.md): update and format 2023-10-19 16:51:21 -05:00
Aaron U'Ren
34dd6409ee
doc(ipv6): update for v2.0.0 release 2023-10-07 15:24:01 -05:00
Erik Larsson
afdf553fa8 add loadbalancer address allocator
This adds a simple controller that will watch for services of type LoadBalancer
and try to allocated addresses from the specified IPv4 and/or IPv6 ranges.
It's assumed that kube-router (or another network controller) will announce the addresses.

As the controller uses leases for leader election and updates the service status new
RBAC permissions are required.
2023-10-07 08:52:31 -05:00
Aaron U'Ren
7699d165da doc(tunnels.md): add info about changing live clusters 2023-10-07 08:52:31 -05:00
Aaron U'Ren
ddf857de3a doc(tunnel): add information about tunnels
* Reflow existing documentation to fit markdown standards
* Adds caveats about Azure
* Gives information about tunnel types in kube-router
2023-10-07 08:52:31 -05:00
Aaron U'Ren
bac4ae6299 fix(FoU): add docs, sanity checking, and logic reduction 2023-10-07 08:52:31 -05:00
Kartik Raval
6ce37e6167 Support for FoU encapsulation for IPIP tunnel 2023-10-07 08:52:31 -05:00
Erik Larsson
76ffcbdb13 add generation of router id based on hash of primary IP
When enabled, generate the router id by hashing the primary IP.
With this no explicit router id has to be provided on IPv6-only clusters.

Signed-off-by: Erik Larsson <who+github@cnackers.org>
2023-10-07 08:52:31 -05:00
Aaron U'Ren
a2bb2ba880 doc(bgp.md): clean up grammar and syntax 2023-10-07 08:52:31 -05:00
Aaron U'Ren
b3e0768281 fix(options): make clusterIP specification similar to other options 2023-10-07 08:52:31 -05:00
Thomas Ferrandiz
6fea9c2d19 Validate that ClusterIP service range type matches the configuration
and update documentation
2023-10-07 08:52:31 -05:00
Thomas Ferrandiz
5b7da83c25 disable ipv6 by default 2023-10-07 08:52:31 -05:00
Michal Rostecki
5d04a9fd97 netpol: Add dual-stack support
This change allows to define two cluster CIDRs for compatibility with
Kubernetes dual-stack, with an assumption that two CIDRs are usually
IPv4 and IPv6.

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
2023-10-07 08:52:31 -05:00
guoguangwu
b084c2aebc fix: available typo
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-09-03 18:37:49 -05:00