feat(operator): Add tolerations and nodeSelector to the FeatureStore CR - #6741
Conversation
Allow scheduling the operator-managed Deployment on tainted or specific nodes via spec.services.tolerations and spec.services.nodeSelector, alongside the existing affinity and topologySpreadConstraints fields. Signed-off-by: Shumin <shumin.zheng@outlook.com>
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #6741 +/- ##
=======================================
Coverage 46.81% 46.81%
=======================================
Files 415 415
Lines 50399 50399
Branches 7214 7214
=======================================
Hits 23592 23592
Misses 25157 25157
Partials 1650 1650
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
HaoXuAI
left a comment
There was a problem hiding this comment.
Please add Tolerations and NodeSelector to api/v1alpha1/featurestore_types.go, regenerate its deepcopy code and both CRD schemas, and add coverage for the served legacy version. v1alpha1 is still served by the CRD, so users submitting that API version currently cannot configure these fields. Similar cross-version CRD changes in this repository update both API packages.
What this PR does / why we need it
Adds optional pod-level scheduling knobs to the FeatureStore CR so users can place the operator-managed Deployment on specific nodes or on nodes with taints:
Both fields live on
spec.services, alongside the existingaffinityandtopologySpreadConstraints.tolerationsis applied directly to the pod spec.nodeSelectorbecomes the base selector, with the pre-existing per-servercontainerConfigs.nodeSelectoroverlaid on top (per-service wins on key conflicts), preserving the existing merge-with-mutating-webhook behavior.Regenerated artifacts: deepcopy, CRD bases,
dist/install.yaml, the API reference, and the OLM bundle.Which issue(s) this PR fixes
N/A
Checks
git commit -s)Testing Strategy
Testing: added unit coverage for top-level nodeSelector, per-service override precedence, and tolerations.
go build ./...,go vet ./..., and all non-e2e operator test packages pass.