Releases: cloudnativelabs/kube-router
v0.2.1
We are excited to bring a new release with great enhancements. Finally kube-router is starting to add support for
IPv6. Its still WIP progress but pretty close to full working functionality. Also kube-router now fully support network policy semantics with addition of support for ipblock and except.
Shout-out to @uablrek for leading the IPv6 effort in kube-router and @jimmy-zh for filling the last remaining gaps to network policies.
Changelog
077ff86 Ipv6; BGP peering (#545)
a47e0f4 Add support for 'except' feature of network policy rule (#543)
05907d8 Ipv6; Support ipset with "family inet6" (#538)
77459dd Add CLI option to toggle disabling of source-dest-check in EC2 (#541)
cadba6c Use ipset to manage multiple CIDRs in a network policy rule (#529)
cd4ad6f update docker build image to go1.10.3 (#535)
c10a615 update vendored gobgp to latest release (#533)
b479f25 Added support for ARCH=s390x (#532)
1b7ae13 make the comments of the iptables rules more accurate and reasonable (#527)
v0.2.0
We are excited to bring the new release
version of kube-router. There were 10 pre-releases from v0.1.0
Here is the quick highlight of enhancements in v0.2.0
from version v0.1.0
- kube-router is refactored to be usable to advertise just service VIP's. Kube-router can used with other CNI's like cillium (for e.g https://docs.cilium.io/en/stable/kubernetes/install/kube-router/), Weave etc
- support for advertising service load-balancer IPs with flag
--advertise-loadbalancer-ip
- various fixes/enhancements to intelligently advertise/withdraw service VIP's (cluster IP, external IP and load balancer IP's) in case of service with
service.Spec.ExternalTrafficPolicy=Local
- support to control on which local IP of the node GoBGP will listen
- ability to enable/disable advertising its pod CIDR to external BGP peers
- bug fixes to BGP graceful restart functionality integrated in kube-router. data-path is not impacted when performing rolling upgrade of kube-router
- better support for the nodes with multiple physical interfaces. Kube-router configures GoBGP such that next hop advertised for a router is an appropriate local IP
Changelog
7496b00 dont shutdown gobgp server if graceful restart is enabled (#526)
02eb11b Sponsorship update (#524)
468f16b Delete CHANGELOG.md (#520)
v0.2.0-beta.10
Enhancements
-
Support to choose a different port for BGP than default value of 179. This opens up possibility to run a different BGP implementation (like for e.g. BIRD) in conjunction with GoBGP running as part of kube-router
An e.g use-case: https://kubernetes.slack.com/archives/C8DCQGTSB/p1533650593000416
-
In case of multiple uplinks to different external peers, next-hop used should be appropriate local IP (instead of hard code node IP as earlier).
--override-nexthop
basically overrides the next hop configured in local RIB with appropriate local ip as next hop when advertising routes to the BGP peers. -
Support for user configurable list of local IP address on which BGP server should listen. This is important in case of nodes with multiple interfaces and multiple external peers.
Changelog
01ec883 prevent IPIP tunnel creation when --override-nexthop=ture (#518)
1db83ad Added support for custom BGP ports with 179 still being default (#492) (#493)
86ba784 Introduces the option --override-nexthop, to override the next hop used in advertised routes (#502)
b76d22f [jjo] ipAddrDel(): also delete VIP local rt addition (#514)
624c74f issue-385: make it optional on which ip address BGP server listens (#473)
94e163b update BGP export policies on endpoints add event (#508)
85d8df4 Improve health check for cache synchronization (#498)
e2ee6a7 Fix blackholing of traffic when using local traffic policy / annotation (#495)
8bed56f processing k8s version for NPC (#488)
f340218 fix case where 1 min unintended delay is added when checking for tunnel interface to come ip in pod (#472)
thanks @jjo @johanot @jimmy-zh @jdconti for the contributions.
v0.2.0-beta.9
v0.2.0-beta.8
This release has a critical fix to network policy implementation and an enhancement to network policy semantics also included several minor fixes.
Thanks to contributions from @johanot @andor44 @lubinsz
Changelog
57f4eea Implemented the use of both namespaceSelector and podSelector in network policy peers (#475) (#479)
9934119 Fix nwplcy re-sync issue (#477) (#478)
3a09fda enable build on Arm platform (#445)
17f92de Health 1 (#463)
58da2d4 Fix for network policy connection refused issue (#461) (#471)
7c21815 Report delay metrics as seconds, not nanos (#465)
v0.2.0-beta.7
We are excited to release a new version of kube-router. Kube-router now can be used with other CNI's like Flannel/Weave to advertise service VIP's to routers in your network fabric.
Set below flag to false
--enable-cni Enable CNI plugin. Disable if you want to use kube-router features alongside another CNI plugin. (default true)
and enable one the flags as per your requirement.
--advertise-cluster-ip Add Cluster IP of the service to the RIB so that it gets advertises to the BGP peers.
--advertise-external-ip Add External IP of service to the RIB so that it gets advertised to the BGP peers.
--advertise-loadbalancer-ip Add LoadbBalancer IP of service status as set by the LB provider to the RIB so that it gets advertised to the BGP peers.
--advertise-pod-cidr Add Node's POD cidr to the RIB so that it gets advertised to the BGP peers. (default true)
This release also fixes a regression due to which DSR functionality was not usable.
Changelog
327a46d fix race condition issues with health checks (#460)
5c6a24d Fix NPE when performing cleanup() (#458)
1c7866c Allow CNI plugin to be disabled (#443)
5e4ca29 set iBGP export policies only if its enabled (#453)
0809548 closes #413 (#457)
6887ce7 add proper message when reading pod CIDR from cni conf file (#450)
d63c23a proxy: Fix ineffassign error (#447)
v0.2.0-beta.6
This is a bug-fix release which has two critical bug fixes.
8aa4324 fixes a routing issue where a node missing route entries to talk to pods on other nodes in different subnets.
380a476 fixes an issue where nodes exchanges routes for pod CIDR's immediately as and when a new node comes up.
Changelog
abfb705 services: correct check for inactive service endpoints (#430)
380a476 update export polices onNodeUpdate so the routes are exchanged with new node immediatley (#441)
8aa4324 adds explicit check for existing tunnel to avoid partial matches (#442)
5421068 Print output of ip route
command as string. (#439)
0538a2a perform clean-up of external ip from custom route table for external ip only if the table is not empty (#437)
v0.2.0-beta.5
This release v0.2.0-beta.5
is mainly a bug fix release and includes some critical bug fixes.
- Fixes issue where there is delay of 5 min (default sync period) before external peers get advertised with service VIP's
- On service delete, VIP's associated with service were not withdrawn ealirer.
With the above fixes, external BGP peers should see service VIP's advertised by the kube-router pods instantly and also on service delete routes are withdrwan.
-
Also included are patches that control source IP used for the traffic send over tunnel interface. Always node IP is used as source IP address when sending traffic over IPIP tunnel interfaces
-
Fixes regression in network policies where is namespace selector in network policy was not honoured
Thanks to @dlamotte for the fixes to handle cleanups of service VIP associated with kube-dummy-if
when service are deleted.
Changelog
6d86656 fix wrong use of advertiseVIPs where withdrawVIPs is required (#436)
b0733cb update clusteripprefixset so that BGP export policies allow advertising the service VIP (#435)
725bff6 use node ip as source when accessing service VIP's from the node (#433)
359ab1d explicilty specify source IP to use when send traffic over tunnels (#428)
2f39f98 cleanup routing table 79 (external IPs) (#431)
0a9b164 Update kubeadm iptables cleanup command (#424)
09b2f13 fix the wrong lister used (#422)
05b702a [WIP] docs cleanup (#418)
dfca917 proxy: cleanup stale IPs on kube-dummy-if (#417)
e13b771 Add DigitalOcean Sponsorship (#414)
27d51cd add docs/index.md for mkdocs (#416)
v0.2.0-beta.4
Changelog
Ability to enable/disable node advertising its pod CIDR to external BGP peers (#408) - @murali-reddy
split routing controllers to smaller modules by function (#406) - @murali-reddy
break controller package to independent packages (#405) - @murali-reddy
move health, metrics to sepearate packages (#404) - @murali-reddy
update gobgp to d31262d which fixes critical bug with BGP graceful restarts (#403) - @andrewsykim
Full Commit History
89aef2c go-releaser: update binary path
c044162 only push new docker image on release
682c494 remove release task in travis CI (#409)
41332a1 Ability to enable/disable node advertising its pod CIDR to external BGP peers (#408)
23d4362 split routing controllers to smaller modules by function (#406)
05bec8b break controller package to independent packages (#405)
1a0bfa2 move health, metrics to sepearate packages (#404)
6eece2d update gobgp to d31262d for BGP graceful restart fixes (#403)
v0.2.0-beta.3
Kube-router v0.2.0-beta.3
release is mainly follow-up release to the internal code refactoring done in v0.2.0-beta.2
and v0.2.0-beta.1
Breaking Change
Kube-router internal started using SharedInformerFactory
which has a resync period. When resync period value great that 0 is specified, informer in go-client replays all the cached object, resulting in unnessary updates and processing. Since kube-router controllers already has periodc full sync periodic replay of objects is not required. Hence the flag --config-sync-period
is deprecated.
Major Changes
af9875d Replace glide
depenedency management with dep
71d16bf Code is restructured to confirm to standard go projects format
041c055 Optimizations to improve the periodic sync's done by the controllers
a1ecedf Some more optimization to perform full-sync in the controllers only when needed
8c746b2 Make GoBGP
server listen only on node IP