feat(api): BREAKING CHANGE – Remove ElasticPolicy API (#3235)

Signed-off-by: Andrey Velichkevich <[email protected]>
This commit is contained in:
Andrey Velichkevich
2026-02-24 20:58:47 +00:00
committed by GitHub
parent a671d3d82c
commit 60004df3d3
20 changed files with 57 additions and 2443 deletions
-1
View File
@@ -374,7 +374,6 @@ from kubeflow_trainer_api.models.trainer_v1alpha1_pod_template_override import T
from kubeflow_trainer_api.models.trainer_v1alpha1_pod_template_override_target_job import TrainerV1alpha1PodTemplateOverrideTargetJob
from kubeflow_trainer_api.models.trainer_v1alpha1_pod_template_spec_override import TrainerV1alpha1PodTemplateSpecOverride
from kubeflow_trainer_api.models.trainer_v1alpha1_runtime_ref import TrainerV1alpha1RuntimeRef
from kubeflow_trainer_api.models.trainer_v1alpha1_torch_elastic_policy import TrainerV1alpha1TorchElasticPolicy
from kubeflow_trainer_api.models.trainer_v1alpha1_torch_ml_policy_source import TrainerV1alpha1TorchMLPolicySource
from kubeflow_trainer_api.models.trainer_v1alpha1_train_job import TrainerV1alpha1TrainJob
from kubeflow_trainer_api.models.trainer_v1alpha1_train_job_list import TrainerV1alpha1TrainJobList
@@ -20,7 +20,6 @@ import json
from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
from kubeflow_trainer_api.models.io_k8s_apimachinery_pkg_util_intstr_int_or_string import IoK8sApimachineryPkgUtilIntstrIntOrString
from kubeflow_trainer_api.models.trainer_v1alpha1_torch_elastic_policy import TrainerV1alpha1TorchElasticPolicy
from typing import Optional, Set
from typing_extensions import Self
@@ -28,9 +27,8 @@ class TrainerV1alpha1TorchMLPolicySource(BaseModel):
"""
TorchMLPolicySource represents a PyTorch runtime configuration.
""" # noqa: E501
elastic_policy: Optional[TrainerV1alpha1TorchElasticPolicy] = Field(default=None, description="elasticPolicy defines the Elastic policy for the PyTorch training.", alias="elasticPolicy")
num_proc_per_node: Optional[IoK8sApimachineryPkgUtilIntstrIntOrString] = Field(default=None, description="numProcPerNode is the number of processes per node. This value is inserted into the `--nproc-per-node` argument of the `torchrun` CLI. Supported values: `auto`, `cpu`, `gpu`, or int value. Defaults to `auto`.", alias="numProcPerNode")
__properties: ClassVar[List[str]] = ["elasticPolicy", "numProcPerNode"]
__properties: ClassVar[List[str]] = ["numProcPerNode"]
model_config = ConfigDict(
populate_by_name=True,
@@ -71,9 +69,6 @@ class TrainerV1alpha1TorchMLPolicySource(BaseModel):
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of elastic_policy
if self.elastic_policy:
_dict['elasticPolicy'] = self.elastic_policy.to_dict()
# override the default output from pydantic by calling `to_dict()` of num_proc_per_node
if self.num_proc_per_node:
_dict['numProcPerNode'] = self.num_proc_per_node.to_dict()
@@ -89,7 +84,6 @@ class TrainerV1alpha1TorchMLPolicySource(BaseModel):
return cls.model_validate(obj)
_obj = cls.model_validate({
"elasticPolicy": TrainerV1alpha1TorchElasticPolicy.from_dict(obj["elasticPolicy"]) if obj.get("elasticPolicy") is not None else None,
"numProcPerNode": IoK8sApimachineryPkgUtilIntstrIntOrString.from_dict(obj["numProcPerNode"]) if obj.get("numProcPerNode") is not None else None
})
return _obj