145 Commits
Author SHA1 Message Date
Tariq HasanandGitHub 1f57df4484 ci(boilerplate): enhance copyright boilerplate enforcement (#3665)
* ci(boilerplate): enforce copyright headers on YAML files

Signed-off-by: tariq-hasan <[email protected]>

* ci(boilerplate): enforce year-less header for new files

Signed-off-by: tariq-hasan <[email protected]>

---------

Signed-off-by: tariq-hasan <[email protected]>
2026-07-03 13:39:54 +00:00
Andrey VelichkevichandGitHub 663ae38567 feat(runtimes): Add label to disable webhook validation for Runtimes (#3683)
* feat(runtimes): Add label to disable webhook validation for Runtimes

Signed-off-by: Andrey Velichkevich <[email protected]>

* Use commonLabels to set labels

Signed-off-by: Andrey Velichkevich <[email protected]>

* Set resources to base runtimes in E2Es

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix Helm runtime images in e2e

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2026-07-03 13:37:21 +00:00
Amir IbrahimandGitHub 49f4eaadd2 feat: add Flux integration and e2e tests (#3561)
* test: add Flux framework integration and e2e tests

Signed-off-by: Amir380-A <[email protected]>

* fix: fix integration and e2e

Signed-off-by: Amir380-A <[email protected]>

* fix: EOF linting issue

Signed-off-by: Amir380-A <[email protected]>

* chore: add logs for E2E ClusterTrainingRuntimes in Github Actions

Signed-off-by: Amir380-A <[email protected]>

* feat: add Flux runtime to Helm chart

Signed-off-by: Amir380-A <[email protected]>

* fix: fix EOF linting issue

Signed-off-by: Amir380-A <[email protected]>

* fix: install Flux runtime only for E2E tests

Signed-off-by: Amir380-A <[email protected]>

* chore: regenerate Helm chart docs and generated assets

Signed-off-by: Amir380-A <[email protected]>

* fix: retry failed deepspeed CI dependency

Signed-off-by: Amir380-A <[email protected]>

* revert back to the previous commit

Signed-off-by: Amir380-A <[email protected]>

* fix(e2e): install Flux runtime only during E2E setup

Signed-off-by: Amir380-A <[email protected]>

* fix: fix linting issue

Signed-off-by: Amir380-A <[email protected]>

* fix: fix runtimeRef for CI

Signed-off-by: Amir380-A <[email protected]>

* fix: fix flux examples runtimeref

Signed-off-by: Amir380-A <[email protected]>

---------

Signed-off-by: Amir380-A <[email protected]>
Signed-off-by: Amir Ibrahim <[email protected]>
2026-07-02 15:21:31 +00:00
Rob BellandGitHub 71a6215384 fix: use the CI image in helm e2e tests (#3588)
Signed-off-by: Rob Bell <[email protected]>
2026-06-09 12:51:59 +00:00
Tariq HasanandGitHub 9183dfd24f chore(scripts): add copyright boilerplate verification (#3359)
* chore(scripts): add copyright boilerplate verification system

Signed-off-by: tariq-hasan <[email protected]>

* chore(ci): add boilerplate verification to CI pipeline

Signed-off-by: tariq-hasan <[email protected]>

* chore: regenerate files with year-less copyright headers

Signed-off-by: tariq-hasan <[email protected]>

* refactor(boilerplate): simplify verification logic

Signed-off-by: tariq-hasan <[email protected]>

* chore(boilerplate): add missing copyright headers

Signed-off-by: tariq-hasan <[email protected]>

* ci(boilerplate): move verifier to code-quality workflow and run unit tests

Signed-off-by: tariq-hasan <[email protected]>

* feat(boilerplate): accept license headers with any year and remove year validation logic

Signed-off-by: tariq-hasan <[email protected]>

* feat(boilerplate): add copyright headers to generated Python API

Signed-off-by: tariq-hasan <[email protected]>

* refactor(boilerplate): use block-comment header for generated Go files

Signed-off-by: tariq-hasan <[email protected]>

* feat(boilerplate): verify copyright headers in Rust files

Signed-off-by: tariq-hasan <[email protected]>

---------

Signed-off-by: tariq-hasan <[email protected]>
2026-05-29 10:50:56 +00:00
4af1d0a81b feat(ci): add Python dependency scanning to OSV-Scanner workflow (#3530)
* feat(ci): add Python dependency scanning to OSV-Scanner workflow

Add lockfiles and scanning for Python dependencies in the initializers
and python_api. This extends the nightly OSV-Scanner workflow to cover
Python in addition to Go.

- Generate requirements-lock.txt files via pip-compile for:
  - cmd/initializers/dataset/
  - cmd/initializers/model/
  - api/python_api/
- Add osv-scan-python job with SARIF scanning and auto-fix
- Add validate-lockfile.yaml to ensure lockfiles stay in sync on PRs
- Handle both direct and transitive dependency upgrades

Closes #3528

Signed-off-by: Fiona-Waters <[email protected]>

* fix(ci): address review feedback on Python OSV-Scanner workflow

- Fix validate-lockfile false positives by stripping header comments
  before diffing (pip-compile embeds output filename in header)
- Regenerate lockfiles in clean Python 3.12 venv with --strip-extras
  to include all transitive deps and silence pip-tools deprecation warning
- Fix PR body table formatting: use Markdown table rows instead of
  bullet items in both Go and Python auto-fix jobs
- Escape dots in package names for grep/sed regex safety

Signed-off-by: Fiona-Waters <[email protected]>

* fix(ci): address review feedback on OSV-Scanner Python workflow

- Replace shell grep/sed with Python helper script using
  packaging.requirements.Requirement for exact name matching,
  fixing prefix collision (requests vs requests-oauthlib),
  constraint dropping, and extras stripping
- Skip entry when package not found in lockfile after pip-compile
  instead of recording a false version
- Bump actions/setup-python from v5 to v6 for consistency

Signed-off-by: Fiona-Waters <[email protected]>

* fix(ci): pin pip-tools version in CI workflows

Pin pip-tools to 7.4.1 in osv-scanner and validate-lockfile workflows
to mitigate supply-chain risk in workflows with elevated permissions.

Signed-off-by: Fiona-Waters <[email protected]>

* fix(deps): update lockfiles for certifi 2026.5.20

Signed-off-by: Fiona-Waters <[email protected]>

---------

Signed-off-by: Fiona-Waters <[email protected]>

Co-authored-by: Hanzo Dev <[email protected]>
2026-05-20 13:34:59 +00:00
Aniket ShahaandGitHub 16f31d00b9 feat: merge gpu-cluster setup into single e2e script via flag (#3281)
* Refactor and merge setup-gpu-cluster into single script based on flag

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

* Update gpu script to call the older script

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

* merge CPU and GPU E2E workflows into a single file

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

* Remove separate test-e2e-gpu.yaml file

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

* Extra space added back

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

* merge the GPU cluster setup logic into the main e2e script

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

* Delete gpu script

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

* Remove old GPU YAML file

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

* extract repetitive setup steps into reusable composite action

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

* fix: final pipeline configuration and custom template setup

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

* Update python version

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

* fix: restore required checkout step for local actions

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

* style: apply end-of-file pre-commit fixes

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

* Add new line at end of file

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

* Load image structure together

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

* Minor refactoring

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

* Uncomment JAX image pre-load to prevent E2E test timeout

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

* Refactor and update helm test with Oracle runner

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

* Add new line at the end for CI pipeline

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

---------

Signed-off-by: aniket2405 <[email protected]>
2026-05-06 11:44:38 +00:00
Kevin HannonandGitHub 52d7fd69c4 chore: update golangci-linter and kube-api-linter (#3471)
Signed-off-by: Kevin Hannon <[email protected]>
2026-05-05 04:54:27 +00:00
Sameer_YadavandGitHub 919c7fbdf1 feat: add e2e tests to Helm CI workflow (#3253)
* ci(helm): add e2e tests to Helm CI workflow

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

* added delete in clusterrole

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

* Revert Dockerfile base image changes

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

---------

Signed-off-by: Sameer_yadav <[email protected]>
2026-04-17 17:28:48 +00:00
Surya Sameer Datta VaddadiandGitHub bb5f58ea89 chore: Remove Year from copyright (#3276)
* Edit boilerplate

Signed-off-by: Surya Sameer Datta Vaddadi <[email protected]>

* Ran make generate

Signed-off-by: Surya Sameer Datta Vaddadi <[email protected]>

---------

Signed-off-by: Surya Sameer Datta Vaddadi <[email protected]>
2026-04-15 15:27:51 +00:00
Yash AgarwalandGitHub 36f5569c16 feat: add Megatron-Core GPT Tensor Parallelism example notebook (#3201)
* feat: add Megatron-Core GPT Tensor Parallelism example notebook

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

* added megatron notebook to the e2e gpu test

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

* feat: Parameterize Megatron core GPT notebook's tensor parallelism and GPU count, and update the e2e test workflow to pass these parameters.

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

* change the number of gpus to 2

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

* docs: update Megatron GPT tensor parallelism example notebook.

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

* fix: correct minor typos and improve code readability in Megatron-Core GPT notebook

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

* fix: update tensor model parallel size retrieval and improve code clarity in Megatron-Core GPT notebook

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

* fix: correct wording in training function description for clarity in Megatron-Core GPT notebook

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

* feat: add verification step for TrainJob completion in Megatron-Core GPT notebook

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

* fix: use multi-node setup for Megatron TP to work with GPU time-slicing

GPU time-slicing (replicas=2) advertises 2 GPUs to Kubernetes but
exposes only 1 CUDA device inside the container. This caused torchrun
to launch 1 worker (WORLD_SIZE=1), failing Megatron's TP requirement
of world_size >= 2.

Switch from 1 node with 2 GPUs to 2 nodes with 1 GPU each. This
creates 2 pods, each getting 1 time-sliced GPU, giving WORLD_SIZE=2
for tensor parallelism across pods.

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

* fix: use PyTorch devel image for Megatron compile_helpers() support

Megatron-Core's compile_helpers() requires `make` and `gcc` to build
C dataset helpers. The default runtime image doesn't include build
tools. Switch to the devel image which has them pre-installed.

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

* fix: install megatron-core from git for compile_helpers() support

The pip package for megatron-core doesn't include the Makefile and
C source files needed by compile_helpers(). Install from the git
repository instead, which includes all source files for compiling
the C++ dataset helpers required by MockGPTDataset.

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

* fix: install megatron-core from zip archive instead of git

The devel image doesn't have git installed, so pip install from
git+https fails. Use the GitHub zip archive URL instead, which
pip can download and extract directly without needing git.

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

* fix: download Megatron C++ source files for compile_helpers()

The megatron-core pip package excludes the Makefile and helpers.cpp
needed by compile_helpers(). Download these two files from GitHub
at runtime before compilation. Also add pybind11 as an explicit
dependency since it's needed by the Makefile but only included as
a build-time dependency in the pip package.

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

* fix: use correct null tokenizer library name for pip megatron-core

The pip release of megatron-core uses "null" as the tokenizer library
name, while the GitHub main branch uses "null-text". Change to "null"
to match the pip version.

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

* fix: increase wait_for_job_status timeout to 1800s

The megatron training job takes longer than 900s due to pip install,
C++ compilation, and multi-node training setup on time-sliced GPUs.
Increase timeout to 1800s to match PAPERMILL_TIMEOUT.

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

* fix: use runtime image with apt-get for build tools instead of devel image

The devel image (3.5GB) is too slow to pull, causing PAPERMILL_TIMEOUT.
Switch back to the runtime image and install only make and g++ via
apt-get (~50MB). This provides everything compile_helpers() needs
without the overhead of pulling the full devel image.

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

* fix: disable NCCL shared memory to avoid /dev/shm limit in Kubernetes

Kubernetes pods get 64MB /dev/shm by default. NCCL needs more for
its communication buffers, causing checkpoint save to fail with
"Error while creating shared memory segment". Set NCCL_SHM_DISABLE=1
to use network sockets instead.

Also reduce wait_for_job_status timeout to 60s since training
completes quickly and the main wait happens in get_job_logs.

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

* debug: add NCCL_DEBUG=INFO to diagnose /dev/shm failure on node-1

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

* fix: mount /dev/shm as emptyDir to fix NCCL shared memory exhaustion

NCCL proxy service allocates ~33MB per communicator in /dev/shm. The
default Kubernetes /dev/shm is 64MB (Docker default), which is
insufficient for workloads that create multiple NCCL communicators.
Patch ClusterTrainingRuntimes in GPU e2e setup to mount /dev/shm as
a Memory-backed emptyDir, and remove unnecessary NCCL workaround
env vars from the Megatron notebook.

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

* fix: remove dist_checkpointing from Megatron notebook

Megatron-Core dist_checkpointing uses multiprocessing.spawn internally
to create a Manager queue for async writes. The Kubeflow SDK generates
training scripts without an if __name__ == '__main__' guard, so the
spawned child re-imports the script and re-executes the training
function, causing a RuntimeError. Remove the checkpoint step since
training (Steps 1-5) is the core TP demonstration. Also remove unused
imports and fix the GPU prerequisites text.

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

---------

Signed-off-by: XploY04 <[email protected]>
2026-04-10 01:53:18 +00:00
Krishna GuptaandGitHub 513dfbf889 fix(ci): re-enable XGBoost E2E test (#3323)
* test(e2e): re-enable XGBoost E2E test after runtime image publication

Signed-off-by: krishna-kg732 <[email protected]>

* Chore:using test image instead of latest

Signed-off-by: krishna-kg732 <[email protected]>

---------

Signed-off-by: krishna-kg732 <[email protected]>
2026-03-16 17:12:14 +00:00
Akash JaiswalandGitHub 5f8e5d92e2 fix: back to a10-1 for gpu e2e and time slicing (#3322)
* revert: back to a10-1 for gpu e2e

Signed-off-by: Akash Jaiswal <[email protected]>

* hotfix: time sliciing for gpu e2e even if we are using a10.1 gpu

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: formating

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: 2 per gpu

Signed-off-by: Akash Jaiswal <[email protected]>

---------

Signed-off-by: Akash Jaiswal <[email protected]>
2026-03-15 00:46:01 +00:00
Andrey VelichkevichandGitHub b0a27201ec fix(ci): Generate valid release version for Python package (#3333)
Signed-off-by: Andrey Velichkevich <[email protected]>
2026-03-14 13:46:01 +00:00
Rob BellandGitHub 78b4a00929 feat: add support for tracking TrainJob progress and training metrics (#3227)
* feat(api): add progress types to api

Signed-off-by: Rob Bell <[email protected]>

* feat: progress server stub

Signed-off-by: Rob Bell <[email protected]>

* feat: setup tls for server

Signed-off-by: Rob Bell <[email protected]>

* refactor: pull out middleware

Signed-off-by: Rob Bell <[email protected]>

* refactor: remove logger message noise from tests

Signed-off-by: Rob Bell <[email protected]>

* fix: send server error logs to main logger

Signed-off-by: Rob Bell <[email protected]>

* feat: update the trainer status

Signed-off-by: Rob Bell <[email protected]>

* feat: use separate client to avoid impacting main reconciler client-side rate limits

Signed-off-by: Rob Bell <[email protected]>

* feat: configure progress server in helm chart and configmap

Signed-off-by: Rob Bell <[email protected]>

* fix: prevent race condition

Signed-off-by: Rob Bell <[email protected]>

* feat: inject progress runtime config

Signed-off-by: Rob Bell <[email protected]>

* fix: progress client config

Signed-off-by: Rob Bell <[email protected]>

* fix: update generated config

Signed-off-by: Rob Bell <[email protected]>

* feat: validate auth tokens in endpoint

Signed-off-by: Rob Bell <[email protected]>

* test: validate auth tokens in endpoint

Signed-off-by: Rob Bell <[email protected]>

* refactor: tidy tests to use same format as other tests

Signed-off-by: Rob Bell <[email protected]>

* fix: look up the cluster issuer from the service account token

Different clusters can use different issuers so look up the issuer from the trusted in-cluster service account token.

Signed-off-by: Rob Bell <[email protected]>

* refactor: rename authn middleware

Signed-off-by: Rob Bell <[email protected]>

* feat: add authn to status update endpoint

Signed-off-by: Rob Bell <[email protected]>

* refactor: tidy up reading in-cluster service account token

Signed-off-by: Rob Bell <[email protected]>

* fix: rbac permissions

Signed-off-by: Rob Bell <[email protected]>

* fix: better error response

Signed-off-by: Rob Bell <[email protected]>

* refactor: move kubebuilder annotation higher up

Signed-off-by: Rob Bell <[email protected]>

* fix: make lastUpdateTime required

Signed-off-by: Rob Bell <[email protected]>

* chore: fix config tests after rebase

Signed-off-by: Rob Bell <[email protected]>

* test: update config test with new progress server config

Signed-off-by: Rob Bell <[email protected]>

* test: add progress tracking e2e test

Signed-off-by: Rob Bell <[email protected]>

* fix: allow feature gates to be configurable from command line argument

So they can be overridden in e2e tests

Signed-off-by: Rob Bell <[email protected]>

* refactor: reuse shared progress StatusUrl

Signed-off-by: Rob Bell <[email protected]>

* test: tidy up tests

Signed-off-by: Rob Bell <[email protected]>

* refactor: allow plugins to use config

Signed-off-by: Rob Bell <[email protected]>

* refactor: centralise shared constants

Signed-off-by: Rob Bell <[email protected]>

* fix: disable http2 in progress server tls opts if disabled by config

Signed-off-by: Rob Bell <[email protected]>

* fix: minor improvements suggested by copilot

Signed-off-by: Rob Bell <[email protected]>

* chore: rename progress server => status server

Signed-off-by: Rob Bell <[email protected]>

* chore: update type doc

Signed-off-by: Rob Bell <[email protected]>

* chore: update name of feature gate

Signed-off-by: Rob Bell <[email protected]>

* fix: after rebase

Signed-off-by: Rob Bell <[email protected]>

* chore: fix typo

Signed-off-by: Rob Bell <[email protected]>

* chore: rename handler

Signed-off-by: Rob Bell <[email protected]>

* fix: run status server on all replicas

Signed-off-by: Rob Bell <[email protected]>

* fix: deep copy the rest config

Signed-off-by: Rob Bell <[email protected]>

* refactor: use ssa

Signed-off-by: Rob Bell <[email protected]>

* refactor: separate token audience per train job

Signed-off-by: Rob Bell <[email protected]>

* chore: rename status server

Signed-off-by: Rob Bell <[email protected]>

* fix: revert adding status pkg to manifest gen paths

Signed-off-by: Rob Bell <[email protected]>

* chore: update log messages

Signed-off-by: Rob Bell <[email protected]>

* chore: update api docs

Signed-off-by: Rob Bell <[email protected]>

* chore: update format

Signed-off-by: Rob Bell <[email protected]>

* fix: revert inadvertent change

Signed-off-by: Rob Bell <[email protected]>

* chore: update api name and type docs

Signed-off-by: Rob Bell <[email protected]>

* refactor: initialise oidc provider in manager startup

Signed-off-by: Rob Bell <[email protected]>

* fix: allow empty update request

Signed-off-by: Rob Bell <[email protected]>

* fix: wait for server shut down

Signed-off-by: Rob Bell <[email protected]>

* fix: handle missing train job

Signed-off-by: Rob Bell <[email protected]>

* refactor: update env var names

Signed-off-by: Rob Bell <[email protected]>

* chore: rename packages, plugins, feature gate

Signed-off-by: Rob Bell <[email protected]>

* refactor: update env var names

Signed-off-by: Rob Bell <[email protected]>

* chore: regenerate after rebase

Signed-off-by: Rob Bell <[email protected]>

* chore: fixes after rebase

Signed-off-by: Rob Bell <[email protected]>

* chore: minor doc updates

Signed-off-by: Rob Bell <[email protected]>

* chore: rename status server config

Signed-off-by: Rob Bell <[email protected]>

* chore: replace placeholder config with nil

Signed-off-by: Rob Bell <[email protected]>

* chore: revert separate runtime utils package

Signed-off-by: Rob Bell <[email protected]>

* chore: remove unused config from tests

Signed-off-by: Rob Bell <[email protected]>

---------

Signed-off-by: Rob Bell <[email protected]>
2026-03-13 20:01:08 +00:00
f0eb5ec571 chore(deps): Bump Torch to 2.10 version (#3320)
* chore(deps): Bump Torch to 2.10

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update examples/pytorch/image-classification/mnist.ipynb

Signed-off-by: Andrey Velichkevich <[email protected]>

* bump torchao to 0.16

Signed-off-by: Andrey Velichkevich <[email protected]>

* Use Torch 2.9 for TorchTune Trainer

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>

Co-authored-by: Hanzo Dev <[email protected]>
2026-03-13 13:01:23 +00:00
Krishna GuptaandGitHub ccaf20bc20 feat(runtimes): Add XGBoost runtime(KEP-2598) (#3200)
* Add XGBoost runtime plugin scaffold and register in framework

Signed-off-by: Krishna-kg732 <[email protected]>
Signed-off-by: krishna-kg732 <[email protected]>

* regenerated assets

Signed-off-by: Krishna-kg732 <[email protected]>
Signed-off-by: krishna-kg732 <[email protected]>

* Add XGBoost plugin unit tests and update framework test registry

Signed-off-by: Krishna-kg732 <[email protected]>
Signed-off-by: krishna-kg732 <[email protected]>

* added :Runtime image , unit tests for :(Resources are not set, Resources are set in TrainJob) ,using the ContainerTrainerPort instead of default port

Signed-off-by: krishna-kg732 <[email protected]>

* minor changes

Signed-off-by: krishna-kg732 <[email protected]>

* added plainML fallback(JAX+XGBOOST)

Signed-off-by: krishna-kg732 <[email protected]>

* test: add XGBoost runtime resource resolution unit tests

- Add test case for resources set in Runtime only
- Add test case for resources set in both Runtime and TrainJob
- Add xgboost_distributed.yaml ClusterTrainingRuntime manifest
- Update kustomization.yaml with xgboost-runtime image

Addresses feedback from PR #3200 for complete resource resolution test coverage.

Signed-off-by: krishna-kg732 <[email protected]>

* added autogenerat3ed files

Signed-off-by: krishna-kg732 <[email protected]>

* CI fixes

Signed-off-by: krishna-kg732 <[email protected]>

* chore: fix ci lint errors

Signed-off-by: krishna-kg732 <[email protected]>

* Add XGBoost integration and E2E tests, fix Validate guard clause and nil safety

Signed-off-by: krishna-kg732 <[email protected]>

* trigger ci

Signed-off-by: krishna-kg732 <[email protected]>

* fix: Add XGBoost support to test wrapper, CEL validation, and CI publish workflow

- Add XGBoostPolicy() method to MLPolicySourceWrapper for integration tests
- Add has(self.xgboost) to MLPolicy CEL mutual-exclusivity validation rule
- Regenerate CRD manifests with updated CEL rule
- Add xgboost-runtime to build-and-push-images CI workflow
- Add XGBoost image build step to E2E setup script (commented out due to Kind bug)

Signed-off-by: krishna-kg732 <[email protected]>

* docs: Add XGBoost distributed training example notebook

Add example notebook demonstrating distributed XGBoost training using
the Kubeflow Trainer SDK and the xgboost-distributed ClusterTrainingRuntime.

The notebook uses the modern XGBoost Collective API with RabitTracker
for distributed coordination and synthetic classification data.

Signed-off-by: krishna-kg732 <[email protected]>

* test: Skip XGBoost E2E test until runtime image is published

Signed-off-by: krishna-kg732 <[email protected]>

* chore : address review comments

Signed-off-by: krishna-kg732 <[email protected]>

* chore:resolve merge conflicts

Signed-off-by: krishna-kg732 <[email protected]>

---------

Signed-off-by: Krishna-kg732 <[email protected]>
Signed-off-by: krishna-kg732 <[email protected]>
2026-03-10 10:04:42 +00:00
Akash JaiswalandGitHub 7b100896c0 fix: failing e2e and gpu e2e tests (#3234)
Signed-off-by: Akash Jaiswal <[email protected]>
2026-02-23 14:46:47 +00:00
Akash JaiswalandGitHub dc4267f64e feat: replaced vm runner with test gpu arc from cncf (#3067)
* test: gpu based ARC from cncf instead of stanalone vm

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: removed label for gpu e2e test

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: remove delete cluster action

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: rm seperate script, rm path and nvidia smi command for testing

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: using nvkind with sudo

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: move nvkind from noexec to local/bin

Signed-off-by: Akash Jaiswal <[email protected]>

* tmp: install nvkind as from arc is not wroking

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: run the commands as sudo (check https://github.com/NVIDIA/nvkind/issues/48)

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: nvkind as sudo

Signed-off-by: Akash Jaiswal <[email protected]>

* test: ignore the patch error

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: downgrade the version for nvidia ctk

Signed-off-by: Akash Jaiswal <[email protected]>

* add: service restart

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: patch version for nctk

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: command

Signed-off-by: Akash Jaiswal <[email protected]>

* refactor: split into different script

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: transfer to legacy mode

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: legacy mode for nctk

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: downgrade nctk

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: non root kubectl

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: helm dirs

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: refactored the code

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: rm seperate script, migrated to prod gpu arc, and other misc

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: rm sudo for kind

Signed-off-by: Akash Jaiswal <[email protected]>

* add: wait fo qwen to complete

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: fix qwen nb and fix gpu operator to use host driver

Signed-off-by: Akash Jaiswal <[email protected]>

* test: use default value for ntk toolkit

Signed-off-by: Akash Jaiswal <[email protected]>

* hotfix: patch CRDs to run on GPU nodes (Check #3067)

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: the patching to mdoel and initializers

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: single node for gpu e2e test

Signed-off-by: Akash Jaiswal <[email protected]>

* revert: jax eg

Signed-off-by: Akash Jaiswal <[email protected]>

---------

Signed-off-by: Akash Jaiswal <[email protected]>
2026-02-08 21:07:13 +00:00
Tomas TormoandGitHub 62812f9ce3 feat(runtimes): Add JAX training runtime (#3151)
Signed-off-by: mahdikhashan <[email protected]>
Signed-off-by: Tomas Tormo <[email protected]>
2026-02-06 18:15:22 +00:00
Andrey VelichkevichandGitHub 526becfbd6 chore(runtimes): Bump Torch to 2.9.1 version (#3093)
Signed-off-by: Andrey Velichkevich <[email protected]>
2026-01-14 07:48:37 +00:00
M!l!ndandGitHub 65af8b91a9 feat: add VERSION file (#3077)
* feat: add VERSION file and use it  instead of hardcoding

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

* fix: update VERSION file format and adjust API version extraction

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

---------

Signed-off-by: milinddethe15 <[email protected]>
2026-01-09 18:55:23 +00:00
Antonin StefanuttiandGitHub 9519b9960f fix(ci): Fix kube-api-linter install (#3023)
Signed-off-by: Antonin Stefanutti <[email protected]>
2025-12-09 01:46:39 +00:00
Andrey VelichkevichandGitHub e83200385d feat(docs): Add changelog for Kubeflow Trainer v2.1.0 (#2921)
* feat(docs): Add changelog for Kubeflow Trainer v2.1.0

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update changelog and release script for 2.1.0

Signed-off-by: Andrey Velichkevich <[email protected]>

* Clarify on steps

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add cache image info to release doc

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-11-07 08:56:33 +00:00
1fa639c9d1 feat: Adding local execution example notebook (#2907)
* add local docker training example

Signed-off-by: Brian Gallagher <[email protected]>

* feat: Adding local execution example notebook
Co-authored-by Brian Gallagher <[email protected]>

Signed-off-by: Fiona Waters <[email protected]>

---------

Signed-off-by: Brian Gallagher <[email protected]>
Signed-off-by: Fiona Waters <[email protected]>
Co-authored-by: Brian Gallagher <[email protected]>
2025-11-06 00:29:30 +00:00
4e41a4f83f feat(cache): KEP-2655 - Supporting readiness probes on cache nodes (#2904)
Signed-off-by: Akshay Chitneni <[email protected]>
Co-authored-by: Akshay Chitneni <[email protected]>
2025-11-05 18:48:30 +00:00
Antonin StefanuttiandGitHub 7755220575 chore(ci): Enable Kubernetes API Linter (#2858)
* chore(ci): Enable Kubernetes API Linter

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

* lint files

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

* Generate

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

* Review

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

* Fix golangci-lint target

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

* Fix commands max length

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

* Re: Fix golangci-lint target

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

* Enable the integers linter

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

* Disable maxlength linter

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

* make generate

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

* Make fields optional

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

* Fix Suspended field in JobStatus

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

---------

Signed-off-by: Antonin Stefanutti <[email protected]>
2025-10-17 14:40:59 +00:00
9802f954ab feat: KEP-2437 - PodGroup Creation for Volcano Scheduler (#2729)
* feat: api for volcano scheduling plugin

Signed-off-by: Xinmin Du <[email protected]>

* feat: init volcano-plugin

Signed-off-by: Xinmin Du <[email protected]>

* feat: init test file

Signed-off-by: Xinmin Du <[email protected]>

* feat: register volcano plugin

Signed-off-by: Xinmin Du <[email protected]>

* feat: deal with minTaskMember, minMember, NetworkTopo

Signed-off-by: Xinmin Du <[email protected]>

* fix: calculate of minResource

Signed-off-by: Xinmin Du <[email protected]>

* test: build PodGroup test

Signed-off-by: Xinmin Du <[email protected]>

* refactor: separate to 2 prs(build&handler)

Signed-off-by: Xinmin Du <[email protected]>

* test: add test for new&reconcile_builder

Signed-off-by: Xinmin Du <[email protected]>

* fix: typo

Signed-off-by: Xinmin Du <[email protected]>

* fix: trainer/v2 import

Signed-off-by: Xinmin Du <[email protected]>

* fix: networktopo type

Signed-off-by: Xinmin Du <[email protected]>

* fix: OpenAPI validation errors

Signed-off-by: Xinmin Du <[email protected]>

* fix: remove minTaskMembers

Signed-off-by: Xinmin Du <[email protected]>

* test: test coverage 100%

Signed-off-by: Xinmin Du <[email protected]>

* feat: update apis

Signed-off-by: Xinmin Du <[email protected]>

* feat: replace testify

Signed-off-by: Xinmin Du <[email protected]>

* fix: registry Volcano CRDs to the scheme

Signed-off-by: Xinmin Du <[email protected]>

* fix: add volcano to scheme

Signed-off-by: Xinmin Du <[email protected]>

* fix: fix networktopo schema

Signed-off-by: Xinmin Du <[email protected]>

* fix: add networktopo spec in trainer

Signed-off-by: Xinmin Du <[email protected]>

* fix: unit test

Signed-off-by: Xinmin Du <[email protected]>

* feat: import networkTopo directly

Signed-off-by: Xinmin Du <[email protected]>

* fix: make generate

Signed-off-by: Xinmin Du <[email protected]>

* fix: make generate

Signed-off-by: Xinmin Du <[email protected]>

* fix: golangci-lint

Signed-off-by: Xinmin Du <[email protected]>

* fix: golangci-lint

Signed-off-by: Xinmin Du <[email protected]>

* feat: add volcano installation in integration test

Signed-off-by: Xinmin Du <[email protected]>

* fix: filter volcano api

Signed-off-by: Xinmin Du <[email protected]>

* fix: get volcano.podgroup  with local version

Signed-off-by: Xinmin Du <[email protected]>

* fix: init test env with volcano podgroup installed

Signed-off-by: Xinmin Du <[email protected]>

* fix: check plugin in enforcePodgroupPolicy

Signed-off-by: Xinmin Du <[email protected]>

* fix: group-name label in unit test

Signed-off-by: Xinmin Du <[email protected]>

* fix: ReconcilerBuilders

Signed-off-by: Xinmin Du <[email protected]>

* feat: add PodGroupHandler

Signed-off-by: Xinmin Du <[email protected]>

* feat: unit test for handlers

Signed-off-by: Xinmin Du <[email protected]>

* fix: group name annotation

Signed-off-by: Xinmin Du <[email protected]>

* Update hack/swagger/main.go

Co-authored-by: Andrey Velichkevich <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

* fix: no need to delete RBAC

Signed-off-by: Xinmin Du <[email protected]>

* Update pkg/runtime/framework/plugins/volcano/indexer.go

Co-authored-by: Andrey Velichkevich <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

* fix: nil checking for trainjob

Signed-off-by: Xinmin Du <[email protected]>

* Update pkg/runtime/framework/plugins/volcano/volcano.go

Co-authored-by: Andrey Velichkevich <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

* fix: make generate

Signed-off-by: Xinmin Du <[email protected]>

* fix: index conflict

Signed-off-by: Xinmin Du <[email protected]>

* Update pkg/runtime/framework/plugins/coscheduling/coscheduling.go

Co-authored-by: Shao Wang <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

* fix: update volcano to v1.12.2

Signed-off-by: Xinmin Du <[email protected]>

* feat: re-use indexer

Signed-off-by: Xinmin Du <[email protected]>

* feat: add validate

Signed-off-by: Xinmin Du <[email protected]>

* fix: no scheduler when coscheduling is nil

Signed-off-by: Xinmin Du <[email protected]>

* fix: put group-name in annotations

Signed-off-by: Xinmin Du <[email protected]>

* feat: validate if priorityClass installed

Signed-off-by: Xinmin Du <[email protected]>

* feat: propagate annotations to pod

Signed-off-by: Xinmin Du <[email protected]>

* feat: integration test for volcano

Signed-off-by: Xinmin Du <[email protected]>

* fix: golangci-lint check

Signed-off-by: Xinmin Du <[email protected]>

* feat: use shared indexer

Signed-off-by: Xinmin Du <[email protected]>

* feat: remove indexer to runtime/

Signed-off-by: Xinmin Du <[email protected]>

* Update hack/swagger/main.go

Co-authored-by: Yuki Iwai <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

* Update hack/swagger/main.go

Co-authored-by: Yuki Iwai <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

* fix: append owner reference & missing import

Signed-off-by: Xinmin Du <[email protected]>

* fix: rewrite volcano UT

Signed-off-by: Xinmin Du <[email protected]>

* feat: add copyright

Signed-off-by: Xinmin Du <[email protected]>

* fix: sync RBAC to Helm charts

Signed-off-by: Xinmin Du <[email protected]>

* fix: refactor UTs

Signed-off-by: Xinmin Du <[email protected]>

* fix: test validation separately

Signed-off-by: Xinmin Du <[email protected]>

* Update hack/swagger/main.go

Co-authored-by: Yuki Iwai <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

* fix: refactor TestVolcano

Signed-off-by: Xinmin Du <[email protected]>

* fix: refactor TestValidate

Signed-off-by: Xinmin Du <[email protected]>

* Update pkg/runtime/framework/plugins/volcano/volcano_test.go

Co-authored-by: Yuki Iwai <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>

---------

Signed-off-by: Xinmin Du <[email protected]>
Signed-off-by: Du Xinmin <[email protected]>
Co-authored-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Shao Wang <[email protected]>
Co-authored-by: Yuki Iwai <[email protected]>
2025-10-06 05:51:10 +00:00
Antonin StefanuttiandGitHub 7f057acd73 chore(test): Support e2e cluster setup with Podman (#2861)
* chore(test): Support e2e cluster setup with Podman

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

* Fix KinD cluster creation for GPU E2E tests

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

---------

Signed-off-by: Antonin Stefanutti <[email protected]>
2025-10-03 13:38:09 +00:00
Antonin StefanuttiandGitHub afb208d86e chore(operator): Upgrade JobSet to v0.10.1 (#2875)
Signed-off-by: Antonin Stefanutti <[email protected]>
2025-10-03 10:08:08 +00:00
1e69b0fe4d feat: KEP-2655: Add data cache system (#2755)
Signed-off-by: Akshay Chitneni <[email protected]>
Co-authored-by: Akshay Chitneni <[email protected]>
2025-09-22 20:07:18 +00:00
Akash JaiswalandGitHub cbb653e620 feat: qwen 2.5 1.5b runtime, example and fix gpu e2e test (#2835)
* add: qwen 3 1.7b CTR

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: pvc and ctr

Signed-off-by: Akash Jaiswal <[email protected]>

* feat: qwen 2, 1.5b model as example

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: allow pattern and config update

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: test and typo

Signed-off-by: Akash Jaiswal <[email protected]>

* update: qwen3 model

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: add qwen 2.5, fix gpu e2e test and use local images

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: whitespace

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: review suggestions

Signed-off-by: Akash Jaiswal <[email protected]>

* fix

Signed-off-by: Akash Jaiswal <[email protected]>

---------

Signed-off-by: Akash Jaiswal <[email protected]>
2025-09-20 21:02:59 +00:00
Akash JaiswalandGitHub 82ad2deb74 feat: support for managing gpu enabled self runner infra (#2762)
* feat: support for creating and managing gpu cluster

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: makefile bug

Signed-off-by: Akash Jaiswal <[email protected]>

* add: ci action to ask maintainers to add label to when changes are detected

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: fixed issues and cleanup

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: run check on change in pr

Signed-off-by: Akash Jaiswal <[email protected]>

* feat: added seperate workflow for gpu runner

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: deepspeed typo

Signed-off-by: Akash Jaiswal <[email protected]>

* hotfix: add gpu label on PR without merging

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: merged into single action

Signed-off-by: Akash Jaiswal <[email protected]>

* fixL run runner as soon as label is added

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: use gpu runner when label exist

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: revert changes and fix script permission

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: create gpu supported gpu

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: nvidia issue

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: gpu cluster and torchtune model

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: notebookpath and delete cluster

Signed-off-by: Akash Jaiswal <[email protected]>

* tmp fix: notebook to use k8s client

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: use akash sdk and fix notenook size

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: notebook error

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: delete cluster before creating one and notebook

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: kube config

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: makefile add comment

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: nvidia runtime

Signed-off-by: Akash Jaiswal <[email protected]>

* hotfix: disable e2e go

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: delete cluster

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: delete cluster

Signed-off-by: Akash Jaiswal <[email protected]>

* hotfix: temporarly use my personal token

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: refactored code

Signed-off-by: Akash Jaiswal <[email protected]>

* hotfix: take hf token from env of self runner vm

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: to run notebook directly

Signed-off-by: Akash Jaiswal <[email protected]>

* refactor: torchtune job

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: ci action

Signed-off-by: Akash Jaiswal <[email protected]>

* fix: pre commit hook

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: rename ci action

Signed-off-by: Akash Jaiswal <[email protected]>

* rem: delete cluster command from makefile

Signed-off-by: Akash Jaiswal <[email protected]>

* chore: rem some steps, fixed wait timing and notebook logs according to kubeflow/sdk#83

Signed-off-by: Akash Jaiswal <[email protected]>

* update: upgrade k8s to 1.34.0

Signed-off-by: Akash Jaiswal <[email protected]>

---------

Signed-off-by: Akash Jaiswal <[email protected]>
2025-09-04 15:33:12 +00:00
Andrey VelichkevichandGitHub a6729c647f chore(runtimes): Remove MPI pi Runtime (#2760)
* chore(runtimes): Remove MPI pi Runtime

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add e2e tests for DeepSpeed and MLX runtimes

Signed-off-by: Andrey Velichkevich <[email protected]>

* load runtime images to Kind

Signed-off-by: Andrey Velichkevich <[email protected]>

* Remove MLX from e2e

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-08-18 08:13:04 +00:00
Andrey VelichkevichandGitHub 8655798f02 fix(module): Change Go module name to v2 (#2707)
* fix(module): Change Go module name to v2

Signed-off-by: Andrey Velichkevich <[email protected]>

* Bump x/net to v0.38.0

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-07-03 17:46:20 +00:00
Andrey VelichkevichandGitHub 06f6f09a70 chore(runtime): Bump Torch to 2.7.1 and DeepSpeed to 0.17.1 (#2685)
* chore(runtime): Bump Torch to 2.7.1 and DeepSpeed to 0.17.1

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update cuda to 12.8

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-06-27 15:24:18 +00:00
Eoin FennessyandGitHub 7ffef77be3 Remove SDK (#2657)
* Remove SDK

Signed-off-by: Eoin Fennessy <[email protected]>

* Fix e2e test

Signed-off-by: Eoin Fennessy <[email protected]>

* Remove unnecessary `pip install ./sdk` for unit tests

Signed-off-by: Eoin Fennessy <[email protected]>

* Remove sdk from pre-commit config

Signed-off-by: Eoin Fennessy <[email protected]>

* Update docstring for `generate` target

Signed-off-by: Eoin Fennessy <[email protected]>

* Update CONTRIBUTING.md

Signed-off-by: Eoin Fennessy <[email protected]>

* Remove .gitignore for OpenAPI Generator CLI JAR

Signed-off-by: Eoin Fennessy <[email protected]>

* README.md: Add link to `kubeflow/sdk` + some minor edits

Signed-off-by: Eoin Fennessy <[email protected]>

* Add TODO to repurpose SDK release info if needed

Signed-off-by: Eoin Fennessy <[email protected]>

* Add SDK installation step to all notebooks

Signed-off-by: Eoin Fennessy <[email protected]>

* Comment out SDK installation command in all notebooks

Signed-off-by: Eoin Fennessy <[email protected]>

---------

Signed-off-by: Eoin Fennessy <[email protected]>
2025-06-09 13:41:48 +00:00
Antonin StefanuttiandGitHub ac1c95fc2e chore(build): Support Podman to run OpenAPI generator (#2656)
Signed-off-by: Antonin Stefanutti <[email protected]>
2025-06-05 10:46:15 +00:00
Anya KramarandGitHub 4c25accaa0 Move generated Python models into kubeflow_trainer_api package (#2632)
Signed-off-by: kramaranya <[email protected]>
2025-05-07 18:14:39 +00:00
Yuki IwaiandGitHub 50d6be8324 Construct Trainer based on trainer.kubeflow.org/trainjob-ancestor-step label (#2548)
Signed-off-by: Yuki Iwai <[email protected]>
2025-03-20 14:01:57 +00:00
Andrey VelichkevichandGitHub 239b27d311 feat(controller): Refactor the Initializer APIs of TrainJob (#2523)
* feat(controller): Refactor the Initializer APIs of TrainJob

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix go unit test

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix integration test

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-03-17 07:15:51 +00:00
Andrey VelichkevichandGitHub 59d2d31a7f feat(sdk): Migrate to OpenAPI V3 (#2490)
* feat(sdk): Migrate to OpenAPI V3

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update SDK to support OpenAPI V3

Signed-off-by: Andrey Velichkevich <[email protected]>

* Remove metadata check

Signed-off-by: Andrey Velichkevich <[email protected]>

* Assign nil for empty default value

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-03-10 13:45:02 +00:00
Yuki IwaiandGitHub af2f341ac1 Store E2E manifests to artifacts directory (#2478)
Signed-off-by: Yuki Iwai <[email protected]>
2025-03-06 02:20:57 +00:00
Andrey VelichkevichandGitHub 0b5d3be8f1 feat(sdk): Generate external Kubernetes and JobSet models (#2466)
* feat(sdk): Generate external Kubernetes and JobSet models

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update JobSet commit in Swagger

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix formats for resources and num proc

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add custom Kind config

Signed-off-by: Andrey Velichkevich <[email protected]>

* Use ginkgo to run e2e

Signed-off-by: Andrey Velichkevich <[email protected]>

* Revert Kind config change

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix ginkgo binary

Signed-off-by: Andrey Velichkevich <[email protected]>

* Print controller logs in case of failure

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-03-05 19:08:21 +00:00
71317e6bd0 chore(test): Add E2E tests for Kubeflow Trainer (#2470)
* Add e2e tests for Kubeflow Trainer

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add timeout for papermill

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add output as part of make command

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add k8s version to setup cluster

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix Kind k8s version

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix 1.29 version

Signed-off-by: Andrey Velichkevich <[email protected]>

* Create script to run Notebook

Signed-off-by: Andrey Velichkevich <[email protected]>

* Download dataset when local_rank=0

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update test/e2e/e2e_test.go

Co-authored-by: Yuki Iwai <[email protected]>
Signed-off-by: Andrey Velichkevich <[email protected]>

* Refactor Go e2e tests

Signed-off-by: Andrey Velichkevich <[email protected]>

* Bump k8s to 1.29.14

Signed-off-by: Andrey Velichkevich <[email protected]>

* Install Kind from go mod

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix path for Kind package

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix Go e2e

Signed-off-by: Andrey Velichkevich <[email protected]>

* Reduce number of CPUs
Export Notebook as artifact

Signed-off-by: Andrey Velichkevich <[email protected]>

* Print logs due to flaky test

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix artifact path

Signed-off-by: Andrey Velichkevich <[email protected]>

* docker pull image

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix path

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add k8s version to output name

Signed-off-by: Andrey Velichkevich <[email protected]>

* Remove install Kind cmd

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Yuki Iwai <[email protected]>
2025-03-05 04:04:07 +00:00
Shao WangandGitHub 835bfa0b31 fix(sdk): resolve errors in deserialization (#2457)
* fix(sdk): import kubernetes.client & make type conversion in swagger.json.

Signed-off-by: Electronic-Waste <[email protected]>

* fix(sdk): change Union[int, str] to object.

Signed-off-by: Electronic-Waste <[email protected]>

---------

Signed-off-by: Electronic-Waste <[email protected]>
2025-03-02 21:12:28 +00:00
Antonin StefanuttiandGitHub 2431959510 Fix missing external types in apply configurations (#2429)
Signed-off-by: Antonin Stefanutti <[email protected]>
2025-02-10 08:35:07 +00:00
Andrey VelichkevichandGitHub 1ff1d8ad28 Update the naming conventions for Kubeflow Trainer (#2415)
* Update the naming conventions for Kubeflow Trainer

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix webhooks

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix paths for webhooks

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update go test cmd

Signed-off-by: Andrey Velichkevich <[email protected]>

* Rename kubeflowv1 to trainer pkg

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-02-06 13:48:30 +00:00
Shao WangandGitHub 7777f61acb KEP-2170: Change API Group Name to trainer.kubeflow.org (#2413)
* fix(apis): change the group of API to trainer.kubeflow.org.

Signed-off-by: Electronic-Waste <[email protected]>

* chore(manifests): update crds in manifests using make manifests.

Signed-off-by: Electronic-Waste <[email protected]>

* chore: change the apia dir name to trainer.kubeflow.org and update reference.

Signed-off-by: Electronic-Waste <[email protected]>

* chore: execute make generate.

Signed-off-by: Electronic-Waste <[email protected]>

* fix: remove remaining kubeflow.org dirs.

Signed-off-by: Electronic-Waste <[email protected]>

* fix(sdk): remove outdated docs & update models reference.

Signed-off-by: Electronic-Waste <[email protected]>

* fix: rename apis dir to ttrainer.

Signed-off-by: Electronic-Waste <[email protected]>

* chore: execute make generate.

Signed-off-by: Electronic-Waste <[email protected]>

* fix(sdk): remove outdated docs & update models reference.

Signed-off-by: Electronic-Waste <[email protected]>

* fix(sdk): update model reference in code.

Signed-off-by: Electronic-Waste <[email protected]>

* fix(doc): update api grou p in KEP-2170.

Signed-off-by: Electronic-Waste <[email protected]>

---------

Signed-off-by: Electronic-Waste <[email protected]>
2025-02-05 13:34:37 +00:00
Andrey VelichkevichandGitHub 812c308cc2 Remove the Training Operator V1 Source Code (#2389)
* Remove Training Operator V1 files

Signed-off-by: Andrey Velichkevich <[email protected]>

* Refactor README and Makefile

Signed-off-by: Andrey Velichkevich <[email protected]>

* Remove v1 GitHub workflows

Signed-off-by: Andrey Velichkevich <[email protected]>

* Remove finish action from Go

Signed-off-by: Andrey Velichkevich <[email protected]>

* Rename Kubeflow Training to Kubeflow Trainer

Signed-off-by: Andrey Velichkevich <[email protected]>

* Rename comment

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add steps for free-up space

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update Python tests

Signed-off-by: Andrey Velichkevich <[email protected]>

* Remove integration workflow

Signed-off-by: Andrey Velichkevich <[email protected]>

* Install SDK in Python integration tests

Signed-off-by: Andrey Velichkevich <[email protected]>

* Remove generate file

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add Kubeflow Trainer logo

Signed-off-by: Andrey Velichkevich <[email protected]>

* Add tech diagram

Signed-off-by: Andrey Velichkevich <[email protected]>

* Exclude images from pre-commit

Signed-off-by: Andrey Velichkevich <[email protected]>

* Fix git diff in CI

Signed-off-by: Andrey Velichkevich <[email protected]>

* Run go mod tidy

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update diagram

Signed-off-by: Andrey Velichkevich <[email protected]>

* Cleanup examples

Signed-off-by: Andrey Velichkevich <[email protected]>

* Always install Go bins

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update diagram

Signed-off-by: Andrey Velichkevich <[email protected]>

* Update hack
Remove manifests for JobSet
Rename to tools.go

Signed-off-by: Andrey Velichkevich <[email protected]>

* Create tools.go

Signed-off-by: Andrey Velichkevich <[email protected]>

---------

Signed-off-by: Andrey Velichkevich <[email protected]>
2025-02-04 15:25:38 +00:00