Add StatefulSet workload support to CRUD benchmarking framework#1132
Draft
engineeredcurlz wants to merge 86 commits intomainfrom
Draft
Add StatefulSet workload support to CRUD benchmarking framework#1132engineeredcurlz wants to merge 86 commits intomainfrom
engineeredcurlz wants to merge 86 commits intomainfrom
Conversation
…to test-refactor
nginx-container was hardcoded in deployment template and in create deployment method - add label_selector to parameters - replace nginx-container in deployment.yaml (label_alue) - derive label_value from selector - pass label_selector directly
Uses ready condition instead of available
execute.yml script block that calls statefulset
Verify create_statefulset returns True when wait_for_condition returns True for all Statefulsets
verify create_statefulset returns False when wait_for_condition returns False for all StatefulSets
verify create_statefulset returns False when k8s_client is None and that create_template is never called, confirming the method returns early rather than failing later in execution.
verify create_statefulset returns False when only some StatefulSets succeed.
eb7d48b to
e4f850b
Compare
This file contains hidden or 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
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.
Summary
Implements the
statefulsetworkload type as the second of three planned workload methods (deployment,statefulset,jobs) in the CRUD benchmarking framework.Changes
workload_templates/statefulset.yml— New Kubernetes manifest template for StatefulSets. Includes a headless Service (clusterIP: None) required for stable pod DNS, and usesSTATEFULSET_REPLICASplaceholder distinct from the deployment template.node_pool_crud.py— Newcreate_statefulset()method following the same loop pattern ascreate_deployment. Usesreadyinstead ofavailableas the wait condition since StatefulSets do not support theavailablecondition type.main.py— Addedstatefulsetsubparser with--node-pool-name,--number-of-statefulsets,--replicas, and--manifest-dirarguments. Addedelif command == "statefulset"routing inhandle_workload_operations.steps/engine/crud/k8s/execute.yml— Addedstatefulsetscript block that callspython3 main.py statefulsetwith the appropriate CLI flags. Addednumber_of_statefulsetsparameter.steps/topology/k8s-crud-gpu/execute-crud.yml— Wiresnumber_of_statefulsetsthrough to the engine step.Tests
4 unit tests added to
test_azure_node_pool_crud.py:test_create_statefulset_success— happy path, all StatefulSets succeedtest_create_statefulset_failure— all StatefulSets fail to become readytest_create_statefulset_no_client— returns early when k8s client is unavailabletest_create_statefulset_partial_success— continues on individual failures, returns False on partial successDependencies
This branch is based on
test-refactorand depends on it being merged before this can merge tomain.