Skip to content

PWX-24444: Antihyperconvergence scheduling of sharedv4 service pods#1222

Merged
pp511 merged 3 commits intomasterfrom
PWX-24444-stork-scheduler-anti-hyperconvergence
Nov 22, 2022
Merged

PWX-24444: Antihyperconvergence scheduling of sharedv4 service pods#1222
pp511 merged 3 commits intomasterfrom
PWX-24444-stork-scheduler-anti-hyperconvergence

Conversation

@pp511
Copy link
Copy Markdown
Contributor

@pp511 pp511 commented Nov 17, 2022

Signed-off-by: Priyanshu Pandey ppandey@purestorage.com

What type of PR is this?

feature
unit-test

What this PR does / why we need it:

  • Introduce a new parameter stork.libopenstorage.org/preferRemoteNodeOnly parameter to be applied to StorageClass.
    Pods using this StorageClass should only be scheduled on the nodes where volume replica nodes do not exist. This behavior should be strictly enforced.
  • For Pods using SharedV4 Service volumes, Stork should give higher score to nodes where SharedV4 Service volumes do not exist.
  • Refer to PWX-24444 for further details

Does this PR change a user-facing CRD or CLI?:
No

Is a release note needed?:

*  Stork will try to schedule application pods using SharedV4 service volumes to run on nodes where volume replica does not exist such that it uses NFS mountpoint and when a failover happens application pods will not be restarted.
* StorageClass parameter "stork.libopenstorage.org/preferRemoteNodeOnly": "true" can be used to strictly enforce this behavior.


Does this change need to be cherry-picked to a release branch?:
yes 2.12.2

Notes For the Reviewer

  • Pod annotation preferLocalNodeOnly doesn't apply for SharedV4 service volumes
  • StorageClass parameter preferRemoteNodeOnly applies only to SharedV4 service volumes
  • In case a Pod uses both SharedV4 service and regular volumes, scoring will prioritize antihyperconvergence based on sharedv4 volume replicas

Signed-off-by: Priyanshu Pandey <ppandey@purestorage.com>
@pp511 pp511 added test release-note Information about this change needs to be added to the release note feature The change adds a new feature labels Nov 17, 2022
@pp511 pp511 requested review from a team and adityadani November 17, 2022 07:46
@cnbu-jenkins
Copy link
Copy Markdown
Collaborator

Can one of the admins verify this patch?

@codecov
Copy link
Copy Markdown

codecov bot commented Nov 17, 2022

Codecov Report

Base: 67.79% // Head: 68.15% // Increases project coverage by +0.36% 🎉

Coverage data is based on head (c19a17d) compared to base (0e32660).
Patch coverage: 91.66% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1222      +/-   ##
==========================================
+ Coverage   67.79%   68.15%   +0.36%     
==========================================
  Files          42       42              
  Lines        4769     4820      +51     
==========================================
+ Hits         3233     3285      +52     
+ Misses       1214     1212       -2     
- Partials      322      323       +1     
Impacted Files Coverage Δ
pkg/extender/extender.go 82.56% <91.66%> (+2.46%) ⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@pp511 pp511 requested a review from diptiranjanpx November 17, 2022 16:36
Copy link
Copy Markdown
Contributor

@adityadani adityadani left a comment

Choose a reason for hiding this comment

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

lgtm! Really good set of UTs.
Please add the release note once you are ready to merge

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature The change adds a new feature release-note Information about this change needs to be added to the release note test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants