Commit Graph
47 Commits
Author SHA1 Message Date
Antonin StefanuttiandGitHub 3801b090d6 Upgrade Kubernetes to v1.30.7 (#2332)
* Upgrade Kubernetes to v1.30.7

Signed-off-by: Antonin Stefanutti <[email protected]>

* Use typed event handlers and predicates in job controllers

Signed-off-by: Antonin Stefanutti <[email protected]>

* Re-organize pkg/common/util/reconciler.go

Signed-off-by: Antonin Stefanutti <[email protected]>

* Update installation instructions in README

Signed-off-by: Antonin Stefanutti <[email protected]>

---------

Signed-off-by: Antonin Stefanutti <[email protected]>
2024-11-27 15:05:54 +00:00
Sandipan PandaandGitHub 9422bd3baa Update JAX image to use image published by Kubeflow (#2264)
* Use JAX image published by Kubeflow

Signed-off-by: Sandipan Panda <[email protected]>

* Update README to include JAX API Definition

Signed-off-by: Sandipan Panda <[email protected]>

---------

Signed-off-by: Sandipan Panda <[email protected]>
2024-09-20 17:33:29 +00:00
Sandipan PandaandGitHub 4ac84cd4bc Add JAX controller (#2194)
* Add JAX controller

Add JAX controller, controller tests, webhook validations, examples,
e2e tests for JAXJob

Extend the Training Operator Python SDK to simplify the creation and
management of JAXJob resources.

Signed-off-by: Sandipan Panda <[email protected]>

* Add envvar tests

Signed-off-by: Sandipan Panda <[email protected]>

---------

Signed-off-by: Sandipan Panda <[email protected]>
2024-09-20 14:54:30 +00:00
Michał SzadkowskiandGitHub 26c9112c07 [Feature] Support managed by external controller (#2203)
* Introduce ManagedBy field to RunPolicy that is used by each Kubeflow Job Spec

Signed-off-by: Michal Szadkowski <[email protected]>

* Update Kubeflow JOb manifests

Signed-off-by: Michal Szadkowski <[email protected]>

* Update Kubeflow Jobs Reconcile to use ManagedBy field to decide if skip the process

Signed-off-by: Michal Szadkowski <[email protected]>

* job controller test

Signed-off-by: Michal Szadkowski <[email protected]>

* spec validation webhook

Signed-off-by: Michal Szadkowski <[email protected]>

* add manageBy maxLenght const

Signed-off-by: Michal Szadkowski <[email protected]>

* generate new manifest

Signed-off-by: Michal Szadkowski <[email protected]>

* revert webhook formatting

Signed-off-by: Michal Szadkowski <[email protected]>

* Move allowed controllers constants in one place

Signed-off-by: Michal Szadkowski <[email protected]>

* Make validatation for allowed managedBy values

Signed-off-by: Michal Szadkowski <[email protected]>

* Update after controllers constants move

Signed-off-by: Michal Szadkowski <[email protected]>

* Update jobs controller tests

Signed-off-by: Michal Szadkowski <[email protected]>

* Update validateManagedBy webhook

Signed-off-by: Michal Szadkowski <[email protected]>

* Remove validation for the length of ManagedBy field

Signed-off-by: Michal Szadkowski <[email protected]>

* Update after code review

Signed-off-by: Michal Szadkowski <[email protected]>

* Update ManagedBy comment

Signed-off-by: Michal Szadkowski <[email protected]>

* E2E tests for managedBy

Signed-off-by: Michal Szadkowski <[email protected]>

* Update generated files and manifests

Signed-off-by: Michal Szadkowski <[email protected]>

* Rework after code review

Signed-off-by: Michal Szadkowski <[email protected]>

* Revert kustomization change

Signed-off-by: Michal Szadkowski <[email protected]>

* Update job_test and logging

Signed-off-by: Michal Szadkowski <[email protected]>

* Provide immutability check for ManagedBy

Signed-off-by: Michal Szadkowski <[email protected]>

* Avoid making copy of runPolicy

Signed-off-by: Michal Szadkowski <[email protected]>

* Split RunPolicy validators to Update and Create

Signed-off-by: Michal Szadkowski <[email protected]>

* Fix the naming and call validate always

Signed-off-by: Michal Szadkowski <[email protected]>

* Update tests

Signed-off-by: Michal Szadkowski <[email protected]>

---------

Signed-off-by: Michal Szadkowski <[email protected]>
2024-09-18 18:09:27 +00:00
Sandipan PandaandGitHub 08fb25f8a0 Add JAX API (#2163)
Support JAXJob

Signed-off-by: Sandipan Panda <[email protected]>
2024-08-02 03:58:07 +00:00
Tariq HasanandGitHub a2812b5fb4 Remove support for MXJob (#2150)
Signed-off-by: tariq-hasan <[email protected]>
2024-07-28 10:37:56 +00:00
Yuki IwaiandGitHub 096a7bc6ab E2E: Replace outdated images with latest ones (#2083)
Signed-off-by: Yuki Iwai <[email protected]>
2024-04-25 21:54:46 +00:00
Andrey VelichkevichandGitHub a44b9d0b93 [SDK] Add resources per worker for Create Job API (#1990)
* [SDK] Add resources for create Job API

* Fix unbound var

* Assign values in get pod template

* Add torchrun issue

* Test to create PyTorchJob from Image

* Fix e2e to create from image

* Fix condition

* Modify check test conditions
2024-01-18 16:38:59 +00:00
Andrey VelichkevichandGitHub 99a719d266 [SDK] Fix Worker and Master templates for PyTorchJob (#1988) 2024-01-16 19:09:19 +00:00
Andrey VelichkevichandGitHub 16cb71035c Add test to create PyTorchJob from func (#1979)
* Add test to create PyTorchJob from func

* Use unique Job name for each test

* Fix job name in test

* Describe PyTorchJob when test fails

* Skip test for gang scheduling
2024-01-11 16:51:12 +00:00
Johnu GeorgeandGitHub 051a68a3b0 Merge v1.7 branch changes to Main (#1940)
* Update latest training operator images in v1.7 branch (#1881)

* Removing dead code

* Update monitoring guide

* Update latest training operator image

* Update sdk to v1.7.0rc0 (#1882)

* Removing dead code

* Update monitoring guide

* Update latest training operator image

* Update SDK version to v1.7.0rc0

* Update sdk to v1.7.0 (#1939)
2023-11-01 12:31:57 +00:00
Yuki IwaiandGitHub f7892a4214 Use a community hosted image in MXJob E2E (#1928)
Signed-off-by: Yuki Iwai <[email protected]>
2023-10-05 21:08:15 +00:00
Yuki IwaiandGitHub 32b7c1d4c0 Replace XGBoost image for E2E with community hosted (#1922)
Signed-off-by: Yuki Iwai <[email protected]>
2023-09-29 14:41:43 +00:00
af15b0d553 [SDK] Consolidate Naming for CRUD APIs (#1907)
* Add Flake and Black Lint

* Change SDK APIs

* Update E2E tests

* Fix a few function parameters

* Fix black format

* Fix a few comments

* Fix conftest location

* Fix Job kind in tests

* Fix client creation in test

* Fix namespace arg in get_job_conditions

* Update SDK examples with the latest changes

* Rename SDK examples

* Fix black action

* Update checkout action version

Co-authored-by: Yuki Iwai <[email protected]>

* Use Black 23.9.1 version

* Fix GitHub Action for Black

* Add unit test to create PyTorchJob from func

* Rename timeout to wait_timeout

* Validate that Job is not set with other input parameters

* Update black in developer guide

* Remove pip_index_url validation

* Use locals to verify input

* Print Job info when E2E fails

* Remove duplicated delete

---------

Co-authored-by: Yuki Iwai <[email protected]>
2023-09-22 14:27:33 +00:00
Yuki IwaiandGitHub de6d52bf3a Implement suspend semantics (#1859)
Signed-off-by: Yuki Iwai <[email protected]>
2023-07-20 20:25:24 +00:00
Yuki IwaiandGitHub 38092c3b6e Make Condition and ReplicaStatus optional (#1862)
Signed-off-by: Yuki Iwai <[email protected]>
2023-07-13 17:07:25 +00:00
Chitsing KUIandGitHub a81242a4cb Set correct ENV for PytorchJob to support torchrun (#1840)
* fix pytorch WORLD_SIZE env inconsistent

* add correct env node_rank, nnodes for torch

* restore elastic nnproc

* use string for nproc_per_node

* add defaults in api

* add validation for two nproc_per_node, use auto for defaulter

* add ut for defaults and validation

* fix ut

* add doc for nproc_per_node
2023-07-12 17:11:07 +00:00
Yuki IwaiandGitHub 08e96f76c8 Add check pods are not scheduled when testing gang-scheduler integrations in e2e (#1835)
Signed-off-by: Yuki Iwai <[email protected]>
2023-06-18 17:30:38 +00:00
c320716a1a Merge kubeflow/common to training-operator (#1813)
* Support for k8s v1.25 in CI

* Support for k8s v1.25 in CI

* Change k8s api to v1.25

* Upgrade golangci-lint version

* Add changelog

* Update CHANGELOG.md

* Update Changelog

* Merge common repo

* Avoid to depend on local env when installing the code-generators (#1810)

Signed-off-by: Yuki Iwai <[email protected]>

* Make scheduler-plugins the default gang scheduler. (#1747)

Signed-off-by: Syulin7 <[email protected]>

* Fix tests

* Fix merge conflicts

* Fix CI issues

* Fix CI issues

* Fix review comments

* Add contributors in Readme file

* Fix review comments

* Fix review comments

---------

Signed-off-by: Yuki Iwai <[email protected]>
Signed-off-by: Syulin7 <[email protected]>
Co-authored-by: Yuki Iwai <[email protected]>
Co-authored-by: yu lin <[email protected]>
2023-05-31 11:04:04 +00:00
Yuki IwaiandGitHub 1a203355b0 Improve E2E tests for the gang-scheduling (#1801)
Signed-off-by: Yuki Iwai <[email protected]>
2023-05-11 10:30:01 +00:00
nagar-ajayandGitHub 28f900b7cf make timeout configurable from e2e tests (#1787) 2023-03-24 19:29:22 +00:00
nagar-ajayandGitHub 04887cd803 Containerize e2e tests for training operator conformance (#1780)
* docker file to create conformance tests container

* add resources to containers created by test jobs

* use setup.py to install dependencies

* update resources to fix the test in CI

* update resource limits

* update resource limits

* build and publish conformance test image in CI

* fix conformance file path

* fix python lint error

* fix python lint error

* use python 3.10
2023-03-19 18:43:09 +00:00
nagar-ajayandGitHub 3c6950797f Disable istio-sidecar injection (#1778)
* disable istio-sidecar injection for e2e integration tests

* make 'sidecar.istio.io/inject' annotation a constant
2023-03-16 07:38:27 +00:00
nagar-ajayandGitHub 955a71e8ac E2e test in k8s cluster and Namespace option (#1774)
* update mpijob e2e test to use fixtures

* update mxjob e2e test to use fixtures

* update paddlejob e2e test to use fixtures

* update pytorchjob e2e test to use fixtures

* update xgboostjob e2e test to use fixtures

* update tfjob e2e test to use fixtures

* remove training_client fixture

* move conftest to test root dir

* delete only autogenerated test files

* add default namespace option in integration-tests github action
2023-03-15 10:04:10 +00:00
nagar-ajayandGitHub 9de3493e78 Fix XGBoost flaky e2e tests (#1775) 2023-03-14 11:00:24 +00:00
Yuki IwaiandGitHub e08d022a03 Add E2E test for gang-scheduling (#1736)
* Add E2E test for gang-scheduling

Signed-off-by: Yuki Iwai <[email protected]>

* Add a TODO comment for volcano

Signed-off-by: Yuki Iwai <[email protected]>

* Fix some nit

Signed-off-by: Yuki Iwai <[email protected]>

Signed-off-by: Yuki Iwai <[email protected]>
2023-01-24 11:48:24 +00:00
29c3feb9f4 Adopting coschduling plugin (#1724)
* Add scheduler plugin for coscheduling

Signed-off-by: Yuki Iwai <[email protected]>
Co-authored-by: Wang Zhang <[email protected]>
Signed-off-by: Yuki Iwai <[email protected]>

* generate codes

Signed-off-by: Yuki Iwai <[email protected]>

* Add a custom Watcher for scheduler-plugins PodGroup to controllers

Signed-off-by: Yuki Iwai <[email protected]>

* Fix predicates of paddlepaddle-controller for scheduling.volcano.sh/v1beta1 PodGroup

Signed-off-by: Yuki Iwai <[email protected]>

* Upgrade kubeflow/common version to v0.4.6 with HPA changes

Signed-off-by: Yuki Iwai <[email protected]>

Signed-off-by: Yuki Iwai <[email protected]>
Co-authored-by: Wang Zhang <[email protected]>
2023-01-21 17:58:50 +00:00
Andrey VelichkevichandGitHub 38c63d5b35 [SDK] Create Unify Training Client (#1719)
* Remove legacy ksonnet tests

* [SDK] Create Unify Training Client

* Modify E2E tests

* Rename Training to Operator version

* Add missing exception

* Add API server timeout parameter

* Add delete options

* Fix import for V1JobCondition

* Fix container name in e2e tests

* Fix mxnet container

* Import all Kubernetes models

* Update SDK Examples

* Verify other SDK APIs in e2e tests

* Add replica types to const

* Use logging in e2e tests

* Fix logging for status

* Use const for job types
2023-01-17 15:28:20 +00:00
Johnu GeorgeandGitHub 8c07ee0f54 HPA support for PyTorch Elastic (#1701)
* Support for k8s v1.25 in CI

* Support for k8s v1.25 in CI

* Change k8s api to v1.25

* Upgrade golangci-lint version

* Fixes for HPA in pytorchjob

* Common changes
2022-12-21 15:49:13 +00:00
Joeshi KuiandGitHub 483380337a [PaddlePaddle] support paddlejob (#1675)
* support paddlejob

* fix ci

* fix tools diff for ci

* fix ci test

* rm todo

* add e2e test

* fix e2e test

* fix e2e ci

* add paddlejob to kustomize

* set registry to docker.io

* rebase

* add rbac for paddlejob

* add unitest cover container port

* fix rebase

* update Copyright
2022-11-07 20:18:37 +00:00
Johnu GeorgeandGitHub 28f2e4f7ae Update SDK version to 1.5.0 (#1624)
* Adding latest image tag

* Update manifests with latest image tag

* Upgrading sdk to 1.5.0
2022-06-28 16:23:34 +00:00
Johnu GeorgeandGitHub d2986d6db1 MXNet SDK with Status check fix (#1618)
* Adding latest image tag

* Update manifests with latest image tag

* Add MXNet Job SDK

* Fix namespace
2022-06-20 20:00:37 +00:00
Yuki IwaiandGitHub 0166d87791 Add clientset for MPIJob, PytorchJob, MXJob, and XGBoostJob (#1610) 2022-06-14 04:20:31 +00:00
Johnu GeorgeandGitHub c378f8642e Adding MPI python sdk (#1608)
* Adding latest image tag

* Update manifests with latest image tag

* Update k8s dependencies to v0.24.1

* Update manifests

* Update k8s matrix for integration tests

* Update k8s matrix for unit tests

* Fix k8s versions

* Fix version

* Add scripts in separate file

* Fix Makefile

* Cleanup Makefile

* Addressing review comments

* Generating sdk for MPI

* Make list metadata optional

* Adding open gen file

* Commit swagger change

* Adding XGboost python sdk

* Adding MPI python sdk
2022-06-10 11:25:19 +00:00
Johnu GeorgeandGitHub c21c56f9e0 Adding XGboost Python sdk (#1607)
* Adding latest image tag

* Update manifests with latest image tag

* Update k8s dependencies to v0.24.1

* Update manifests

* Update k8s matrix for integration tests

* Update k8s matrix for unit tests

* Fix k8s versions

* Fix version

* Add scripts in separate file

* Fix Makefile

* Cleanup Makefile

* Addressing review comments

* Generating sdk for MPI

* Make list metadata optional

* Adding open gen file

* Commit swagger change

* Adding XGboost python sdk
2022-06-09 21:20:19 +00:00
Johnu GeorgeandGitHub 9a7e72b19e Generating MPI python sdk (#1606)
* Adding latest image tag

* Update manifests with latest image tag

* Update k8s dependencies to v0.24.1

* Update manifests

* Update k8s matrix for integration tests

* Update k8s matrix for unit tests

* Fix k8s versions

* Fix version

* Add scripts in separate file

* Fix Makefile

* Cleanup Makefile

* Addressing review comments

* Generating sdk for MPI

* Make list metadata optional

* Adding open gen file

* Commit swagger change
2022-06-09 12:54:01 +00:00
Johnu GeorgeandGitHub 7de9d6a20e Migrate test framework to GHA (#1603)
* Adding latest image tag

* Update manifests with latest image tag

* Adding integration tests

* Change trigger type
2022-06-02 11:49:52 +00:00
Alex LembiyeuskiandGitHub f7fad2b95b Release Python SDK 1.4.0 (#1541)
* Bump python package and api versions

* Prevent path extension fix from being overriden by code gen

* ./hack/python-sdk/gen-sdk.sh
2022-03-07 09:42:53 +00:00
Ce GaoandGitHub 8082044198 feat(pytorch): Support elastic training (#1453)
* chore: Update codegen and vendor

Signed-off-by: Ce Gao <[email protected]>

* fix: Update git config

Signed-off-by: Ce Gao <[email protected]>

* fix: Codegen

Signed-off-by: Ce Gao <[email protected]>

* feat: Add elastic examples

Signed-off-by: Ce Gao <[email protected]>

* chore: Update go mod

Signed-off-by: Ce Gao <[email protected]>

* chore: Update manifest

Signed-off-by: Ce Gao <[email protected]>

* feat: Implement elstic policy

Signed-off-by: Ce Gao <[email protected]>

* chore: Update vendor

Signed-off-by: Ce Gao <[email protected]>

* chore: Update swagger

Signed-off-by: Ce Gao <[email protected]>

* fix: Address comments

Signed-off-by: Ce Gao <[email protected]>
2021-11-26 06:35:12 +00:00
Alex LembiyeuskiandGitHub 542679ae5d Generate a single swagger.json file for all frameworks (#1437)
* Update tools for swagger generation

* Regenerate SDK

* Cleanup

* Use absolute path for swagger file

* Refactor imports
2021-10-08 19:45:43 -07:00
Alex LembiyeuskiandGitHub 3daf40fe6a Add Python SDK for Kubeflow Training Operator (#1420)
* Add Python SDK for Kubeflow Training Operator

* Update example notebooks

* Update SDK generation tooling and docs

* Re-generate SDK

* Allow to specify container name in 'get_logs' methods

* Generalize job labels

* Check if attribute exists

* Address code review comments
2021-10-03 15:46:49 -07:00
Jack LinandGitHub acee437ca3 Move TF Operator e2e tests to AWS Prow (#1204) 2021-02-08 21:03:52 -08:00
Jack LinandGitHub 36feaf2b23 Migrate controller implementation to kubeflow/common fashion (#1171)
Signed-off-by: ChanYiLin <[email protected]>
2020-08-17 22:37:30 -07:00
Jin Chi HeandKubernetes Prow Robot 0bc41e8fe9 SDK support getting the TFJob training logs (#1130) 2020-01-14 00:07:08 -08:00
Jin Chi HeandKubernetes Prow Robot ee8d099fee Update check status API name (#1117) 2019-12-18 00:41:57 -08:00
Jin Chi HeandKubernetes Prow Robot cfba7579a4 add API to wait for TFJob done (#1116) 2019-12-17 21:35:56 -08:00
Jin Chi HeandKubernetes Prow Robot c69649a30b generate TFJob Python SDK (#1103) 2019-12-09 00:05:10 -08:00