Notable Changes
- Greatly Fixed and Improved Hairpinning:
- Reduced the number of iptables rules when Hairpinning is enabled by ensuring it is only enabled on local nodes (see: #1208)
- Fixed an issue where hairpinning rules weren't being updated on service / endpoint updates (see: #1200)
- Fixed issue where hairpinning rules weren't being regenerated correctly (see: #1200)
- DSR Fixes
- Fixed an issue where sometimes FWMarks generated for DSR would collide
- Fixed issue where DSR mangle table definitions were not being cleaned up
- Improved efficiency of kube-router's advertisements with iBGP peers (see: #1188 thanks to @lx1036 )
- Fixed issue where peer might not be seen correctly as established due to a bad double-negative condition (see: #1184 thanks to @lx1036 )
- Updated from GoLang 1.16 to 1.17
- Updated Alpine base container from 3.14 to 3.15
- Updated GoBGP library from v2.29.0 to v2.34.0
- Removed duplicate metrics controller_iptables_sync_total_time & controller_iptables_sync_total_count (see: #1216)
- Reduced error spam for condition that wasn't really an error case when looking for FWMarks for DSR services
Changelog
- a1b7651 go.mod: Bump a couple of golang dependencies
- c3d260d build(deps): bump github.com/aws/aws-sdk-go from 1.42.24 to 1.42.25
- 0752e9a build(deps): bump k8s.io/klog/v2 from 2.40.0 to 2.40.1
- 5e7c01e build(deps): bump github.com/aws/aws-sdk-go from 1.42.23 to 1.42.24
- 1c32d1a build(deps): bump k8s.io/klog/v2 from 2.30.0 to 2.40.0
- 6808268 build(deps): bump github.com/docker/docker
- fa2da0a pkg/cri: Replace deprecated grpc.WithInsecure
- a9f76be build(deps): bump google.golang.org/grpc from 1.42.0 to 1.43.0
- 3c968d9 build(deps): bump github.com/aws/aws-sdk-go from 1.42.20 to 1.42.23
- 2bf4c70 Bump to go 1.17.5 / alpine 3.15
- a9f0084 Revert "feat(metrics): add more iptables sync metrics" (#1216)
- b746897 feat(nsc): only hairpin endpoints on local node (#1208)
- 51a6be3 Update to gobgp-2.34.0
- 8e9dfcd build(deps): bump github.com/aws/aws-sdk-go from 1.42.18 to 1.42.20
- 2ca39f1 fix(nsc): properly check hairpinning rule
- 146786a fix(nsc): sync hairpinning on service modification
- 8f13f06 fix(nsc): don't overwrite err & add comments
- 9ca012c build(deps): bump google.golang.org/grpc from 1.41.0 to 1.42.0
- 51a23d1 build(deps): bump github.com/docker/docker
- b5f6978 build(deps): bump github.com/aws/aws-sdk-go from 1.38.70 to 1.42.18
- 4b5f3f4 build(deps): bump github.com/containernetworking/plugins
- 81be1d8 build(deps): bump k8s.io/cri-api from 0.21.4 to 0.22.4
- f650d23 build(deps): bump k8s.io/client-go from 0.21.4 to 0.22.4
- fe65d4c build(deps): bump github.com/onsi/gomega from 1.11.0 to 1.17.0
- 5101a4f fix(nsc): remove error for lookupFWMarkByService
- bf325e1 fix(go.mod): update image-spec v1.0.2
- 4c86d3d fix(go.mod): update containerd to v1.5.8
- b9a9246 fix(lint): don't error on deprecated protobuf funcs
- 9fd1749 fix(go.mod): add google.golang.org/protobuf v1.26.0
- c2649f5 build(deps): bump github.com/golang/protobuf from 1.4.3 to 1.5.2
- b088279 Fix typo in filter rule comment
- 73b7c22 fix(bgp policy): sort the slice items before deep equal(#1188)
- 8e7d585 fix(bgp): use PeerState_ESTABLISHED logic like function name(#1184)
- bee2c20 fix bug when adding ip rule for fwmark (#1178)
- 55a0dd1 Update golang to v1.16.9
- 6056080 Update gobgp to v2.32.0
- 8dacef8 go.mod: Update dependencies
- b24cf26 feat(README): add go report card status
- c3f90c5 Fix Misc DSR Issues (#1174)
- 8572f3a fact(hairpin): remove one last direct ref of KUBE-ROUTER-HAIRPIN
- 5e1d033 fix(sysctl): revert is fatal check for some conditions
- feb16d0 doc(NSC): add some comments around DSR
- 8f3861d fact(sysctl): consolidate sysctl usage into utils
- da5f8e0 fix: address minor PR feedback and misspells
- 0b145f6 feat(.golangci.yml): enable durationcheck linter
- a604383 feat(Makefile): add lint to the default makefile action
- 419c078 feat(.golangci.yml): enable unparam linter and remediate
- d1218d1 feat(.golangci.yml): enable unconvert linter and remediate
- 1d90e21 feat(.golangci.yml): enable stylecheck linter and remediate
- 86c2229 feat(.golangci.yml): enable additional linters
- 85f2841 feat(.golangci.yml): enable long lines linter and remediate
- ee09adb feat(.golangci.yml): enable additional linters and set max results to always show
- 874a746 feat(.golangci.yml): enable gosec and remediate
- 6208bfa feat(.golangci.yml): enable gomnd and remediate
- 1b4cc61 feat(.golangci.yml): enable exhaustive and remediate
- f52fddd feat(.golangci.yml): enable gocritic and remediate
- d6ccc22 feat(.golangci.yml): enable goconst and remediate
- b8a795e feat(.golangci.yml): enable gochecknoinits and remediate
- c5f4c00 feat(.golangci.yml): enable dupl and remediate
- d1686e7 .golangci.yml: Update allow-list for linters
- 7aeffbc Makefile: Update golangci-lint to 1.42.0
- b4b231f Update to gobgp-2.31.0
- 12bba88 build(deps): bump google.golang.org/grpc from 1.39.1 to 1.40.0