-
Notifications
You must be signed in to change notification settings - Fork 115
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
feat(load-balancer): ignore nodes that don't use known provider IDs #780
Merged
lukasmetzner
merged 5 commits into
main
from
530-featload-balancer-ignore-nodes-that-dont-use-known-provider-ids
Nov 20, 2024
Merged
feat(load-balancer): ignore nodes that don't use known provider IDs #780
lukasmetzner
merged 5 commits into
main
from
530-featload-balancer-ignore-nodes-that-dont-use-known-provider-ids
Nov 20, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
lukasmetzner
temporarily deployed
to
e2e-robot
November 5, 2024 13:11 — with
GitHub Actions
Inactive
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #780 +/- ##
==========================================
- Coverage 70.45% 69.93% -0.53%
==========================================
Files 31 31
Lines 3226 3250 +24
==========================================
Hits 2273 2273
- Misses 779 803 +24
Partials 174 174 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
lukasmetzner
temporarily deployed
to
e2e-robot
November 19, 2024 11:57 — with
GitHub Actions
Inactive
lukasmetzner
temporarily deployed
to
e2e-robot
November 19, 2024 13:06 — with
GitHub Actions
Inactive
lukasmetzner
force-pushed
the
530-featload-balancer-ignore-nodes-that-dont-use-known-provider-ids
branch
from
November 19, 2024 14:16
6c17332
to
b79c64f
Compare
lukasmetzner
temporarily deployed
to
e2e-robot
November 19, 2024 14:16 — with
GitHub Actions
Inactive
apricote
reviewed
Nov 19, 2024
jooola
reviewed
Nov 19, 2024
lukasmetzner
temporarily deployed
to
e2e-robot
November 20, 2024 07:57 — with
GitHub Actions
Inactive
lukasmetzner
temporarily deployed
to
e2e-robot
November 20, 2024 09:03 — with
GitHub Actions
Inactive
With this feature the load balancer is more resilient to hybrid clusters as it skips nodes with unkown provider ids.
Updated table-driven tests to validate the new error type specifically, instead of merely checking for the presence of an error.
Co-authored-by: Jonas L. <[email protected]>
lukasmetzner
force-pushed
the
530-featload-balancer-ignore-nodes-that-dont-use-known-provider-ids
branch
from
November 20, 2024 09:03
54e55c5
to
a76140c
Compare
lukasmetzner
had a problem deploying
to
e2e-robot
November 20, 2024 09:03 — with
GitHub Actions
Error
lukasmetzner
force-pushed
the
530-featload-balancer-ignore-nodes-that-dont-use-known-provider-ids
branch
from
November 20, 2024 09:07
a76140c
to
b8681d8
Compare
lukasmetzner
had a problem deploying
to
e2e-robot
November 20, 2024 09:07 — with
GitHub Actions
Error
lukasmetzner
force-pushed
the
530-featload-balancer-ignore-nodes-that-dont-use-known-provider-ids
branch
from
November 20, 2024 09:08
b8681d8
to
1364d19
Compare
lukasmetzner
temporarily deployed
to
e2e-robot
November 20, 2024 09:08 — with
GitHub Actions
Inactive
apricote
approved these changes
Nov 20, 2024
lukasmetzner
deleted the
530-featload-balancer-ignore-nodes-that-dont-use-known-provider-ids
branch
November 20, 2024 11:39
This was referenced Nov 19, 2024
lukasmetzner
pushed a commit
that referenced
this pull request
Nov 26, 2024
<!-- section-start changelog --> ### Feature Highlights & Upgrade Notes #### Load Balancer IPs set to Private IPs If networking support is enabled, the load balancer IPs are now populated with the private IPs, unless the `load-balancer.hetzner.cloud/disable-private-ingress` annotation is set to `true`. Please make sure that you configured the annotation according to your needs, for example if you are using `external-dns`. #### Provided-By Label We introduced a the label `instance.hetzner.cloud/provided-by`, which will be automatically added to all **new** nodes. This label can have the values `cloud` or `robot` to distinguish between our products. We use this label in the csi-driver to ensure the daemonset is only running on cloud nodes. We recommend to add this label to your existing nodes with the appropriate value. - `kubectl label node $CLOUD_NODE_NAME instance.hetzner.cloud/provided-by=cloud` - `kubectl label node $ROBOT_NODE_NAME instance.hetzner.cloud/provided-by=robot` #### Load Balancer IPMode Proxy Kubernetes KEP-1860 added a new field to the Load Balancer Service Status that allows us to mark if the IP address we add should be considered as a Proxy (always send traffic here) and VIP (allow optimization by keeping the traffic in the cluster). Previously Kubernetes considered all IPs as VIP, which caused issues when when the PROXY protocol was in use. We have previously recommended to use the annotation `load-balancer.hetzner.cloud/hostname` to workaround this problem. We now set the new field to `Proxy` if the PROXY protocol is active so the issue should no longer appear. If you only added the `load-balancer.hetzner.cloud/hostname` annotation for this problem, you can remove it after upgrading. Further information: - kubernetes/enhancements#1860 - #160 (comment) ### Features - **service**: Specify private ip for loadbalancer (#724) - add support & tests for Kubernetes 1.31 (#747) - **helm**: allow setting extra pod volumes via chart values (#744) - **instance**: add label to distinguish servers from Cloud and Robot (#764) - emit event when robot server name and node name mismatch (#773) - **load-balancer**: Set IPMode to "Proxy" if load balancer is configured to use proxy protocol (#727) (#783) - **routes**: emit warning if cluster cidr is misconfigured (#793) - **load-balancer**: ignore nodes that don't use known provider IDs (#780) - drop tests for kubernetes v1.27 and v1.28 ### Bug Fixes - populate ingress private ip when disable-private-ingress is false (#715) - wrong version logged on startup (#729) - invalid characters in label instance-type of robot servers (#770) - no events are emitted as broadcaster has no sink configured (#774) ### Kubernetes Support This version was tested with Kubernetes 1.29 - 1.31. Furthermore, we dropped v1.27 and v1.28 support. <!-- section-end changelog --> --- <details> <summary><h4>PR by <a href="https://github.com/apricote/releaser-pleaser">releaser-pleaser</a> 🤖</h4></summary> If you want to modify the proposed release, add you overrides here. You can learn more about the options in the docs. ## Release Notes ### Prefix / Start This will be added to the start of the release notes. ```rp-prefix ### Feature Highlights & Upgrade Notes #### Load Balancer IPs set to Private IPs If networking support is enabled, the load balancer IPs are now populated with the private IPs, unless the `load-balancer.hetzner.cloud/disable-private-ingress` annotation is set to `true`. Please make sure that you configured the annotation according to your needs, for example if you are using `external-dns`. #### Provided-By Label We introduced a the label `instance.hetzner.cloud/provided-by`, which will be automatically added to all **new** nodes. This label can have the values `cloud` or `robot` to distinguish between our products. We use this label in the csi-driver to ensure the daemonset is only running on cloud nodes. We recommend to add this label to your existing nodes with the appropriate value. - `kubectl label node $CLOUD_NODE_NAME instance.hetzner.cloud/provided-by=cloud` - `kubectl label node $ROBOT_NODE_NAME instance.hetzner.cloud/provided-by=robot` #### Load Balancer IPMode Proxy Kubernetes KEP-1860 added a new field to the Load Balancer Service Status that allows us to mark if the IP address we add should be considered as a Proxy (always send traffic here) and VIP (allow optimization by keeping the traffic in the cluster). Previously Kubernetes considered all IPs as VIP, which caused issues when when the PROXY protocol was in use. We have previously recommended to use the annotation `load-balancer.hetzner.cloud/hostname` to workaround this problem. We now set the new field to `Proxy` if the PROXY protocol is active so the issue should no longer appear. If you only added the `load-balancer.hetzner.cloud/hostname` annotation for this problem, you can remove it after upgrading. Further information: - kubernetes/enhancements#1860 - #160 (comment) ``` ### Suffix / End This will be added to the end of the release notes. ```rp-suffix ### Kubernetes Support This version was tested with Kubernetes 1.29 - 1.31. Furthermore, we dropped v1.27 and v1.28 support. ``` </details> Co-authored-by: releaser-pleaser <>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With this feature the load balancer is more resilient to hybrid clusters as it skips nodes with unkown provider ids.