Skip to content
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: Added new option enableProvidedByTopology #780

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

lukasmetzner
Copy link
Contributor

We are reintroducing a feature originally present in v2.10.0 to prevent pods from getting stuck in the pending state in clusters with non-cloud nodes. This feature is now optional and can be enabled via the Helm Chart. By default, it remains disabled to avoid compatibility issues with Nomad clusters, which have a different CSI spec implementation.

Learn more about it in #400.

We are reintroducing a feature originally present in v2.10.0 to prevent pods from getting stuck in the `pending` state in clusters with non-cloud nodes. This feature is now optional and can be enabled via the Helm Chart. By default, it remains disabled to avoid compatibility issues with Nomad clusters, which have a different CSI spec implementation.
@lukasmetzner lukasmetzner requested a review from a team as a code owner November 12, 2024 14:48
@lukasmetzner lukasmetzner self-assigned this Nov 12, 2024
Copy link

codecov bot commented Nov 12, 2024

Codecov Report

Attention: Patch coverage is 53.65854% with 19 lines in your changes missing coverage. Please review.

Project coverage is 35.85%. Comparing base (a215384) to head (4f06570).

Files with missing lines Patch % Lines
internal/app/app.go 0.00% 6 Missing ⚠️
cmd/aio/main.go 0.00% 4 Missing ⚠️
cmd/controller/main.go 0.00% 3 Missing ⚠️
cmd/node/main.go 0.00% 3 Missing ⚠️
internal/driver/node.go 72.72% 2 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #780      +/-   ##
==========================================
- Coverage   35.95%   35.85%   -0.10%     
==========================================
  Files          20       20              
  Lines        1847     1874      +27     
==========================================
+ Hits          664      672       +8     
- Misses       1150     1168      +18     
- Partials       33       34       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.


Labels are needed to indicate whether a node is a cloud VM or a dedicated server from Robot. If you are using the `hcloud-cloud-controller-manager` version 1.21.0 or later, these labels are added automatically. Otherwise, you will need to label the nodes manually.
To address this behavior, you can set `enableProvidedByTopology` to `true` in the Helm Chart configuration. This setting prevents pods from being scheduled on nodes — specifically, Robot servers — where Hetzner volumes are unavailable. Enabling this option adds the `instance.hetzner.cloud/provided-by` label to the [allowed topologies](https://kubernetes.io/docs/concepts/storage/storage-classes/#allowed-topologies) section of the storage classes that are created. Additionally, this label is included in the `topologyKeys` section of `csinode` objects, and a node affinity is set up for each persistent volume.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a section that explains the backwards-incompatibility of this change and why users should not modify the setting in existing clusters.

@@ -11,6 +11,9 @@ global:
## - myRegistryKeySecretName
##
imagePullSecrets: []
## @param node.enableProvidedByTopology Enables workaround for upstream Kubernetes issue where nodes without the CSI plugin are still considered for scheduling.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Can you link the upstream kubernetes issue here?
  • Can you explain that this setting should not be modified for existing clusters (and why)

cmd/node/main.go Outdated Show resolved Hide resolved
@lukasmetzner lukasmetzner force-pushed the feat-enable-provided-by-topology branch from 41a3603 to 4f06570 Compare November 12, 2024 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants