mirror of https://github.com/kubeflow/katib.git
Compare commits
23 Commits
Author | SHA1 | Date |
---|---|---|
|
fe7a35dffa | |
|
dd107108b5 | |
|
8e887b8719 | |
|
5d70808886 | |
|
ba2cf7d1ec | |
|
73b8c5c029 | |
|
5cd9592335 | |
|
9421f2322b | |
|
1ebd5e4453 | |
|
c9513c633d | |
|
dd4acfc2ce | |
|
349b571541 | |
|
8e965f11d8 | |
|
6578306795 | |
|
54764d6aa4 | |
|
db4b68bf56 | |
|
1f76bb3bbf | |
|
4884253067 | |
|
9e430ceaf5 | |
|
c18035e104 | |
|
3c88967299 | |
|
338a5c107b | |
|
302020c29e |
|
@ -22,6 +22,11 @@ jobs:
|
||||||
with:
|
with:
|
||||||
kubernetes-version: ${{ matrix.kubernetes-version }}
|
kubernetes-version: ${{ matrix.kubernetes-version }}
|
||||||
|
|
||||||
|
- name: Install Katib SDK with extra requires
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
pip install --prefer-binary -e 'sdk/python/v1beta1[huggingface]'
|
||||||
|
|
||||||
- name: Run e2e test with tune API
|
- name: Run e2e test with tune API
|
||||||
uses: ./.github/workflows/template-e2e-test
|
uses: ./.github/workflows/template-e2e-test
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
name: Free-Up Disk Space
|
||||||
|
description: Remove Non-Essential Tools And Move Docker Data Directory to /mnt/docker
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
# This step is a Workaround to avoid the "No space left on device" error.
|
||||||
|
# ref: https://github.com/actions/runner-images/issues/2840
|
||||||
|
- name: Remove unnecessary files
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "Disk usage before cleanup:"
|
||||||
|
df -hT
|
||||||
|
|
||||||
|
sudo rm -rf /usr/share/dotnet
|
||||||
|
sudo rm -rf /opt/ghc
|
||||||
|
sudo rm -rf /usr/local/share/boost
|
||||||
|
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
||||||
|
sudo rm -rf /usr/local/lib/android
|
||||||
|
sudo rm -rf /usr/local/share/powershell
|
||||||
|
sudo rm -rf /usr/share/swift
|
||||||
|
|
||||||
|
echo "Disk usage after cleanup:"
|
||||||
|
df -hT
|
||||||
|
|
||||||
|
- name: Prune docker images
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
docker image prune -a -f
|
||||||
|
docker system df
|
||||||
|
df -hT
|
||||||
|
|
||||||
|
- name: Move docker data directory
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "Stopping docker service ..."
|
||||||
|
sudo systemctl stop docker
|
||||||
|
DOCKER_DEFAULT_ROOT_DIR=/var/lib/docker
|
||||||
|
DOCKER_ROOT_DIR=/mnt/docker
|
||||||
|
echo "Moving ${DOCKER_DEFAULT_ROOT_DIR} -> ${DOCKER_ROOT_DIR}"
|
||||||
|
sudo mv ${DOCKER_DEFAULT_ROOT_DIR} ${DOCKER_ROOT_DIR}
|
||||||
|
echo "Creating symlink ${DOCKER_DEFAULT_ROOT_DIR} -> ${DOCKER_ROOT_DIR}"
|
||||||
|
sudo ln -s ${DOCKER_ROOT_DIR} ${DOCKER_DEFAULT_ROOT_DIR}
|
||||||
|
echo "$(sudo ls -l ${DOCKER_DEFAULT_ROOT_DIR})"
|
||||||
|
echo "Starting docker service ..."
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl start docker
|
||||||
|
echo "Docker service status:"
|
||||||
|
sudo systemctl --no-pager -l -o short status docker
|
|
@ -17,19 +17,8 @@ runs:
|
||||||
steps:
|
steps:
|
||||||
# This step is a Workaround to avoid the "No space left on device" error.
|
# This step is a Workaround to avoid the "No space left on device" error.
|
||||||
# ref: https://github.com/actions/runner-images/issues/2840
|
# ref: https://github.com/actions/runner-images/issues/2840
|
||||||
- name: Remove unnecessary files
|
- name: Free-Up Disk Space
|
||||||
shell: bash
|
uses: ./.github/workflows/free-up-disk-space
|
||||||
run: |
|
|
||||||
sudo rm -rf /usr/share/dotnet
|
|
||||||
sudo rm -rf /opt/ghc
|
|
||||||
sudo rm -rf "/usr/local/share/boost"
|
|
||||||
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
|
||||||
sudo rm -rf /usr/local/lib/android
|
|
||||||
sudo rm -rf /usr/local/share/powershell
|
|
||||||
sudo rm -rf /usr/share/swift
|
|
||||||
|
|
||||||
echo "Disk usage after cleanup:"
|
|
||||||
df -h
|
|
||||||
|
|
||||||
- name: Setup kubectl
|
- name: Setup kubectl
|
||||||
uses: azure/setup-kubectl@v4
|
uses: azure/setup-kubectl@v4
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
name: Re-Run PR Tests
|
|
||||||
|
|
||||||
on:
|
|
||||||
issue_comment:
|
|
||||||
types: [created]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
rerun_pr_tests:
|
|
||||||
name: rerun_pr_tests
|
|
||||||
if: ${{ github.event.issue.pull_request }}
|
|
||||||
runs-on: ubuntu-20.04
|
|
||||||
steps:
|
|
||||||
- uses: estroz/rerun-actions@main
|
|
||||||
with:
|
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
comment_id: ${{ github.event.comment.id }}
|
|
217
CHANGELOG.md
217
CHANGELOG.md
|
@ -1,5 +1,222 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
# [v0.18.0](https://github.com/kubeflow/katib/tree/v0.18.0) (2025-03-25)
|
||||||
|
|
||||||
|
## Breaking Changes
|
||||||
|
|
||||||
|
- Move Katib manifest image references to ghcr ([#2535](https://github.com/kubeflow/katib/pull/2535) by [@saileshd1402](https://github.com/saileshd1402))
|
||||||
|
- Migrate docker images to ghcr ([#2531](https://github.com/kubeflow/katib/pull/2531) by [@mahdikhashan](https://github.com/mahdikhashan))
|
||||||
|
- Upgrade Kubernetes to v1.31.3 ([#2478](https://github.com/kubeflow/katib/pull/2478) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Upgrade Kubernetes to v1.30.7 ([#2463](https://github.com/kubeflow/katib/pull/2463) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Drop Python 3.7 and Support Python 3.11 in the SDK ([#2337](https://github.com/kubeflow/katib/pull/2337) by [@tenzen-y](https://github.com/tenzen-y))
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
|
||||||
|
### Hyperparameter Optimization for LLMs
|
||||||
|
|
||||||
|
- [DOCS] move llm hyperparameter optimisation design image to the proposal directory and rename it ([#2472](https://github.com/kubeflow/katib/pull/2472) by [@mahdikhashan](https://github.com/mahdikhashan))
|
||||||
|
- [GSoC] Update `tune` API for LLM hyperparameters optimization ([#2393](https://github.com/kubeflow/katib/pull/2393) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- [GSoC] Create LLM Hyperparameters Optimization API Proposal ([#2333](https://github.com/kubeflow/katib/pull/2333) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
|
||||||
|
### Support for Advanced Distributions for HPO
|
||||||
|
|
||||||
|
- [GSOC] `optuna` suggestion service logic update ([#2446](https://github.com/kubeflow/katib/pull/2446) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] `hyperopt` suggestion service logic update ([#2412](https://github.com/kubeflow/katib/pull/2412) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] Add validator for feasible space distribution ([#2404](https://github.com/kubeflow/katib/pull/2404) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] added Unknown distribution and convertDistribution in suggestion client ([#2403](https://github.com/kubeflow/katib/pull/2403) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] Support for various Parameter distributions in Katib ([#2334](https://github.com/kubeflow/katib/pull/2334) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSoC] Added `DistributionType` to Experiment API ([#2377](https://github.com/kubeflow/katib/pull/2377) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
|
||||||
|
### Push-based Metrics Collector
|
||||||
|
|
||||||
|
- [GSoC] Provide a PyTorch MNIST Example for Push-based Metrics Collection ([#2437](https://github.com/kubeflow/katib/pull/2437) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] Compatibility Changes in Trial Controller ([#2394](https://github.com/kubeflow/katib/pull/2394) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] New Interface `report_metrics` in Python SDK ([#2371](https://github.com/kubeflow/katib/pull/2371) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] KEP for Project 6: Push-based Metrics Collection for Katib ([#2328](https://github.com/kubeflow/katib/pull/2328) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] Add New Parameter in `tune` ([#2369](https://github.com/kubeflow/katib/pull/2369) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
|
||||||
|
### SDK Updates
|
||||||
|
|
||||||
|
- [SDK] Support PyTorchJob as a Trial Worker ([#2512](https://github.com/kubeflow/katib/pull/2512) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- [SDK] test: Add e2e test for tune function. ([#2399](https://github.com/kubeflow/katib/pull/2399) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [SDK] improve PVC creation name error ([#2496](https://github.com/kubeflow/katib/pull/2496) by [@mahdikhashan](https://github.com/mahdikhashan))
|
||||||
|
- [SDK] Fix empty list for env variables and numpy version ([#2360](https://github.com/kubeflow/katib/pull/2360) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- [SDK] Explain Python version support cycle ([#2354](https://github.com/kubeflow/katib/pull/2354) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
|
||||||
|
## Bug Fixes
|
||||||
|
|
||||||
|
- fix(webhook): fix validation message in experiment webhook ([#2507](https://github.com/kubeflow/katib/pull/2507) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Install typing-extensions v4.10.0 to fix Python test error ([#2504](https://github.com/kubeflow/katib/pull/2504) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- [SDK] Update `tune` API ([#2497](https://github.com/kubeflow/katib/pull/2497) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- fix(api): resolve all api voilation exceptions in katib api ([#2482](https://github.com/kubeflow/katib/pull/2482) by [@truc0](https://github.com/truc0))
|
||||||
|
- fix(trial): use propagated gomega to improve debuggability. ([#2432](https://github.com/kubeflow/katib/pull/2432) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- fix(ui): update None Collector with Push Collector. ([#2418](https://github.com/kubeflow/katib/pull/2418) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- fix: Resolve errors in e2e tests for cypress in Katib UI ([#2384](https://github.com/kubeflow/katib/pull/2384) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- doc(example): fix the broken link. ([#2433](https://github.com/kubeflow/katib/pull/2433) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- fix: remove remaining MXNet dependency. ([#2456](https://github.com/kubeflow/katib/pull/2456) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Remove Dropout layer from ENAS Trial container to fix E2E tests ([#2455](https://github.com/kubeflow/katib/pull/2455) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- [SDK] fix grpc related bugs in Python SDK ([#2398](https://github.com/kubeflow/katib/pull/2398) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [SDK] Fix types error ([#2424](https://github.com/kubeflow/katib/pull/2424) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- fix: remove the dependency of `protocmp` in `google.golang.org/protobuf/testing/protocmp`. ([#2391](https://github.com/kubeflow/katib/pull/2391) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Fix TestReconcileBatchJob ([#2350](https://github.com/kubeflow/katib/pull/2350) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Fix apple silicon rosetta error when building images from the source code ([#2342](https://github.com/kubeflow/katib/pull/2342) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- fix katib use crds token pipeline trail template guide ([#2330](https://github.com/kubeflow/katib/pull/2330) by [@Jerry-yz](https://github.com/Jerry-yz))
|
||||||
|
- Fix Scikit-Learn Version for Skopt Tests ([#2336](https://github.com/kubeflow/katib/pull/2336) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
|
||||||
|
## Misc
|
||||||
|
|
||||||
|
- Support old-style TensorFlow events (tensorboard) ([#2517](https://github.com/kubeflow/katib/pull/2517) by [@garymm](https://github.com/garymm))
|
||||||
|
- Set experiment names at a max of 40 characters. ([#2468](https://github.com/kubeflow/katib/pull/2468) by [@AydanPirani](https://github.com/AydanPirani))
|
||||||
|
- [CI] optimize katib ui dockerfile ([#2505](https://github.com/kubeflow/katib/pull/2505) by [@mahdikhashan](https://github.com/mahdikhashan))
|
||||||
|
- Sort experiments by descending creation date by default in katib-ui ([#2498](https://github.com/kubeflow/katib/pull/2498) by [@Doris-xm](https://github.com/Doris-xm))
|
||||||
|
- [GSoC] Add unit tests for `tune` API ([#2423](https://github.com/kubeflow/katib/pull/2423) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- Update MutatingWebhookConfiguration: Switch from objectSelector to AdmissionWebhookMatchConditions ([#2241](https://github.com/kubeflow/katib/pull/2241) by [@lianghao208](https://github.com/lianghao208))
|
||||||
|
- chore: supporting the listen-address parameter on db-manager ([#2465](https://github.com/kubeflow/katib/pull/2465) by [@caiofralmeida](https://github.com/caiofralmeida))
|
||||||
|
- Upgrade klog to v2 ([#2470](https://github.com/kubeflow/katib/pull/2470) by [@Doris-xm](https://github.com/Doris-xm))
|
||||||
|
- Ignore cache exporting errors in the image building workflows ([#2487](https://github.com/kubeflow/katib/pull/2487) by [@Doris-xm](https://github.com/Doris-xm))
|
||||||
|
- Upgrade grpcio version to v1.64.1 ([#2483](https://github.com/kubeflow/katib/pull/2483) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- docs: remove katib workflow ([#2443](https://github.com/kubeflow/katib/pull/2443) by [@gonmmarques](https://github.com/gonmmarques))
|
||||||
|
- Migrate KatibCertGenerator to OPA CertController ([#2345](https://github.com/kubeflow/katib/pull/2345) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Promote @Electronic-Waste and @helenxie-bit as Katib reviewers ([#2439](https://github.com/kubeflow/katib/pull/2439) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Update README and out-of-date docs ([#2438](https://github.com/kubeflow/katib/pull/2438) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Changes isort profile to black, to be fully compatible and adds 'pkg' dir for black and flake8 ([#2413](https://github.com/kubeflow/katib/pull/2413) by [@Ygnas](https://github.com/Ygnas))
|
||||||
|
- Introduced error constants and replaced reflect with cmp ([#2289](https://github.com/kubeflow/katib/pull/2289) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- [Test] Refactor `inject_webhook_test.go` according to the Developer Guide ([#2401](https://github.com/kubeflow/katib/pull/2401) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Enhance pre-commit hooks with flake8 and black ([#2407](https://github.com/kubeflow/katib/pull/2407) by [@Ygnas](https://github.com/Ygnas))
|
||||||
|
- added `Distribution` field to feasibleSpace in `api.proto` ([#2397](https://github.com/kubeflow/katib/pull/2397) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- Begin enabling pre-commit hooks ([#2242](https://github.com/kubeflow/katib/pull/2242) by [@droctothorpe](https://github.com/droctothorpe))
|
||||||
|
- Update Instructions for Argo Workflows ([#2382](https://github.com/kubeflow/katib/pull/2382) by [@jaffe-fly](https://github.com/jaffe-fly))
|
||||||
|
- docs: update suggestion.md ([#2387](https://github.com/kubeflow/katib/pull/2387) by [@eltociear](https://github.com/eltociear))
|
||||||
|
- Add command to re-run GitHub Actions tests ([#2385](https://github.com/kubeflow/katib/pull/2385) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Bump Katib Python SDK to 0.17.0 version ([#2379](https://github.com/kubeflow/katib/pull/2379) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Add Changelog for Katib v0.17.0 ([#2380](https://github.com/kubeflow/katib/pull/2380) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Replaced hpcloud with nxadm for tail package in Go ([#2375](https://github.com/kubeflow/katib/pull/2375) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- Use ErrorList for experiment validator ([#2329](https://github.com/kubeflow/katib/pull/2329) by [@ckcd](https://github.com/ckcd))
|
||||||
|
- Add Changelog for Katib v0.17.0-rc.1 ([#2370](https://github.com/kubeflow/katib/pull/2370) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Remove default caBundle value ([#2368](https://github.com/kubeflow/katib/pull/2368) by [@vihangm](https://github.com/vihangm))
|
||||||
|
- Bump Katib Python SDK to 0.17.0rc1 version ([#2365](https://github.com/kubeflow/katib/pull/2365) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Add unit test for `create_experiment` in the `katib_client` module ([#2325](https://github.com/kubeflow/katib/pull/2325) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- Remove code generation from release script ([#2363](https://github.com/kubeflow/katib/pull/2363) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Upgrade the protobuf version to >=4.21.12,<5 ([#2358](https://github.com/kubeflow/katib/pull/2358) by [@tenzen-y](https://github.com/tenzen-y))
|
||||||
|
- Replace gRPC code generation tool from Znly/protoc to Buf ([#2344](https://github.com/kubeflow/katib/pull/2344) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Replace already closed github.com/golang/mock with go.uber.org/mock ([#2357](https://github.com/kubeflow/katib/pull/2357) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Use cache-dependency-path in actions/setup-go for CI workflow ([#2355](https://github.com/kubeflow/katib/pull/2355) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Update Slack Invitation ([#2349](https://github.com/kubeflow/katib/pull/2349) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Update GitHub template to better triage Issues ([#2335](https://github.com/kubeflow/katib/pull/2335) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Add Changelog for Katib v0.17.0-rc.0 ([#2319](https://github.com/kubeflow/katib/pull/2319) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Update outdated actions ([#2324](https://github.com/kubeflow/katib/pull/2324) by [@Mersho](https://github.com/Mersho))
|
||||||
|
- Make test fields private in Go unit tests ([#2316](https://github.com/kubeflow/katib/pull/2316) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- Bump Katib Python SDK to 0.17.0rc0 Version ([#2318](https://github.com/kubeflow/katib/pull/2318) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/kubeflow/katib/compare/v0.17.0...v0.18.0)
|
||||||
|
|
||||||
|
# [v0.18.0-rc.0](https://github.com/kubeflow/katib/tree/v0.18.0-rc.0) (2025-02-13)
|
||||||
|
|
||||||
|
## Breaking Changes
|
||||||
|
|
||||||
|
- Upgrade Kubernetes to v1.31.3 ([#2478](https://github.com/kubeflow/katib/pull/2478) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Upgrade Kubernetes to v1.30.7 ([#2463](https://github.com/kubeflow/katib/pull/2463) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Drop Python 3.7 and Support Python 3.11 in the SDK ([#2337](https://github.com/kubeflow/katib/pull/2337) by [@tenzen-y](https://github.com/tenzen-y))
|
||||||
|
|
||||||
|
## New Features
|
||||||
|
|
||||||
|
### Hyperparameter Optimization for LLMs
|
||||||
|
|
||||||
|
- [DOCS] move llm hyperparameter optimisation design image to the proposal directory and rename it ([#2472](https://github.com/kubeflow/katib/pull/2472) by [@mahdikhashan](https://github.com/mahdikhashan))
|
||||||
|
- [GSoC] Update `tune` API for LLM hyperparameters optimization ([#2393](https://github.com/kubeflow/katib/pull/2393) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- [GSoC] Create LLM Hyperparameters Optimization API Proposal ([#2333](https://github.com/kubeflow/katib/pull/2333) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
|
||||||
|
### Support for Advanced Distributions for HPO
|
||||||
|
|
||||||
|
- [GSOC] `optuna` suggestion service logic update ([#2446](https://github.com/kubeflow/katib/pull/2446) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] `hyperopt` suggestion service logic update ([#2412](https://github.com/kubeflow/katib/pull/2412) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] Add validator for feasible space distribution ([#2404](https://github.com/kubeflow/katib/pull/2404) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] added Unknown distribution and convertDistribution in suggestion client ([#2403](https://github.com/kubeflow/katib/pull/2403) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSOC] Support for various Parameter distributions in Katib ([#2334](https://github.com/kubeflow/katib/pull/2334) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- [GSoC] Added `DistributionType` to Experiment API ([#2377](https://github.com/kubeflow/katib/pull/2377) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
|
||||||
|
### Push-based Metrics Collector
|
||||||
|
|
||||||
|
- [GSoC] Provide a PyTorch MNIST Example for Push-based Metrics Collection ([#2437](https://github.com/kubeflow/katib/pull/2437) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] Compatibility Changes in Trial Controller ([#2394](https://github.com/kubeflow/katib/pull/2394) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] New Interface `report_metrics` in Python SDK ([#2371](https://github.com/kubeflow/katib/pull/2371) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] KEP for Project 6: Push-based Metrics Collection for Katib ([#2328](https://github.com/kubeflow/katib/pull/2328) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [GSoC] Add New Parameter in `tune` ([#2369](https://github.com/kubeflow/katib/pull/2369) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
|
||||||
|
### SDK Updates
|
||||||
|
|
||||||
|
- [SDK] Support PyTorchJob as a Trial Worker ([#2512](https://github.com/kubeflow/katib/pull/2512) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- [SDK] test: Add e2e test for tune function. ([#2399](https://github.com/kubeflow/katib/pull/2399) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [SDK] improve PVC creation name error ([#2496](https://github.com/kubeflow/katib/pull/2496) by [@mahdikhashan](https://github.com/mahdikhashan))
|
||||||
|
- [SDK] Fix empty list for env variables and numpy version ([#2360](https://github.com/kubeflow/katib/pull/2360) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- [SDK] Explain Python version support cycle ([#2354](https://github.com/kubeflow/katib/pull/2354) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
|
||||||
|
## Bug Fixes
|
||||||
|
|
||||||
|
- fix(webhook): fix validation message in experiment webhook ([#2507](https://github.com/kubeflow/katib/pull/2507) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Install typing-extensions v4.10.0 to fix Python test error ([#2504](https://github.com/kubeflow/katib/pull/2504) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- [SDK] Update `tune` API ([#2497](https://github.com/kubeflow/katib/pull/2497) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- fix(api): resolve all api voilation exceptions in katib api ([#2482](https://github.com/kubeflow/katib/pull/2482) by [@truc0](https://github.com/truc0))
|
||||||
|
- fix(trial): use propagated gomega to improve debuggability. ([#2432](https://github.com/kubeflow/katib/pull/2432) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- fix(ui): update None Collector with Push Collector. ([#2418](https://github.com/kubeflow/katib/pull/2418) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- fix: Resolve errors in e2e tests for cypress in Katib UI ([#2384](https://github.com/kubeflow/katib/pull/2384) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- doc(example): fix the broken link. ([#2433](https://github.com/kubeflow/katib/pull/2433) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- fix: remove remaining MXNet dependency. ([#2456](https://github.com/kubeflow/katib/pull/2456) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Remove Dropout layer from ENAS Trial container to fix E2E tests ([#2455](https://github.com/kubeflow/katib/pull/2455) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- [SDK] fix grpc related bugs in Python SDK ([#2398](https://github.com/kubeflow/katib/pull/2398) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- [SDK] Fix types error ([#2424](https://github.com/kubeflow/katib/pull/2424) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- fix: remove the dependency of `protocmp` in `google.golang.org/protobuf/testing/protocmp`. ([#2391](https://github.com/kubeflow/katib/pull/2391) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Fix TestReconcileBatchJob ([#2350](https://github.com/kubeflow/katib/pull/2350) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Fix apple silicon rosetta error when building images from the source code ([#2342](https://github.com/kubeflow/katib/pull/2342) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- fix katib use crds token pipeline trail template guide ([#2330](https://github.com/kubeflow/katib/pull/2330) by [@Jerry-yz](https://github.com/Jerry-yz))
|
||||||
|
- Fix Scikit-Learn Version for Skopt Tests ([#2336](https://github.com/kubeflow/katib/pull/2336) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
|
||||||
|
## Misc
|
||||||
|
|
||||||
|
- Set experiment names at a max of 40 characters. ([#2468](https://github.com/kubeflow/katib/pull/2468) by [@AydanPirani](https://github.com/AydanPirani))
|
||||||
|
- [CI] optimize katib ui dockerfile ([#2505](https://github.com/kubeflow/katib/pull/2505) by [@mahdikhashan](https://github.com/mahdikhashan))
|
||||||
|
- Sort experiments by descending creation date by default in katib-ui ([#2498](https://github.com/kubeflow/katib/pull/2498) by [@Doris-xm](https://github.com/Doris-xm))
|
||||||
|
- [GSoC] Add unit tests for `tune` API ([#2423](https://github.com/kubeflow/katib/pull/2423) by [@helenxie-bit](https://github.com/helenxie-bit))
|
||||||
|
- Update MutatingWebhookConfiguration: Switch from objectSelector to AdmissionWebhookMatchConditions ([#2241](https://github.com/kubeflow/katib/pull/2241) by [@lianghao208](https://github.com/lianghao208))
|
||||||
|
- chore: supporting the listen-address parameter on db-manager ([#2465](https://github.com/kubeflow/katib/pull/2465) by [@caiofralmeida](https://github.com/caiofralmeida))
|
||||||
|
- Upgrade klog to v2 ([#2470](https://github.com/kubeflow/katib/pull/2470) by [@Doris-xm](https://github.com/Doris-xm))
|
||||||
|
- Ignore cache exporting errors in the image building workflows ([#2487](https://github.com/kubeflow/katib/pull/2487) by [@Doris-xm](https://github.com/Doris-xm))
|
||||||
|
- Upgrade grpcio version to v1.64.1 ([#2483](https://github.com/kubeflow/katib/pull/2483) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- docs: remove katib workflow ([#2443](https://github.com/kubeflow/katib/pull/2443) by [@gonmmarques](https://github.com/gonmmarques))
|
||||||
|
- Migrate KatibCertGenerator to OPA CertController ([#2345](https://github.com/kubeflow/katib/pull/2345) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Promote @Electronic-Waste and @helenxie-bit as Katib reviewers ([#2439](https://github.com/kubeflow/katib/pull/2439) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Update README and out-of-date docs ([#2438](https://github.com/kubeflow/katib/pull/2438) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Changes isort profile to black, to be fully compatible and adds 'pkg' dir for black and flake8 ([#2413](https://github.com/kubeflow/katib/pull/2413) by [@Ygnas](https://github.com/Ygnas))
|
||||||
|
- Introduced error constants and replaced reflect with cmp ([#2289](https://github.com/kubeflow/katib/pull/2289) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- [Test] Refactor `inject_webhook_test.go` according to the Developer Guide ([#2401](https://github.com/kubeflow/katib/pull/2401) by [@Electronic-Waste](https://github.com/Electronic-Waste))
|
||||||
|
- Enhance pre-commit hooks with flake8 and black ([#2407](https://github.com/kubeflow/katib/pull/2407) by [@Ygnas](https://github.com/Ygnas))
|
||||||
|
- added `Distribution` field to feasibleSpace in `api.proto` ([#2397](https://github.com/kubeflow/katib/pull/2397) by [@shashank-iitbhu](https://github.com/shashank-iitbhu))
|
||||||
|
- Begin enabling pre-commit hooks ([#2242](https://github.com/kubeflow/katib/pull/2242) by [@droctothorpe](https://github.com/droctothorpe))
|
||||||
|
- Update Instructions for Argo Workflows ([#2382](https://github.com/kubeflow/katib/pull/2382) by [@jaffe-fly](https://github.com/jaffe-fly))
|
||||||
|
- docs: update suggestion.md ([#2387](https://github.com/kubeflow/katib/pull/2387) by [@eltociear](https://github.com/eltociear))
|
||||||
|
- Add command to re-run GitHub Actions tests ([#2385](https://github.com/kubeflow/katib/pull/2385) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Bump Katib Python SDK to 0.17.0 version ([#2379](https://github.com/kubeflow/katib/pull/2379) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Add Changelog for Katib v0.17.0 ([#2380](https://github.com/kubeflow/katib/pull/2380) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Replaced hpcloud with nxadm for tail package in Go ([#2375](https://github.com/kubeflow/katib/pull/2375) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- Use ErrorList for experiment validator ([#2329](https://github.com/kubeflow/katib/pull/2329) by [@ckcd](https://github.com/ckcd))
|
||||||
|
- Add Changelog for Katib v0.17.0-rc.1 ([#2370](https://github.com/kubeflow/katib/pull/2370) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Remove default caBundle value ([#2368](https://github.com/kubeflow/katib/pull/2368) by [@vihangm](https://github.com/vihangm))
|
||||||
|
- Bump Katib Python SDK to 0.17.0rc1 version ([#2365](https://github.com/kubeflow/katib/pull/2365) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Add unit test for `create_experiment` in the `katib_client` module ([#2325](https://github.com/kubeflow/katib/pull/2325) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- Remove code generation from release script ([#2363](https://github.com/kubeflow/katib/pull/2363) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Upgrade the protobuf version to >=4.21.12,<5 ([#2358](https://github.com/kubeflow/katib/pull/2358) by [@tenzen-y](https://github.com/tenzen-y))
|
||||||
|
- Replace gRPC code generation tool from Znly/protoc to Buf ([#2344](https://github.com/kubeflow/katib/pull/2344) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Replace already closed github.com/golang/mock with go.uber.org/mock ([#2357](https://github.com/kubeflow/katib/pull/2357) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Use cache-dependency-path in actions/setup-go for CI workflow ([#2355](https://github.com/kubeflow/katib/pull/2355) by [@forsaken628](https://github.com/forsaken628))
|
||||||
|
- Update Slack Invitation ([#2349](https://github.com/kubeflow/katib/pull/2349) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Update GitHub template to better triage Issues ([#2335](https://github.com/kubeflow/katib/pull/2335) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Add Changelog for Katib v0.17.0-rc.0 ([#2319](https://github.com/kubeflow/katib/pull/2319) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
- Update outdated actions ([#2324](https://github.com/kubeflow/katib/pull/2324) by [@Mersho](https://github.com/Mersho))
|
||||||
|
- Make test fields private in Go unit tests ([#2316](https://github.com/kubeflow/katib/pull/2316) by [@tariq-hasan](https://github.com/tariq-hasan))
|
||||||
|
- Bump Katib Python SDK to 0.17.0rc0 Version ([#2318](https://github.com/kubeflow/katib/pull/2318) by [@andreyvelich](https://github.com/andreyvelich))
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/kubeflow/katib/compare/v0.17.0...v0.18.0-rc.0)
|
||||||
|
|
||||||
# [v0.17.0](https://github.com/kubeflow/katib/tree/v0.17.0) (2024-07-12)
|
# [v0.17.0](https://github.com/kubeflow/katib/tree/v0.17.0) (2024-07-12)
|
||||||
|
|
||||||
## Breaking Changes
|
## Breaking Changes
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
cff-version: 1.2.0
|
||||||
|
message: "If you use Katib in your scientific publication, please cite it as below."
|
||||||
|
authors:
|
||||||
|
- family-names: "George"
|
||||||
|
given-names: "Johnu"
|
||||||
|
- family-names: "Gao"
|
||||||
|
given-names: "Ce"
|
||||||
|
- family-names: "Liu"
|
||||||
|
given-names: "Richard"
|
||||||
|
- family-names: "Liu"
|
||||||
|
given-names: "Hou Gang"
|
||||||
|
- family-names: "Tang"
|
||||||
|
given-names: "Yuan"
|
||||||
|
- family-names: "Pydipaty"
|
||||||
|
given-names: "Ramdoot"
|
||||||
|
- family-names: "Saha"
|
||||||
|
given-names: "Amit Kumar"
|
||||||
|
title: "Katib"
|
||||||
|
type: software
|
||||||
|
repository-code: "https://github.com/kubeflow/katib"
|
||||||
|
preferred-citation:
|
||||||
|
type: misc
|
||||||
|
title: "A Scalable and Cloud-Native Hyperparameter Tuning System"
|
||||||
|
authors:
|
||||||
|
- family-names: "George"
|
||||||
|
given-names: "Johnu"
|
||||||
|
- family-names: "Gao"
|
||||||
|
given-names: "Ce"
|
||||||
|
- family-names: "Liu"
|
||||||
|
given-names: "Richard"
|
||||||
|
- family-names: "Liu"
|
||||||
|
given-names: "Hou Gang"
|
||||||
|
- family-names: "Tang"
|
||||||
|
given-names: "Yuan"
|
||||||
|
- family-names: "Pydipaty"
|
||||||
|
given-names: "Ramdoot"
|
||||||
|
- family-names: "Saha"
|
||||||
|
given-names: "Amit Kumar"
|
||||||
|
year: 2020
|
||||||
|
url: "https://arxiv.org/abs/2006.02085"
|
||||||
|
identifiers:
|
||||||
|
- type: "other"
|
||||||
|
value: "arXiv:2006.02085"
|
2
Makefile
2
Makefile
|
@ -33,7 +33,7 @@ fmt:
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
ifndef HAS_LINT
|
ifndef HAS_LINT
|
||||||
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.57.2
|
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.64.7
|
||||||
$(info "golangci-lint has been installed")
|
$(info "golangci-lint has been installed")
|
||||||
endif
|
endif
|
||||||
hack/verify-golangci-lint.sh
|
hack/verify-golangci-lint.sh
|
||||||
|
|
3
OWNERS
3
OWNERS
|
@ -1,9 +1,10 @@
|
||||||
approvers:
|
approvers:
|
||||||
- andreyvelich
|
- andreyvelich
|
||||||
- gaocegege
|
- gaocegege
|
||||||
- tenzen-y
|
|
||||||
- johnugeorge
|
- johnugeorge
|
||||||
reviewers:
|
reviewers:
|
||||||
- anencore94
|
- anencore94
|
||||||
- c-bata
|
- c-bata
|
||||||
- Electronic-Waste
|
- Electronic-Waste
|
||||||
|
emeritus_approvers:
|
||||||
|
- tenzen-y
|
||||||
|
|
13
README.md
13
README.md
|
@ -1,15 +1,18 @@
|
||||||
<h1 align="center">
|
# Kubeflow Katib
|
||||||
<img src="./docs/images/logo-title.png" alt="logo" width="200">
|
|
||||||
<br>
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
[](https://github.com/kubeflow/katib/actions/workflows/test-go.yaml?branch=master)
|
[](https://github.com/kubeflow/katib/actions/workflows/test-go.yaml?branch=master)
|
||||||
[](https://coveralls.io/github/kubeflow/katib?branch=master)
|
[](https://coveralls.io/github/kubeflow/katib?branch=master)
|
||||||
[](https://goreportcard.com/report/github.com/kubeflow/katib)
|
[](https://goreportcard.com/report/github.com/kubeflow/katib)
|
||||||
[](https://github.com/kubeflow/katib/releases)
|
[](https://github.com/kubeflow/katib/releases)
|
||||||
[](https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels)
|
[](https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels)
|
||||||
|
[](https://www.bestpractices.dev/projects/9941)
|
||||||
|
|
||||||
Katib is a Kubernetes-native project for automated machine learning (AutoML).
|
<h1 align="center">
|
||||||
|
<img src="./docs/images/logo-title.png" alt="logo" width="200">
|
||||||
|
<br>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
Kubeflow Katib is a Kubernetes-native project for automated machine learning (AutoML).
|
||||||
Katib supports
|
Katib supports
|
||||||
[Hyperparameter Tuning](https://en.wikipedia.org/wiki/Hyperparameter_optimization),
|
[Hyperparameter Tuning](https://en.wikipedia.org/wiki/Hyperparameter_optimization),
|
||||||
[Early Stopping](https://en.wikipedia.org/wiki/Early_stopping) and
|
[Early Stopping](https://en.wikipedia.org/wiki/Early_stopping) and
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
Kubeflow Katib versions are expressed as `vX.Y.Z`, where X is the major version,
|
||||||
|
Y is the minor version, and Z is the patch version, following the
|
||||||
|
[Semantic Versioning](https://semver.org/) terminology.
|
||||||
|
|
||||||
|
The Kubeflow Katib project maintains release branches for the most recent two minor releases.
|
||||||
|
Applicable fixes, including security fixes, may be backported to those two release branches,
|
||||||
|
depending on severity and feasibility.
|
||||||
|
|
||||||
|
Users are encouraged to stay updated with the latest releases to benefit from security patches and
|
||||||
|
improvements.
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
We're extremely grateful for security researchers and users that report vulnerabilities to the
|
||||||
|
Kubeflow Open Source Community. All reports are thoroughly investigated by Kubeflow projects owners.
|
||||||
|
|
||||||
|
You can use the following ways to report security vulnerabilities privately:
|
||||||
|
|
||||||
|
- Using the Kubeflow Katib repository [GitHub Security Advisory](https://github.com/kubeflow/katib/security/advisories/new).
|
||||||
|
- Using our private Kubeflow Steering Committee mailing list: ksc@kubeflow.org.
|
||||||
|
|
||||||
|
Please provide detailed information to help us understand and address the issue promptly.
|
||||||
|
|
||||||
|
## Disclosure Process
|
||||||
|
|
||||||
|
**Acknowledgment**: We will acknowledge receipt of your report within 10 business days.
|
||||||
|
|
||||||
|
**Assessment**: The Kubeflow projects owners will investigate the reported issue to determine its
|
||||||
|
validity and severity.
|
||||||
|
|
||||||
|
**Resolution**: If the issue is confirmed, we will work on a fix and prepare a release.
|
||||||
|
|
||||||
|
**Notification**: Once a fix is available, we will notify the reporter and coordinate a public
|
||||||
|
disclosure.
|
||||||
|
|
||||||
|
**Public Disclosure**: Details of the vulnerability and the fix will be published in the project's
|
||||||
|
release notes and communicated through appropriate channels.
|
||||||
|
|
||||||
|
## Prevention Mechanisms
|
||||||
|
|
||||||
|
Kubeflow Katib employs several measures to prevent security issues:
|
||||||
|
|
||||||
|
**Code Reviews**: All code changes are reviewed by maintainers to ensure code quality and security.
|
||||||
|
|
||||||
|
**Dependency Management**: Regular updates and monitoring of dependencies (e.g. Dependabot) to
|
||||||
|
address known vulnerabilities.
|
||||||
|
|
||||||
|
**Continuous Integration**: Automated testing and security checks are integrated into the CI/CD pipeline.
|
||||||
|
|
||||||
|
**Image Scanning**: Container images are scanned for vulnerabilities.
|
||||||
|
|
||||||
|
## Communication Channels
|
||||||
|
|
||||||
|
For the general questions please join the following resources:
|
||||||
|
|
||||||
|
- Kubeflow [Slack channels](https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels).
|
||||||
|
|
||||||
|
- Kubeflow discuss [mailing list](https://www.kubeflow.org/docs/about/community/#kubeflow-mailing-list).
|
||||||
|
|
||||||
|
Please **do not report** security vulnerabilities through public channels.
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Run conformance test and generate test report.
|
# Run conformance test and generate test report.
|
||||||
python test/e2e/v1beta1/scripts/gh-actions/run-e2e-experiment.py --experiment-path examples/v1beta1/hp-tuning/random.yaml --namespace kf-conformance \
|
python test/e2e/v1beta1/scripts/gh-actions/run-e2e-experiment.py --experiment-path examples/v1beta1/hp-tuning/random.yaml --namespace kf-conformance \
|
||||||
--trial-pod-annotations '{"sidecar.istio.io/inject": "false"}' | tee /tmp/katib-conformance.log
|
--trial-pod-labels '{"sidecar.istio.io/inject": "false"}' | tee /tmp/katib-conformance.log
|
||||||
|
|
||||||
|
|
||||||
# Create the done file.
|
# Create the done file.
|
||||||
|
|
|
@ -180,7 +180,7 @@ SucceededCondition: Succeeded
|
||||||
Previously, we had problems with Istio sidecar containers,
|
Previously, we had problems with Istio sidecar containers,
|
||||||
check [kubeflow/issue#1081](https://github.com/kubeflow/kubeflow/issues/4742).
|
check [kubeflow/issue#1081](https://github.com/kubeflow/kubeflow/issues/4742).
|
||||||
In some cases, it is unable to properly download datasets in training pod.
|
In some cases, it is unable to properly download datasets in training pod.
|
||||||
It was fixed by adding annotation `sidecar.istio.io/inject: false` to appropriate Trial job in Katib controller.
|
It was fixed by adding label `sidecar.istio.io/inject: false` to appropriate Trial job in Katib controller.
|
||||||
|
|
||||||
Various CRD can have unified design and it is hard to understand where annotation must be specified
|
Various CRD can have unified design and it is hard to understand where annotation must be specified
|
||||||
to disable Istio injection for the running pods.
|
to disable Istio injection for the running pods.
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
# Proposals
|
||||||
|
|
||||||
|
Kubeflow uses the KEP process to document large scale changes to the project.
|
||||||
|
|
||||||
|
Details on the process (including the KEP template, recommendations, etc.) can be found at
|
||||||
|
[kubeflow/community/proposals](https://github.com/kubeflow/community/blob/master/proposals/README.md)
|
|
@ -74,7 +74,7 @@ spec:
|
||||||
- name: epochs
|
- name: epochs
|
||||||
container:
|
container:
|
||||||
name: model-training
|
name: model-training
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -62,7 +62,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -45,7 +45,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -45,7 +45,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -44,7 +44,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -57,7 +57,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -63,7 +63,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -42,7 +42,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -63,7 +63,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -42,7 +42,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -43,7 +43,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/simple-pbt:v0.18.0
|
image: ghcr.io/kubeflow/katib/simple-pbt:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pbt/pbt_test.py"
|
- "/opt/pbt/pbt_test.py"
|
||||||
|
|
|
@ -42,7 +42,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -42,7 +42,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -222,7 +222,7 @@
|
||||||
" \"spec\": {\n",
|
" \"spec\": {\n",
|
||||||
" \"template\": {\n",
|
" \"template\": {\n",
|
||||||
" \"metadata\": {\n",
|
" \"metadata\": {\n",
|
||||||
" \"annotations\": {\n",
|
" \"labels\": {\n",
|
||||||
" \"sidecar.istio.io/inject\": \"false\"\n",
|
" \"sidecar.istio.io/inject\": \"false\"\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" },\n",
|
" },\n",
|
||||||
|
|
|
@ -210,7 +210,7 @@
|
||||||
" \"restartPolicy\": \"OnFailure\",\n",
|
" \"restartPolicy\": \"OnFailure\",\n",
|
||||||
" \"template\": {\n",
|
" \"template\": {\n",
|
||||||
" \"metadata\": {\n",
|
" \"metadata\": {\n",
|
||||||
" \"annotations\": {\n",
|
" \"labels\": {\n",
|
||||||
" \"sidecar.istio.io/inject\": \"false\"\n",
|
" \"sidecar.istio.io/inject\": \"false\"\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" },\n",
|
" },\n",
|
||||||
|
@ -236,7 +236,7 @@
|
||||||
" \"restartPolicy\": \"OnFailure\",\n",
|
" \"restartPolicy\": \"OnFailure\",\n",
|
||||||
" \"template\": {\n",
|
" \"template\": {\n",
|
||||||
" \"metadata\": {\n",
|
" \"metadata\": {\n",
|
||||||
" \"annotations\": {\n",
|
" \"labels\": {\n",
|
||||||
" \"sidecar.istio.io/inject\": \"false\"\n",
|
" \"sidecar.istio.io/inject\": \"false\"\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" },\n",
|
" },\n",
|
||||||
|
@ -360,7 +360,7 @@
|
||||||
" \"restartPolicy\": \"OnFailure\",\n",
|
" \"restartPolicy\": \"OnFailure\",\n",
|
||||||
" \"template\": {\n",
|
" \"template\": {\n",
|
||||||
" \"metadata\": {\n",
|
" \"metadata\": {\n",
|
||||||
" \"annotations\": {\n",
|
" \"labels\": {\n",
|
||||||
" \"sidecar.istio.io/inject\": \"false\"\n",
|
" \"sidecar.istio.io/inject\": \"false\"\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" },\n",
|
" },\n",
|
||||||
|
@ -401,7 +401,7 @@
|
||||||
" \"restartPolicy\": \"OnFailure\",\n",
|
" \"restartPolicy\": \"OnFailure\",\n",
|
||||||
" \"template\": {\n",
|
" \"template\": {\n",
|
||||||
" \"metadata\": {\n",
|
" \"metadata\": {\n",
|
||||||
" \"annotations\": {\n",
|
" \"labels\": {\n",
|
||||||
" \"sidecar.istio.io/inject\": \"false\"\n",
|
" \"sidecar.istio.io/inject\": \"false\"\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" },\n",
|
" },\n",
|
||||||
|
@ -600,7 +600,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAAAAABXZoBIAAAA1ElEQVR4nN3QPwtBYRQG8EMU0e0uZLIw+QKXRZlMGC0GX8CglE0pk0VxPwQmE5YrJYPVIjYMlImSwXNiMOi97319AM/6O6fzh+g/Y5hr5mrRNByseAZba4D7EnlSN8wy3uAYXJOwDEw0ohKwD9mtxehqRLQBCnZr8GPkJ/Ll79y0m37GiIjiK2AQsGMYiIbryyvjmZO20U9gAIcjTg43GhfethOROToO+En6xRUlZhnSjd+I6BY7xVIRY79w4XapR9IOSTWWYSWUqE0xlH771R7UrULefm5U2pxVCt0AAAAASUVORK5CYII=\n",
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAAAAABXZoBIAAAA1ElEQVR4nN3QPwtBYRQG8EMU0e0uZLIw+QKXRZlMGC0GX8CglE0pk0VxPwQmE5YrJYPVIjYMlImSwXNiMOi97319AM/6O6fzh+g/Y5hr5mrRNByseAZba4D7EnlSN8wy3uAYXJOwDEw0ohKwD9mtxehqRLQBCnZr8GPkJ/Ll79y0m37GiIjiK2AQsGMYiIbryyvjmZO20U9gAIcjTg43GhfethOROToO+En6xRUlZhnSjd+I6BY7xVIRY79w4XapR9IOSTWWYSWUqE0xlH771R7UrULefm5U2pxVCt0AAAAASUVORK5CYII=",
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<PIL.BmpImagePlugin.BmpImageFile image mode=L size=28x28 at 0x7F9A711F33A0>"
|
"<PIL.BmpImagePlugin.BmpImageFile image mode=L size=28x28 at 0x7F9A711F33A0>"
|
||||||
]
|
]
|
||||||
|
|
|
@ -96,9 +96,7 @@ def horovod_mnist_hpo(
|
||||||
"Launcher": {
|
"Launcher": {
|
||||||
"replicas": 1,
|
"replicas": 1,
|
||||||
"template": {
|
"template": {
|
||||||
"metadata": {
|
"metadata": {"labels": {"sidecar.istio.io/inject": "false"}},
|
||||||
"annotations": {"sidecar.istio.io/inject": "false"}
|
|
||||||
},
|
|
||||||
"spec": {
|
"spec": {
|
||||||
"containers": [
|
"containers": [
|
||||||
{
|
{
|
||||||
|
@ -141,9 +139,7 @@ def horovod_mnist_hpo(
|
||||||
"Worker": {
|
"Worker": {
|
||||||
"replicas": 2,
|
"replicas": 2,
|
||||||
"template": {
|
"template": {
|
||||||
"metadata": {
|
"metadata": {"labels": {"sidecar.istio.io/inject": "false"}},
|
||||||
"annotations": {"sidecar.istio.io/inject": "false"}
|
|
||||||
},
|
|
||||||
"spec": {
|
"spec": {
|
||||||
"containers": [
|
"containers": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,7 +46,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
@ -61,7 +61,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -56,7 +56,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: tensorflow
|
- name: tensorflow
|
||||||
image: ghcr.io/kubeflow/katib/tf-mnist-with-summaries:v0.18.0
|
image: ghcr.io/kubeflow/katib/tf-mnist-with-summaries:latest
|
||||||
command:
|
command:
|
||||||
- "python"
|
- "python"
|
||||||
- "/opt/tf-mnist-with-summaries/mnist.py"
|
- "/opt/tf-mnist-with-summaries/mnist.py"
|
||||||
|
|
|
@ -67,7 +67,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -52,7 +52,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -54,7 +54,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -49,7 +49,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -60,7 +60,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/darts-cnn-cifar10-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/darts-cnn-cifar10-cpu:latest
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- run_trial.py
|
- run_trial.py
|
||||||
|
|
|
@ -77,7 +77,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/darts-cnn-cifar10-gpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/darts-cnn-cifar10-gpu:latest
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- run_trial.py
|
- run_trial.py
|
||||||
|
|
|
@ -139,7 +139,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/enas-cnn-cifar10-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/enas-cnn-cifar10-cpu:latest
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- -u
|
- -u
|
||||||
|
|
|
@ -136,7 +136,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/enas-cnn-cifar10-gpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/enas-cnn-cifar10-gpu:latest
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- -u
|
- -u
|
||||||
|
|
|
@ -43,7 +43,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -43,7 +43,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
" \"spec\": {\n",
|
" \"spec\": {\n",
|
||||||
" \"template\": {\n",
|
" \"template\": {\n",
|
||||||
" \"metadata\": {\n",
|
" \"metadata\": {\n",
|
||||||
" \"annotations\": {\n",
|
" \"labels\": {\n",
|
||||||
" \"sidecar.istio.io/inject\": \"false\"\n",
|
" \"sidecar.istio.io/inject\": \"false\"\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" },\n",
|
" },\n",
|
||||||
|
|
|
@ -224,7 +224,7 @@
|
||||||
" \"spec\": {\n",
|
" \"spec\": {\n",
|
||||||
" \"template\": {\n",
|
" \"template\": {\n",
|
||||||
" \"metadata\": {\n",
|
" \"metadata\": {\n",
|
||||||
" \"annotations\": {\n",
|
" \"labels\": {\n",
|
||||||
" \"sidecar.istio.io/inject\": \"false\"\n",
|
" \"sidecar.istio.io/inject\": \"false\"\n",
|
||||||
" }\n",
|
" }\n",
|
||||||
" },\n",
|
" },\n",
|
||||||
|
|
|
@ -88,7 +88,7 @@ spec:
|
||||||
description: Number of epochs
|
description: Number of epochs
|
||||||
steps:
|
steps:
|
||||||
- name: model-training
|
- name: model-training
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -66,7 +66,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
14
go.mod
14
go.mod
|
@ -1,6 +1,6 @@
|
||||||
module github.com/kubeflow/katib
|
module github.com/kubeflow/katib
|
||||||
|
|
||||||
go 1.22.0
|
go 1.23.0
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/DATA-DOG/go-sqlmock v1.5.0
|
github.com/DATA-DOG/go-sqlmock v1.5.0
|
||||||
|
@ -83,7 +83,7 @@ require (
|
||||||
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
github.com/go-openapi/jsonreference v0.21.0 // indirect
|
||||||
github.com/go-openapi/swag v0.23.0 // indirect
|
github.com/go-openapi/swag v0.23.0 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.1 // indirect
|
github.com/golang-jwt/jwt/v4 v4.5.2 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.4 // indirect
|
github.com/golang/protobuf v1.5.4 // indirect
|
||||||
github.com/google/gnostic-models v0.6.8 // indirect
|
github.com/google/gnostic-models v0.6.8 // indirect
|
||||||
|
@ -128,15 +128,15 @@ require (
|
||||||
go.uber.org/atomic v1.11.0 // indirect
|
go.uber.org/atomic v1.11.0 // indirect
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.26.0 // indirect
|
go.uber.org/zap v1.26.0 // indirect
|
||||||
golang.org/x/crypto v0.31.0 // indirect
|
golang.org/x/crypto v0.35.0 // indirect
|
||||||
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
|
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
|
||||||
golang.org/x/mod v0.20.0 // indirect
|
golang.org/x/mod v0.20.0 // indirect
|
||||||
golang.org/x/net v0.33.0 // indirect
|
golang.org/x/net v0.33.0 // indirect
|
||||||
golang.org/x/oauth2 v0.21.0 // indirect
|
golang.org/x/oauth2 v0.21.0 // indirect
|
||||||
golang.org/x/sync v0.10.0 // indirect
|
golang.org/x/sync v0.11.0 // indirect
|
||||||
golang.org/x/sys v0.28.0 // indirect
|
golang.org/x/sys v0.30.0 // indirect
|
||||||
golang.org/x/term v0.27.0 // indirect
|
golang.org/x/term v0.29.0 // indirect
|
||||||
golang.org/x/text v0.21.0 // indirect
|
golang.org/x/text v0.22.0 // indirect
|
||||||
golang.org/x/time v0.6.0 // indirect
|
golang.org/x/time v0.6.0 // indirect
|
||||||
golang.org/x/tools v0.24.0 // indirect
|
golang.org/x/tools v0.24.0 // indirect
|
||||||
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
|
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
|
||||||
|
|
24
go.sum
24
go.sum
|
@ -243,8 +243,8 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69
|
||||||
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
|
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
|
||||||
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
|
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo=
|
github.com/golang-jwt/jwt/v4 v4.5.2 h1:YtQM7lnr8iZ+j5q71MGKkNw9Mn7AjHM68uc9g5fXeUI=
|
||||||
github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
github.com/golang-jwt/jwt/v4 v4.5.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
|
||||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
|
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
|
||||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
|
||||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||||
|
@ -728,8 +728,8 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y
|
||||||
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||||
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||||
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
|
golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58=
|
||||||
golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
|
golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs=
|
||||||
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
|
golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ=
|
||||||
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
@ -853,8 +853,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
|
||||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
|
golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
|
||||||
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
@ -930,13 +930,13 @@ golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||||
golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
|
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
|
||||||
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||||
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
|
golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
|
||||||
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
|
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
|
||||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -947,8 +947,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||||
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
|
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
|
||||||
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
|
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
|
||||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||||
|
|
|
@ -25,4 +25,4 @@ if [ -z "$(command -v golangci-lint)" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo 'Running golangci-lint'
|
echo 'Running golangci-lint'
|
||||||
golangci-lint run --timeout 5m --go 1.22
|
golangci-lint run --timeout 5m --go 1.23
|
||||||
|
|
|
@ -15,10 +15,10 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
katib.kubeflow.org/component: controller
|
katib.kubeflow.org/component: controller
|
||||||
|
sidecar.istio.io/inject: "false"
|
||||||
annotations:
|
annotations:
|
||||||
prometheus.io/scrape: "true"
|
prometheus.io/scrape: "true"
|
||||||
prometheus.io/port: "8080"
|
prometheus.io/port: "8080"
|
||||||
sidecar.istio.io/inject: "false"
|
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: katib-controller
|
serviceAccountName: katib-controller
|
||||||
containers:
|
containers:
|
||||||
|
@ -58,6 +58,15 @@ spec:
|
||||||
name: katib-config
|
name: katib-config
|
||||||
subPath: katib-config.yaml
|
subPath: katib-config.yaml
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
securityContext:
|
||||||
|
runAsNonRoot: true
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
runAsUser: 1000
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
volumes:
|
volumes:
|
||||||
- name: cert
|
- name: cert
|
||||||
secret:
|
secret:
|
||||||
|
|
|
@ -15,7 +15,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
@ -33,7 +33,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/enas-cnn-cifar10-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/enas-cnn-cifar10-cpu:latest
|
||||||
command:
|
command:
|
||||||
- python3
|
- python3
|
||||||
- -u
|
- -u
|
||||||
|
@ -54,7 +54,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
@ -68,7 +68,7 @@ data:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: pytorch
|
- name: pytorch
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -15,7 +15,6 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
katib.kubeflow.org/component: db-manager
|
katib.kubeflow.org/component: db-manager
|
||||||
annotations:
|
|
||||||
sidecar.istio.io/inject: "false"
|
sidecar.istio.io/inject: "false"
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -40,3 +39,12 @@ spec:
|
||||||
initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
periodSeconds: 60
|
periodSeconds: 60
|
||||||
failureThreshold: 5
|
failureThreshold: 5
|
||||||
|
securityContext:
|
||||||
|
runAsNonRoot: true
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
runAsUser: 1000
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
|
|
@ -17,9 +17,11 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
katib.kubeflow.org/component: mysql
|
katib.kubeflow.org/component: mysql
|
||||||
annotations:
|
|
||||||
sidecar.istio.io/inject: "false"
|
sidecar.istio.io/inject: "false"
|
||||||
spec:
|
spec:
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 999
|
||||||
|
fsGroupChangePolicy: OnRootMismatch
|
||||||
containers:
|
containers:
|
||||||
- name: katib-mysql
|
- name: katib-mysql
|
||||||
image: mysql:8.0.29
|
image: mysql:8.0.29
|
||||||
|
@ -68,6 +70,16 @@ spec:
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: katib-mysql
|
- name: katib-mysql
|
||||||
mountPath: /var/lib/mysql
|
mountPath: /var/lib/mysql
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 999
|
||||||
|
runAsGroup: 999
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
volumes:
|
volumes:
|
||||||
- name: katib-mysql
|
- name: katib-mysql
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
|
|
|
@ -17,8 +17,8 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
katib.kubeflow.org/component: postgres
|
katib.kubeflow.org/component: postgres
|
||||||
annotations:
|
|
||||||
sidecar.istio.io/inject: "false"
|
sidecar.istio.io/inject: "false"
|
||||||
|
annotations:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: katib-postgres
|
- name: katib-postgres
|
||||||
|
|
|
@ -15,7 +15,6 @@ spec:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
katib.kubeflow.org/component: ui
|
katib.kubeflow.org/component: ui
|
||||||
annotations:
|
|
||||||
sidecar.istio.io/inject: "false"
|
sidecar.istio.io/inject: "false"
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
@ -33,4 +32,13 @@ spec:
|
||||||
ports:
|
ports:
|
||||||
- name: ui
|
- name: ui
|
||||||
containerPort: 8080
|
containerPort: 8080
|
||||||
|
securityContext:
|
||||||
|
runAsNonRoot: true
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
runAsUser: 1000
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
serviceAccountName: katib-ui
|
serviceAccountName: katib-ui
|
||||||
|
|
|
@ -5,10 +5,10 @@ metadata:
|
||||||
name: katib-webhook-cert
|
name: katib-webhook-cert
|
||||||
spec:
|
spec:
|
||||||
isCA: true
|
isCA: true
|
||||||
commonName: $(KATIB_SERVICE_NAME).$(KATIB_NAMESPACE).svc
|
commonName: KATIB_SERVICE_NAME_PLACEHOLDER.KATIB_NAMESPACE_PLACEHOLDER.svc
|
||||||
dnsNames:
|
dnsNames:
|
||||||
- $(KATIB_SERVICE_NAME).$(KATIB_NAMESPACE).svc
|
- KATIB_SERVICE_NAME_PLACEHOLDER.KATIB_NAMESPACE_PLACEHOLDER.svc
|
||||||
- $(KATIB_SERVICE_NAME).$(KATIB_NAMESPACE).svc.cluster.local
|
- KATIB_SERVICE_NAME_PLACEHOLDER.KATIB_NAMESPACE_PLACEHOLDER.svc.cluster.local
|
||||||
issuerRef:
|
issuerRef:
|
||||||
kind: Issuer
|
kind: Issuer
|
||||||
name: katib-selfsigned-issuer
|
name: katib-selfsigned-issuer
|
||||||
|
|
|
@ -13,40 +13,40 @@ init:
|
||||||
runtime:
|
runtime:
|
||||||
metricsCollectors:
|
metricsCollectors:
|
||||||
- kind: StdOut
|
- kind: StdOut
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: File
|
- kind: File
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: TensorFlowEvent
|
- kind: TensorFlowEvent
|
||||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
suggestions:
|
suggestions:
|
||||||
- algorithmName: random
|
- algorithmName: random
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: tpe
|
- algorithmName: tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: grid
|
- algorithmName: grid
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: hyperband
|
- algorithmName: hyperband
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperband:latest
|
||||||
- algorithmName: bayesianoptimization
|
- algorithmName: bayesianoptimization
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-skopt:latest
|
||||||
- algorithmName: cmaes
|
- algorithmName: cmaes
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: sobol
|
- algorithmName: sobol
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: multivariate-tpe
|
- algorithmName: multivariate-tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: enas
|
- algorithmName: enas
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-enas:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 400Mi
|
memory: 400Mi
|
||||||
- algorithmName: darts
|
- algorithmName: darts
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-darts:latest
|
||||||
- algorithmName: pbt
|
- algorithmName: pbt
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-pbt:latest
|
||||||
persistentVolumeClaimSpec:
|
persistentVolumeClaimSpec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
|
@ -55,4 +55,4 @@ runtime:
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
earlyStoppings:
|
earlyStoppings:
|
||||||
- algorithmName: medianstop
|
- algorithmName: medianstop
|
||||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:latest
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
---
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
namespace: kubeflow
|
namespace: kubeflow
|
||||||
|
@ -22,48 +21,138 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- patches/katib-cert-injection.yaml
|
|
||||||
|
|
||||||
vars:
|
|
||||||
- fieldref:
|
|
||||||
fieldPath: metadata.namespace
|
|
||||||
name: KATIB_NAMESPACE
|
|
||||||
objref:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
name: katib-controller
|
|
||||||
- fieldref:
|
|
||||||
fieldPath: metadata.name
|
|
||||||
name: KATIB_SERVICE_NAME
|
|
||||||
objref:
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
name: katib-controller
|
|
||||||
- name: KATIB_CERT_NAME
|
|
||||||
objref:
|
|
||||||
kind: Certificate
|
|
||||||
group: cert-manager.io
|
|
||||||
version: v1
|
|
||||||
name: katib-webhook-cert
|
|
||||||
fieldref:
|
|
||||||
fieldpath: metadata.name
|
|
||||||
|
|
||||||
configurations:
|
configurations:
|
||||||
- params.yaml
|
- params.yaml
|
||||||
|
|
||||||
configMapGenerator:
|
configMapGenerator:
|
||||||
- name: katib-config
|
- behavior: create
|
||||||
behavior: create
|
|
||||||
files:
|
files:
|
||||||
- katib-config.yaml
|
- katib-config.yaml
|
||||||
|
name: katib-config
|
||||||
options:
|
options:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
|
patches:
|
||||||
|
- path: patches/katib-cert-injection.yaml
|
||||||
|
replacements:
|
||||||
|
- source:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
kind: Service
|
||||||
|
name: katib-controller
|
||||||
|
version: v1
|
||||||
|
targets:
|
||||||
|
- fieldPaths:
|
||||||
|
- spec.commonName
|
||||||
|
options:
|
||||||
|
delimiter: .
|
||||||
|
index: 1
|
||||||
|
select:
|
||||||
|
group: cert-manager.io
|
||||||
|
kind: Certificate
|
||||||
|
name: katib-webhook-cert
|
||||||
|
version: v1
|
||||||
|
- fieldPaths:
|
||||||
|
- spec.dnsNames.0
|
||||||
|
options:
|
||||||
|
delimiter: .
|
||||||
|
index: 1
|
||||||
|
select:
|
||||||
|
group: cert-manager.io
|
||||||
|
kind: Certificate
|
||||||
|
name: katib-webhook-cert
|
||||||
|
version: v1
|
||||||
|
- fieldPaths:
|
||||||
|
- spec.dnsNames.1
|
||||||
|
options:
|
||||||
|
delimiter: .
|
||||||
|
index: 1
|
||||||
|
select:
|
||||||
|
group: cert-manager.io
|
||||||
|
kind: Certificate
|
||||||
|
name: katib-webhook-cert
|
||||||
|
version: v1
|
||||||
|
- fieldPaths:
|
||||||
|
- metadata.annotations.[cert-manager.io/inject-ca-from]
|
||||||
|
options:
|
||||||
|
delimiter: /
|
||||||
|
create: true
|
||||||
|
select:
|
||||||
|
group: admissionregistration.k8s.io
|
||||||
|
kind: ValidatingWebhookConfiguration
|
||||||
|
version: v1
|
||||||
|
- fieldPaths:
|
||||||
|
- metadata.annotations.[cert-manager.io/inject-ca-from]
|
||||||
|
options:
|
||||||
|
delimiter: /
|
||||||
|
create: true
|
||||||
|
select:
|
||||||
|
group: admissionregistration.k8s.io
|
||||||
|
kind: MutatingWebhookConfiguration
|
||||||
|
version: v1
|
||||||
|
- source:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
kind: Service
|
||||||
|
name: katib-controller
|
||||||
|
version: v1
|
||||||
|
targets:
|
||||||
|
- fieldPaths:
|
||||||
|
- spec.commonName
|
||||||
|
options:
|
||||||
|
delimiter: .
|
||||||
|
select:
|
||||||
|
group: cert-manager.io
|
||||||
|
kind: Certificate
|
||||||
|
name: katib-webhook-cert
|
||||||
|
version: v1
|
||||||
|
- fieldPaths:
|
||||||
|
- spec.dnsNames.0
|
||||||
|
options:
|
||||||
|
delimiter: .
|
||||||
|
select:
|
||||||
|
group: cert-manager.io
|
||||||
|
kind: Certificate
|
||||||
|
name: katib-webhook-cert
|
||||||
|
version: v1
|
||||||
|
- fieldPaths:
|
||||||
|
- spec.dnsNames.1
|
||||||
|
options:
|
||||||
|
delimiter: .
|
||||||
|
select:
|
||||||
|
group: cert-manager.io
|
||||||
|
kind: Certificate
|
||||||
|
name: katib-webhook-cert
|
||||||
|
version: v1
|
||||||
|
- source:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
kind: Certificate
|
||||||
|
name: katib-webhook-cert
|
||||||
|
targets:
|
||||||
|
- fieldPaths:
|
||||||
|
- metadata.annotations.[cert-manager.io/inject-ca-from]
|
||||||
|
options:
|
||||||
|
delimiter: /
|
||||||
|
index: 1
|
||||||
|
create: true
|
||||||
|
select:
|
||||||
|
group: admissionregistration.k8s.io
|
||||||
|
kind: ValidatingWebhookConfiguration
|
||||||
|
version: v1
|
||||||
|
- fieldPaths:
|
||||||
|
- metadata.annotations.[cert-manager.io/inject-ca-from]
|
||||||
|
options:
|
||||||
|
delimiter: /
|
||||||
|
index: 1
|
||||||
|
create: true
|
||||||
|
select:
|
||||||
|
group: admissionregistration.k8s.io
|
||||||
|
kind: MutatingWebhookConfiguration
|
||||||
|
version: v1
|
||||||
|
|
|
@ -4,11 +4,11 @@ kind: ValidatingWebhookConfiguration
|
||||||
metadata:
|
metadata:
|
||||||
name: katib.kubeflow.org
|
name: katib.kubeflow.org
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/inject-ca-from: $(KATIB_NAMESPACE)/$(KATIB_CERT_NAME)
|
cert-manager.io/inject-ca-from: KATIB_NAMESPACE_PLACEHOLDER/KATIB_CERT_NAME_PLACEHOLDER
|
||||||
---
|
---
|
||||||
apiVersion: admissionregistration.k8s.io/v1
|
apiVersion: admissionregistration.k8s.io/v1
|
||||||
kind: MutatingWebhookConfiguration
|
kind: MutatingWebhookConfiguration
|
||||||
metadata:
|
metadata:
|
||||||
name: katib.kubeflow.org
|
name: katib.kubeflow.org
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/inject-ca-from: $(KATIB_NAMESPACE)/$(KATIB_CERT_NAME)
|
cert-manager.io/inject-ca-from: KATIB_NAMESPACE_PLACEHOLDER/KATIB_CERT_NAME_PLACEHOLDER
|
||||||
|
|
|
@ -15,40 +15,40 @@ init:
|
||||||
runtime:
|
runtime:
|
||||||
metricsCollectors:
|
metricsCollectors:
|
||||||
- kind: StdOut
|
- kind: StdOut
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: File
|
- kind: File
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: TensorFlowEvent
|
- kind: TensorFlowEvent
|
||||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
suggestions:
|
suggestions:
|
||||||
- algorithmName: random
|
- algorithmName: random
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: tpe
|
- algorithmName: tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: grid
|
- algorithmName: grid
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: hyperband
|
- algorithmName: hyperband
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperband:latest
|
||||||
- algorithmName: bayesianoptimization
|
- algorithmName: bayesianoptimization
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-skopt:latest
|
||||||
- algorithmName: cmaes
|
- algorithmName: cmaes
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: sobol
|
- algorithmName: sobol
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: multivariate-tpe
|
- algorithmName: multivariate-tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: enas
|
- algorithmName: enas
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-enas:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 400Mi
|
memory: 400Mi
|
||||||
- algorithmName: darts
|
- algorithmName: darts
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-darts:latest
|
||||||
- algorithmName: pbt
|
- algorithmName: pbt
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-pbt:latest
|
||||||
persistentVolumeClaimSpec:
|
persistentVolumeClaimSpec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
|
@ -57,4 +57,4 @@ runtime:
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
earlyStoppings:
|
earlyStoppings:
|
||||||
- algorithmName: medianstop
|
- algorithmName: medianstop
|
||||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:latest
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
---
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
namespace: kubeflow
|
namespace: kubeflow
|
||||||
|
@ -18,28 +17,28 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
patchesStrategicMerge:
|
|
||||||
- patches/db-manager.yaml
|
|
||||||
# Modify katib-mysql-secrets with parameters for the DB.
|
# Modify katib-mysql-secrets with parameters for the DB.
|
||||||
secretGenerator:
|
|
||||||
- name: katib-mysql-secrets
|
|
||||||
envs:
|
|
||||||
- secrets.env
|
|
||||||
# Secret for webhooks certs.
|
# Secret for webhooks certs.
|
||||||
|
secretGenerator:
|
||||||
|
- envs:
|
||||||
|
- secrets.env
|
||||||
|
name: katib-mysql-secrets
|
||||||
- name: katib-webhook-cert
|
- name: katib-webhook-cert
|
||||||
options:
|
options:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
configMapGenerator:
|
configMapGenerator:
|
||||||
- name: katib-config
|
- behavior: create
|
||||||
behavior: create
|
|
||||||
files:
|
files:
|
||||||
- katib-config.yaml
|
- katib-config.yaml
|
||||||
|
name: katib-config
|
||||||
options:
|
options:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
|
patches:
|
||||||
|
- path: patches/db-manager.yaml
|
||||||
|
|
|
@ -16,40 +16,40 @@ init:
|
||||||
runtime:
|
runtime:
|
||||||
metricsCollectors:
|
metricsCollectors:
|
||||||
- kind: StdOut
|
- kind: StdOut
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: File
|
- kind: File
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: TensorFlowEvent
|
- kind: TensorFlowEvent
|
||||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
suggestions:
|
suggestions:
|
||||||
- algorithmName: random
|
- algorithmName: random
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: tpe
|
- algorithmName: tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: grid
|
- algorithmName: grid
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: hyperband
|
- algorithmName: hyperband
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperband:latest
|
||||||
- algorithmName: bayesianoptimization
|
- algorithmName: bayesianoptimization
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-skopt:latest
|
||||||
- algorithmName: cmaes
|
- algorithmName: cmaes
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: sobol
|
- algorithmName: sobol
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: multivariate-tpe
|
- algorithmName: multivariate-tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: enas
|
- algorithmName: enas
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-enas:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 400Mi
|
memory: 400Mi
|
||||||
- algorithmName: darts
|
- algorithmName: darts
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-darts:latest
|
||||||
- algorithmName: pbt
|
- algorithmName: pbt
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-pbt:latest
|
||||||
persistentVolumeClaimSpec:
|
persistentVolumeClaimSpec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
|
@ -58,4 +58,4 @@ runtime:
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
earlyStoppings:
|
earlyStoppings:
|
||||||
- algorithmName: medianstop
|
- algorithmName: medianstop
|
||||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:latest
|
||||||
|
|
|
@ -1,18 +1,17 @@
|
||||||
---
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
namespace: kubeflow
|
namespace: kubeflow
|
||||||
|
# rbac for leader-election
|
||||||
resources:
|
resources:
|
||||||
- ../katib-standalone
|
- ../katib-standalone
|
||||||
# rbac for leader-election
|
|
||||||
- leader-election-rbac.yaml
|
- leader-election-rbac.yaml
|
||||||
replicas:
|
replicas:
|
||||||
- name: katib-controller
|
- count: 2
|
||||||
count: 2
|
name: katib-controller
|
||||||
configMapGenerator:
|
configMapGenerator:
|
||||||
- name: katib-config
|
- behavior: replace
|
||||||
behavior: replace
|
|
||||||
files:
|
files:
|
||||||
- katib-config.yaml
|
- katib-config.yaml
|
||||||
|
name: katib-config
|
||||||
options:
|
options:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
|
|
|
@ -13,40 +13,40 @@ init:
|
||||||
runtime:
|
runtime:
|
||||||
metricsCollectors:
|
metricsCollectors:
|
||||||
- kind: StdOut
|
- kind: StdOut
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: File
|
- kind: File
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: TensorFlowEvent
|
- kind: TensorFlowEvent
|
||||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
suggestions:
|
suggestions:
|
||||||
- algorithmName: random
|
- algorithmName: random
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: tpe
|
- algorithmName: tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: grid
|
- algorithmName: grid
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: hyperband
|
- algorithmName: hyperband
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperband:latest
|
||||||
- algorithmName: bayesianoptimization
|
- algorithmName: bayesianoptimization
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-skopt:latest
|
||||||
- algorithmName: cmaes
|
- algorithmName: cmaes
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: sobol
|
- algorithmName: sobol
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: multivariate-tpe
|
- algorithmName: multivariate-tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: enas
|
- algorithmName: enas
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-enas:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 400Mi
|
memory: 400Mi
|
||||||
- algorithmName: darts
|
- algorithmName: darts
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-darts:latest
|
||||||
- algorithmName: pbt
|
- algorithmName: pbt
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-pbt:latest
|
||||||
persistentVolumeClaimSpec:
|
persistentVolumeClaimSpec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
|
@ -55,4 +55,4 @@ runtime:
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
earlyStoppings:
|
earlyStoppings:
|
||||||
- algorithmName: medianstop
|
- algorithmName: medianstop
|
||||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:latest
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
# To achieve this, run:
|
# To achieve this, run:
|
||||||
#
|
#
|
||||||
# `kustomize build ./manifests/v1beta1/installs/katib-openshift | oc apply -f - -l type!=local`
|
# `kustomize build ./manifests/v1beta1/installs/katib-openshift | oc apply -f - -l type!=local`
|
||||||
---
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
namespace: kubeflow
|
namespace: kubeflow
|
||||||
|
@ -30,43 +29,41 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
|
|
||||||
patchesJson6902:
|
configMapGenerator:
|
||||||
|
- behavior: create
|
||||||
|
files:
|
||||||
|
- katib-config.yaml
|
||||||
|
name: katib-config
|
||||||
|
options:
|
||||||
|
disableNameSuffixHash: true
|
||||||
|
patches:
|
||||||
# Annotate Service to delegate TLS-secret generation to OpenShift service controller
|
# Annotate Service to delegate TLS-secret generation to OpenShift service controller
|
||||||
# https://docs.openshift.com/container-platform/4.6/security/certificates/service-serving-certificate.html#add-service-certificate_service-serving-certificate
|
# https://docs.openshift.com/container-platform/4.6/security/certificates/service-serving-certificate.html#add-service-certificate_service-serving-certificate
|
||||||
- target:
|
- path: patches/service-serving-cert.yaml
|
||||||
group: ""
|
target:
|
||||||
version: v1
|
|
||||||
kind: Service
|
kind: Service
|
||||||
name: katib-controller
|
name: katib-controller
|
||||||
namespace: kubeflow
|
namespace: kubeflow
|
||||||
path: patches/service-serving-cert.yaml
|
version: v1
|
||||||
# Annotate WebhookConfigurations to delegate `caBundle` population to OpenShift service controller
|
# Annotate WebhookConfigurations to delegate `caBundle` population to OpenShift service controller
|
||||||
# https://docs.openshift.com/container-platform/4.6/security/certificates/service-serving-certificate.html#add-service-certificate-mutating-webhook_service-serving-certificate
|
# https://docs.openshift.com/container-platform/4.6/security/certificates/service-serving-certificate.html#add-service-certificate-mutating-webhook_service-serving-certificate
|
||||||
- target:
|
- path: patches/webhook-inject-cabundle.yaml
|
||||||
|
target:
|
||||||
group: admissionregistration.k8s.io
|
group: admissionregistration.k8s.io
|
||||||
version: v1
|
|
||||||
kind: ValidatingWebhookConfiguration
|
kind: ValidatingWebhookConfiguration
|
||||||
name: katib.kubeflow.org
|
name: katib.kubeflow.org
|
||||||
path: patches/webhook-inject-cabundle.yaml
|
|
||||||
- target:
|
|
||||||
group: admissionregistration.k8s.io
|
|
||||||
version: v1
|
version: v1
|
||||||
|
- path: patches/webhook-inject-cabundle.yaml
|
||||||
|
target:
|
||||||
|
group: admissionregistration.k8s.io
|
||||||
kind: MutatingWebhookConfiguration
|
kind: MutatingWebhookConfiguration
|
||||||
name: katib.kubeflow.org
|
name: katib.kubeflow.org
|
||||||
path: patches/webhook-inject-cabundle.yaml
|
version: v1
|
||||||
|
|
||||||
configMapGenerator:
|
|
||||||
- name: katib-config
|
|
||||||
behavior: create
|
|
||||||
files:
|
|
||||||
- katib-config.yaml
|
|
||||||
options:
|
|
||||||
disableNameSuffixHash: true
|
|
||||||
|
|
|
@ -15,40 +15,40 @@ init:
|
||||||
runtime:
|
runtime:
|
||||||
metricsCollectors:
|
metricsCollectors:
|
||||||
- kind: StdOut
|
- kind: StdOut
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: File
|
- kind: File
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: TensorFlowEvent
|
- kind: TensorFlowEvent
|
||||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
suggestions:
|
suggestions:
|
||||||
- algorithmName: random
|
- algorithmName: random
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: tpe
|
- algorithmName: tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: grid
|
- algorithmName: grid
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: hyperband
|
- algorithmName: hyperband
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperband:latest
|
||||||
- algorithmName: bayesianoptimization
|
- algorithmName: bayesianoptimization
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-skopt:latest
|
||||||
- algorithmName: cmaes
|
- algorithmName: cmaes
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: sobol
|
- algorithmName: sobol
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: multivariate-tpe
|
- algorithmName: multivariate-tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: enas
|
- algorithmName: enas
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-enas:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 400Mi
|
memory: 400Mi
|
||||||
- algorithmName: darts
|
- algorithmName: darts
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-darts:latest
|
||||||
- algorithmName: pbt
|
- algorithmName: pbt
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-pbt:latest
|
||||||
persistentVolumeClaimSpec:
|
persistentVolumeClaimSpec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
|
@ -57,4 +57,4 @@ runtime:
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
earlyStoppings:
|
earlyStoppings:
|
||||||
- algorithmName: medianstop
|
- algorithmName: medianstop
|
||||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:latest
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
---
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
namespace: kubeflow
|
namespace: kubeflow
|
||||||
|
@ -20,25 +19,18 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
patchesJson6902:
|
|
||||||
- target:
|
|
||||||
group: apps
|
|
||||||
version: v1
|
|
||||||
kind: Deployment
|
|
||||||
name: katib-db-manager
|
|
||||||
path: ./patches/db-manager.yaml
|
|
||||||
configMapGenerator:
|
configMapGenerator:
|
||||||
- name: katib-config
|
- behavior: create
|
||||||
behavior: create
|
|
||||||
files:
|
files:
|
||||||
- katib-config.yaml
|
- katib-config.yaml
|
||||||
|
name: katib-config
|
||||||
options:
|
options:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
# Secret for webhooks certs.
|
# Secret for webhooks certs.
|
||||||
|
@ -46,3 +38,10 @@ secretGenerator:
|
||||||
- name: katib-webhook-cert
|
- name: katib-webhook-cert
|
||||||
options:
|
options:
|
||||||
disableNameSuffixHash: true
|
disableNameSuffixHash: true
|
||||||
|
patches:
|
||||||
|
- path: ./patches/db-manager.yaml
|
||||||
|
target:
|
||||||
|
group: apps
|
||||||
|
kind: Deployment
|
||||||
|
name: katib-db-manager
|
||||||
|
version: v1
|
||||||
|
|
|
@ -14,40 +14,40 @@ init:
|
||||||
runtime:
|
runtime:
|
||||||
metricsCollectors:
|
metricsCollectors:
|
||||||
- kind: StdOut
|
- kind: StdOut
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: File
|
- kind: File
|
||||||
image: ghcr.io/kubeflow/katib/file-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/file-metrics-collector:latest
|
||||||
- kind: TensorFlowEvent
|
- kind: TensorFlowEvent
|
||||||
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:v0.18.0
|
image: ghcr.io/kubeflow/katib/tfevent-metrics-collector:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 1Gi
|
memory: 1Gi
|
||||||
suggestions:
|
suggestions:
|
||||||
- algorithmName: random
|
- algorithmName: random
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: tpe
|
- algorithmName: tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperopt:latest
|
||||||
- algorithmName: grid
|
- algorithmName: grid
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: hyperband
|
- algorithmName: hyperband
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-hyperband:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-hyperband:latest
|
||||||
- algorithmName: bayesianoptimization
|
- algorithmName: bayesianoptimization
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-skopt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-skopt:latest
|
||||||
- algorithmName: cmaes
|
- algorithmName: cmaes
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: sobol
|
- algorithmName: sobol
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-goptuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-goptuna:latest
|
||||||
- algorithmName: multivariate-tpe
|
- algorithmName: multivariate-tpe
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-optuna:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-optuna:latest
|
||||||
- algorithmName: enas
|
- algorithmName: enas
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-enas:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-enas:latest
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 400Mi
|
memory: 400Mi
|
||||||
- algorithmName: darts
|
- algorithmName: darts
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-darts:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-darts:latest
|
||||||
- algorithmName: pbt
|
- algorithmName: pbt
|
||||||
image: ghcr.io/kubeflow/katib/suggestion-pbt:v0.18.0
|
image: ghcr.io/kubeflow/katib/suggestion-pbt:latest
|
||||||
persistentVolumeClaimSpec:
|
persistentVolumeClaimSpec:
|
||||||
accessModes:
|
accessModes:
|
||||||
- ReadWriteMany
|
- ReadWriteMany
|
||||||
|
@ -56,4 +56,4 @@ runtime:
|
||||||
storage: 5Gi
|
storage: 5Gi
|
||||||
earlyStoppings:
|
earlyStoppings:
|
||||||
- algorithmName: medianstop
|
- algorithmName: medianstop
|
||||||
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:v0.18.0
|
image: ghcr.io/kubeflow/katib/earlystopping-medianstop:latest
|
||||||
|
|
|
@ -20,13 +20,13 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
configMapGenerator:
|
configMapGenerator:
|
||||||
- name: katib-config
|
- name: katib-config
|
||||||
behavior: create
|
behavior: create
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
---
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
namespace: kubeflow
|
namespace: kubeflow
|
||||||
|
@ -11,46 +10,54 @@ resources:
|
||||||
images:
|
images:
|
||||||
- name: ghcr.io/kubeflow/katib/katib-controller
|
- name: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newName: ghcr.io/kubeflow/katib/katib-controller
|
newName: ghcr.io/kubeflow/katib/katib-controller
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
- name: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
newName: ghcr.io/kubeflow/katib/katib-db-manager
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
- name: ghcr.io/kubeflow/katib/katib-ui
|
- name: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newName: ghcr.io/kubeflow/katib/katib-ui
|
newName: ghcr.io/kubeflow/katib/katib-ui
|
||||||
newTag: v0.18.0
|
newTag: latest
|
||||||
|
|
||||||
patchesStrategicMerge:
|
|
||||||
- patches/remove-namespace.yaml
|
|
||||||
|
|
||||||
patches:
|
patches:
|
||||||
# Extend RBAC permission list of katib-ui so it can
|
# Extend RBAC permission list of katib-ui so it can
|
||||||
# create SubjectAccessReview resources.
|
# create SubjectAccessReview resources.
|
||||||
- target:
|
- path: patches/ui-rbac.yaml
|
||||||
|
target:
|
||||||
|
group: rbac.authorization.k8s.io
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
name: katib-ui
|
name: katib-ui
|
||||||
group: rbac.authorization.k8s.io
|
|
||||||
version: v1
|
version: v1
|
||||||
path: patches/ui-rbac.yaml
|
|
||||||
# Enable RBAC authz checks in UI's backend.
|
# Enable RBAC authz checks in UI's backend.
|
||||||
- target:
|
- path: patches/enable-ui-authz-checks.yaml
|
||||||
|
target:
|
||||||
|
kind: Deployment
|
||||||
|
name: katib-ui
|
||||||
version: v1
|
version: v1
|
||||||
kind: Deployment
|
|
||||||
name: katib-ui
|
|
||||||
path: patches/enable-ui-authz-checks.yaml
|
|
||||||
# Allow istio sidecar injection in katib-UI Pod.
|
# Allow istio sidecar injection in katib-UI Pod.
|
||||||
- target:
|
- path: patches/istio-sidecar-injection.yaml
|
||||||
|
target:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: katib-ui
|
name: katib-ui
|
||||||
path: patches/istio-sidecar-injection.yaml
|
- path: patches/remove-namespace.yaml
|
||||||
|
|
||||||
vars:
|
|
||||||
- fieldref:
|
|
||||||
fieldPath: metadata.namespace
|
|
||||||
name: KATIB_UI_NAMESPACE
|
|
||||||
objref:
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
name: katib-ui
|
|
||||||
|
|
||||||
configurations:
|
configurations:
|
||||||
- params.yaml
|
- params.yaml
|
||||||
|
replacements:
|
||||||
|
- source:
|
||||||
|
fieldPath: metadata.namespace
|
||||||
|
group: apps
|
||||||
|
kind: Deployment
|
||||||
|
name: katib-ui
|
||||||
|
version: v1
|
||||||
|
targets:
|
||||||
|
- fieldPaths:
|
||||||
|
- spec.http.0.route.0.destination.host
|
||||||
|
options:
|
||||||
|
delimiter: .
|
||||||
|
index: 1
|
||||||
|
select:
|
||||||
|
group: networking.istio.io
|
||||||
|
kind: VirtualService
|
||||||
|
name: katib-ui
|
||||||
|
version: v1alpha3
|
||||||
|
|
|
@ -6,5 +6,5 @@ metadata:
|
||||||
spec:
|
spec:
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
annotations:
|
labels:
|
||||||
sidecar.istio.io/inject: "true"
|
sidecar.istio.io/inject: "true"
|
||||||
|
|
|
@ -16,6 +16,6 @@ spec:
|
||||||
uri: /katib/
|
uri: /katib/
|
||||||
route:
|
route:
|
||||||
- destination:
|
- destination:
|
||||||
host: katib-ui.$(KATIB_UI_NAMESPACE).svc.cluster.local
|
host: katib-ui.KATIB_UI_NAMESPACE_PLACEHOLDER.svc.cluster.local
|
||||||
port:
|
port:
|
||||||
number: 80
|
number: 80
|
||||||
|
|
|
@ -119,11 +119,11 @@ const (
|
||||||
// JobKindJob is the kind of the Kubernetes Job.
|
// JobKindJob is the kind of the Kubernetes Job.
|
||||||
JobKindJob = "Job"
|
JobKindJob = "Job"
|
||||||
|
|
||||||
// AnnotationIstioSidecarInjectName is the annotation of Istio Sidecar
|
// LabelIstioSidecarInjectName is the label of Istio Sidecar
|
||||||
AnnotationIstioSidecarInjectName = "sidecar.istio.io/inject"
|
LabelIstioSidecarInjectName = "sidecar.istio.io/inject"
|
||||||
|
|
||||||
// AnnotationIstioSidecarInjectValue is the value of Istio Sidecar annotation
|
// LabelIstioSidecarInjectValue is the value of Istio Sidecar label
|
||||||
AnnotationIstioSidecarInjectValue = "false"
|
LabelIstioSidecarInjectValue = "false"
|
||||||
|
|
||||||
// LabelTrialTemplateConfigMapName is the label name for the Trial templates configMap
|
// LabelTrialTemplateConfigMapName is the label name for the Trial templates configMap
|
||||||
LabelTrialTemplateConfigMapName = "katib.kubeflow.org/component"
|
LabelTrialTemplateConfigMapName = "katib.kubeflow.org/component"
|
||||||
|
|
|
@ -104,7 +104,7 @@ func (g *General) DesiredDeployment(s *suggestionsv1beta1.Suggestion) (*appsv1.D
|
||||||
Template: corev1.PodTemplateSpec{
|
Template: corev1.PodTemplateSpec{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Labels: util.SuggestionLabels(s),
|
Labels: util.SuggestionLabels(s),
|
||||||
Annotations: util.SuggestionAnnotations(s),
|
Annotations: s.Annotations,
|
||||||
},
|
},
|
||||||
Spec: corev1.PodSpec{
|
Spec: corev1.PodSpec{
|
||||||
Containers: g.desiredContainers(s, suggestionConfigData, earlyStoppingConfigData),
|
Containers: g.desiredContainers(s, suggestionConfigData, earlyStoppingConfigData),
|
||||||
|
|
|
@ -76,11 +76,11 @@ var (
|
||||||
consts.LabelDeploymentName: suggestionName + "-" + suggestionAlgorithm,
|
consts.LabelDeploymentName: suggestionName + "-" + suggestionAlgorithm,
|
||||||
consts.LabelExperimentName: suggestionName,
|
consts.LabelExperimentName: suggestionName,
|
||||||
consts.LabelSuggestionName: suggestionName,
|
consts.LabelSuggestionName: suggestionName,
|
||||||
|
consts.LabelIstioSidecarInjectName: consts.LabelIstioSidecarInjectValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
podAnnotations = map[string]string{
|
podAnnotations = map[string]string{
|
||||||
"custom-annotation": "test",
|
"custom-annotation": "test",
|
||||||
"sidecar.istio.io/inject": "false",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace = "kubeflow"
|
namespace = "kubeflow"
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2022 The Kubeflow Authors.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package util
|
|
||||||
|
|
||||||
import (
|
|
||||||
suggestionsv1beta1 "github.com/kubeflow/katib/pkg/apis/controller/suggestions/v1beta1"
|
|
||||||
"github.com/kubeflow/katib/pkg/controller.v1beta1/consts"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SuggestionAnnotations returns the expected suggestion annotations.
|
|
||||||
func SuggestionAnnotations(instance *suggestionsv1beta1.Suggestion) map[string]string {
|
|
||||||
return appendAnnotation(
|
|
||||||
instance.Annotations,
|
|
||||||
consts.AnnotationIstioSidecarInjectName,
|
|
||||||
consts.AnnotationIstioSidecarInjectValue)
|
|
||||||
}
|
|
||||||
|
|
||||||
func appendAnnotation(annotations map[string]string, newAnnotationName string, newAnnotationValue string) map[string]string {
|
|
||||||
res := make(map[string]string)
|
|
||||||
for k, v := range annotations {
|
|
||||||
res[k] = v
|
|
||||||
}
|
|
||||||
res[newAnnotationName] = newAnnotationValue
|
|
||||||
|
|
||||||
return res
|
|
||||||
}
|
|
|
@ -22,6 +22,7 @@ import (
|
||||||
"github.com/kubeflow/katib/pkg/controller.v1beta1/consts"
|
"github.com/kubeflow/katib/pkg/controller.v1beta1/consts"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// SuggestionLabels returns the expected suggestion labels.
|
||||||
// SuggestionLabels returns the expected suggestion labels.
|
// SuggestionLabels returns the expected suggestion labels.
|
||||||
func SuggestionLabels(instance *suggestionsv1beta1.Suggestion) map[string]string {
|
func SuggestionLabels(instance *suggestionsv1beta1.Suggestion) map[string]string {
|
||||||
res := make(map[string]string)
|
res := make(map[string]string)
|
||||||
|
@ -31,7 +32,7 @@ func SuggestionLabels(instance *suggestionsv1beta1.Suggestion) map[string]string
|
||||||
res[consts.LabelDeploymentName] = GetSuggestionDeploymentName(instance)
|
res[consts.LabelDeploymentName] = GetSuggestionDeploymentName(instance)
|
||||||
res[consts.LabelExperimentName] = instance.Name
|
res[consts.LabelExperimentName] = instance.Name
|
||||||
res[consts.LabelSuggestionName] = instance.Name
|
res[consts.LabelSuggestionName] = instance.Name
|
||||||
|
res[consts.LabelIstioSidecarInjectName] = consts.LabelIstioSidecarInjectValue
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,3 +46,13 @@ func TrialLabels(instance *experimentsv1beta1.Experiment) map[string]string {
|
||||||
|
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AppendIstioSidecarLabel adds the Istio sidecar injection label to a labels map
|
||||||
|
func AppendIstioSidecarLabel(labels map[string]string) map[string]string {
|
||||||
|
res := make(map[string]string)
|
||||||
|
for k, v := range labels {
|
||||||
|
res[k] = v
|
||||||
|
}
|
||||||
|
res[consts.LabelIstioSidecarInjectName] = consts.LabelIstioSidecarInjectValue
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
|
|
@ -786,11 +786,13 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@babel/code-frame": {
|
"node_modules/@babel/code-frame": {
|
||||||
"version": "7.24.7",
|
"version": "7.26.2",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
|
||||||
"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
|
"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/highlight": "^7.24.7",
|
"@babel/helper-validator-identifier": "^7.25.9",
|
||||||
|
"js-tokens": "^4.0.0",
|
||||||
"picocolors": "^1.0.0"
|
"picocolors": "^1.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -1169,17 +1171,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helper-string-parser": {
|
"node_modules/@babel/helper-string-parser": {
|
||||||
"version": "7.24.8",
|
"version": "7.25.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
|
||||||
"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==",
|
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helper-validator-identifier": {
|
"node_modules/@babel/helper-validator-identifier": {
|
||||||
"version": "7.24.7",
|
"version": "7.25.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
|
||||||
"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
|
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
|
@ -1221,25 +1225,27 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helpers": {
|
"node_modules/@babel/helpers": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.10",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
|
||||||
"integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==",
|
"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/template": "^7.25.0",
|
"@babel/template": "^7.26.9",
|
||||||
"@babel/types": "^7.25.0"
|
"@babel/types": "^7.26.10"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/helpers/node_modules/@babel/template": {
|
"node_modules/@babel/helpers/node_modules/@babel/template": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
|
||||||
"integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
|
"integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/code-frame": "^7.24.7",
|
"@babel/code-frame": "^7.26.2",
|
||||||
"@babel/parser": "^7.25.0",
|
"@babel/parser": "^7.26.9",
|
||||||
"@babel/types": "^7.25.0"
|
"@babel/types": "^7.26.9"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
|
@ -1249,6 +1255,7 @@
|
||||||
"version": "7.24.7",
|
"version": "7.24.7",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
|
||||||
"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
|
"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-validator-identifier": "^7.24.7",
|
"@babel/helper-validator-identifier": "^7.24.7",
|
||||||
"chalk": "^2.4.2",
|
"chalk": "^2.4.2",
|
||||||
|
@ -1260,9 +1267,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/parser": {
|
"node_modules/@babel/parser": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.10",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
|
||||||
"integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA==",
|
"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/types": "^7.26.10"
|
||||||
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"parser": "bin/babel-parser.js"
|
"parser": "bin/babel-parser.js"
|
||||||
},
|
},
|
||||||
|
@ -2538,13 +2549,13 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/types": {
|
"node_modules/@babel/types": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.10",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
|
||||||
"integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==",
|
"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/helper-string-parser": "^7.24.8",
|
"@babel/helper-string-parser": "^7.25.9",
|
||||||
"@babel/helper-validator-identifier": "^7.24.7",
|
"@babel/helper-validator-identifier": "^7.25.9"
|
||||||
"to-fast-properties": "^2.0.0"
|
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
|
@ -3026,10 +3037,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
|
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -3202,10 +3214,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
|
"node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -4872,6 +4885,7 @@
|
||||||
"version": "3.2.1",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"color-convert": "^1.9.0"
|
"color-convert": "^1.9.0"
|
||||||
},
|
},
|
||||||
|
@ -5113,10 +5127,11 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/axios": {
|
"node_modules/axios": {
|
||||||
"version": "1.7.9",
|
"version": "1.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
|
||||||
"integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
|
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"follow-redirects": "^1.15.6",
|
"follow-redirects": "^1.15.6",
|
||||||
"form-data": "^4.0.0",
|
"form-data": "^4.0.0",
|
||||||
|
@ -5412,9 +5427,10 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0"
|
"balanced-match": "^1.0.0"
|
||||||
}
|
}
|
||||||
|
@ -5710,6 +5726,7 @@
|
||||||
"version": "2.4.2",
|
"version": "2.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ansi-styles": "^3.2.1",
|
"ansi-styles": "^3.2.1",
|
||||||
"escape-string-regexp": "^1.0.5",
|
"escape-string-regexp": "^1.0.5",
|
||||||
|
@ -6017,6 +6034,7 @@
|
||||||
"version": "1.9.3",
|
"version": "1.9.3",
|
||||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"color-name": "1.1.3"
|
"color-name": "1.1.3"
|
||||||
}
|
}
|
||||||
|
@ -6024,7 +6042,8 @@
|
||||||
"node_modules/color-name": {
|
"node_modules/color-name": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||||
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
|
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/color-support": {
|
"node_modules/color-support": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
|
@ -8122,6 +8141,7 @@
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||||
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
|
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
|
||||||
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.8.0"
|
"node": ">=0.8.0"
|
||||||
}
|
}
|
||||||
|
@ -8276,10 +8296,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/eslint/node_modules/brace-expansion": {
|
"node_modules/eslint/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -9491,6 +9512,7 @@
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||||
|
"dev": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
|
@ -10710,10 +10732,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/istanbul-lib-source-maps/node_modules/brace-expansion": {
|
"node_modules/istanbul-lib-source-maps/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -11115,10 +11138,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/karma-coverage-istanbul-reporter/node_modules/brace-expansion": {
|
"node_modules/karma-coverage-istanbul-reporter/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -11172,10 +11196,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/karma/node_modules/brace-expansion": {
|
"node_modules/karma/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -12444,10 +12469,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-gyp/node_modules/brace-expansion": {
|
"node_modules/node-gyp/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -14804,10 +14830,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rimraf/node_modules/brace-expansion": {
|
"node_modules/rimraf/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -15358,10 +15385,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/shelljs/node_modules/brace-expansion": {
|
"node_modules/shelljs/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -15971,10 +15999,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/stylus/node_modules/brace-expansion": {
|
"node_modules/stylus/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -16023,6 +16052,7 @@
|
||||||
"version": "5.5.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||||
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"has-flag": "^3.0.0"
|
"has-flag": "^3.0.0"
|
||||||
},
|
},
|
||||||
|
@ -16328,10 +16358,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/test-exclude/node_modules/brace-expansion": {
|
"node_modules/test-exclude/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
"concat-map": "0.0.1"
|
"concat-map": "0.0.1"
|
||||||
|
@ -16418,14 +16449,6 @@
|
||||||
"tmp": "^0.2.0"
|
"tmp": "^0.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/to-fast-properties": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/to-regex-range": {
|
"node_modules/to-regex-range": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
|
@ -16588,10 +16611,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tslint/node_modules/brace-expansion": {
|
"node_modules/tslint/node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -18202,11 +18226,12 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@babel/code-frame": {
|
"@babel/code-frame": {
|
||||||
"version": "7.24.7",
|
"version": "7.26.2",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
|
||||||
"integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
|
"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/highlight": "^7.24.7",
|
"@babel/helper-validator-identifier": "^7.25.9",
|
||||||
|
"js-tokens": "^4.0.0",
|
||||||
"picocolors": "^1.0.0"
|
"picocolors": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -18493,14 +18518,14 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/helper-string-parser": {
|
"@babel/helper-string-parser": {
|
||||||
"version": "7.24.8",
|
"version": "7.25.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
|
||||||
"integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ=="
|
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA=="
|
||||||
},
|
},
|
||||||
"@babel/helper-validator-identifier": {
|
"@babel/helper-validator-identifier": {
|
||||||
"version": "7.24.7",
|
"version": "7.25.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
|
||||||
"integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w=="
|
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ=="
|
||||||
},
|
},
|
||||||
"@babel/helper-validator-option": {
|
"@babel/helper-validator-option": {
|
||||||
"version": "7.24.8",
|
"version": "7.24.8",
|
||||||
|
@ -18532,22 +18557,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/helpers": {
|
"@babel/helpers": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.10",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
|
||||||
"integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==",
|
"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/template": "^7.25.0",
|
"@babel/template": "^7.26.9",
|
||||||
"@babel/types": "^7.25.0"
|
"@babel/types": "^7.26.10"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/template": {
|
"@babel/template": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.9",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz",
|
||||||
"integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==",
|
"integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/code-frame": "^7.24.7",
|
"@babel/code-frame": "^7.26.2",
|
||||||
"@babel/parser": "^7.25.0",
|
"@babel/parser": "^7.26.9",
|
||||||
"@babel/types": "^7.25.0"
|
"@babel/types": "^7.26.9"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18556,6 +18581,7 @@
|
||||||
"version": "7.24.7",
|
"version": "7.24.7",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
|
||||||
"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
|
"integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/helper-validator-identifier": "^7.24.7",
|
"@babel/helper-validator-identifier": "^7.24.7",
|
||||||
"chalk": "^2.4.2",
|
"chalk": "^2.4.2",
|
||||||
|
@ -18564,9 +18590,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/parser": {
|
"@babel/parser": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.10",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
|
||||||
"integrity": "sha512-CzdIU9jdP0dg7HdyB+bHvDJGagUv+qtzZt5rYCWwW6tITNqV9odjp6Qu41gkG0ca5UfdDUWrKkiAnHHdGRnOrA=="
|
"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/types": "^7.26.10"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
|
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
|
||||||
"version": "7.25.0",
|
"version": "7.25.0",
|
||||||
|
@ -19429,13 +19458,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/types": {
|
"@babel/types": {
|
||||||
"version": "7.25.0",
|
"version": "7.26.10",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.0.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
|
||||||
"integrity": "sha512-LcnxQSsd9aXOIgmmSpvZ/1yo46ra2ESYyqLcryaBZOghxy5qqOBjvCWP5JfkI8yl9rlxRgdLTTMCQQRcN2hdCg==",
|
"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/helper-string-parser": "^7.24.8",
|
"@babel/helper-string-parser": "^7.25.9",
|
||||||
"@babel/helper-validator-identifier": "^7.24.7",
|
"@babel/helper-validator-identifier": "^7.25.9"
|
||||||
"to-fast-properties": "^2.0.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@colors/colors": {
|
"@colors/colors": {
|
||||||
|
@ -19740,9 +19768,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -19873,9 +19901,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -21210,6 +21238,7 @@
|
||||||
"version": "3.2.1",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-convert": "^1.9.0"
|
"color-convert": "^1.9.0"
|
||||||
}
|
}
|
||||||
|
@ -21374,9 +21403,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"axios": {
|
"axios": {
|
||||||
"version": "1.7.9",
|
"version": "1.8.3",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
|
||||||
"integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
|
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"follow-redirects": "^1.15.6",
|
"follow-redirects": "^1.15.6",
|
||||||
|
@ -21617,9 +21646,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
|
||||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0"
|
"balanced-match": "^1.0.0"
|
||||||
}
|
}
|
||||||
|
@ -21820,6 +21849,7 @@
|
||||||
"version": "2.4.2",
|
"version": "2.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"ansi-styles": "^3.2.1",
|
"ansi-styles": "^3.2.1",
|
||||||
"escape-string-regexp": "^1.0.5",
|
"escape-string-regexp": "^1.0.5",
|
||||||
|
@ -22048,6 +22078,7 @@
|
||||||
"version": "1.9.3",
|
"version": "1.9.3",
|
||||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"color-name": "1.1.3"
|
"color-name": "1.1.3"
|
||||||
}
|
}
|
||||||
|
@ -22055,7 +22086,8 @@
|
||||||
"color-name": {
|
"color-name": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||||
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
|
"integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"color-support": {
|
"color-support": {
|
||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
|
@ -23552,7 +23584,8 @@
|
||||||
"escape-string-regexp": {
|
"escape-string-regexp": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||||
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
|
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"eslint": {
|
"eslint": {
|
||||||
"version": "7.32.0",
|
"version": "7.32.0",
|
||||||
|
@ -23642,9 +23675,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -24589,7 +24622,8 @@
|
||||||
"has-flag": {
|
"has-flag": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||||
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
|
"integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
|
||||||
|
"dev": true
|
||||||
},
|
},
|
||||||
"has-property-descriptors": {
|
"has-property-descriptors": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
|
@ -25459,9 +25493,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -25749,9 +25783,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -25853,9 +25887,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -26787,9 +26821,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -28465,9 +28499,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -28886,9 +28920,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -29349,9 +29383,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -29404,6 +29438,7 @@
|
||||||
"version": "5.5.0",
|
"version": "5.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||||
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"has-flag": "^3.0.0"
|
"has-flag": "^3.0.0"
|
||||||
}
|
}
|
||||||
|
@ -29617,9 +29652,9 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"balanced-match": "^1.0.0",
|
"balanced-match": "^1.0.0",
|
||||||
|
@ -29693,11 +29728,6 @@
|
||||||
"tmp": "^0.2.0"
|
"tmp": "^0.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"to-fast-properties": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
|
|
||||||
},
|
|
||||||
"to-regex-range": {
|
"to-regex-range": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
|
@ -29808,9 +29838,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"brace-expansion": {
|
"brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
"integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
|
|
@ -692,8 +692,8 @@ class KatibClient(object):
|
||||||
retain_trials,
|
retain_trials,
|
||||||
trial_parameters,
|
trial_parameters,
|
||||||
resources_per_trial,
|
resources_per_trial,
|
||||||
worker_pod_template_spec,
|
|
||||||
master_pod_template_spec,
|
master_pod_template_spec,
|
||||||
|
worker_pod_template_spec,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add parameters to the Katib Experiment.
|
# Add parameters to the Katib Experiment.
|
||||||
|
|
|
@ -95,7 +95,7 @@ def generate_trial_template() -> V1beta1TrialTemplate:
|
||||||
"kind": "Job",
|
"kind": "Job",
|
||||||
"spec": {
|
"spec": {
|
||||||
"template": {
|
"template": {
|
||||||
"metadata": {"annotations": {"sidecar.istio.io/inject": "false"}},
|
"metadata": {"labels": {"sidecar.istio.io/inject": "false"}},
|
||||||
"spec": {
|
"spec": {
|
||||||
"containers": [
|
"containers": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -56,7 +56,7 @@ if os.path.exists(katib_grpc_svc_file):
|
||||||
|
|
||||||
setuptools.setup(
|
setuptools.setup(
|
||||||
name="kubeflow-katib",
|
name="kubeflow-katib",
|
||||||
version="0.18.0",
|
version="0.18.0rc0",
|
||||||
author="Kubeflow Authors",
|
author="Kubeflow Authors",
|
||||||
author_email="premnath.vel@gmail.com",
|
author_email="premnath.vel@gmail.com",
|
||||||
license="Apache License Version 2.0",
|
license="Apache License Version 2.0",
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
|
from pprint import pformat
|
||||||
|
|
||||||
|
import kubeflow.katib as katib
|
||||||
from kubeflow.katib import KatibClient, search
|
from kubeflow.katib import KatibClient, search
|
||||||
from kubeflow.katib.types.types import TrainerResources
|
from kubeflow.katib.types.types import TrainerResources
|
||||||
from kubernetes import client
|
from kubernetes import client
|
||||||
|
@ -12,7 +14,6 @@ EXPERIMENT_TIMEOUT = 60 * 40
|
||||||
# The default logging config.
|
# The default logging config.
|
||||||
logging.basicConfig(level=logging.INFO)
|
logging.basicConfig(level=logging.INFO)
|
||||||
|
|
||||||
|
|
||||||
def run_e2e_experiment_create_by_tune(
|
def run_e2e_experiment_create_by_tune(
|
||||||
katib_client: KatibClient,
|
katib_client: KatibClient,
|
||||||
exp_name: str,
|
exp_name: str,
|
||||||
|
@ -53,9 +54,8 @@ def run_e2e_experiment_create_by_tune(
|
||||||
verify_experiment_results(katib_client, experiment, exp_name, exp_namespace)
|
verify_experiment_results(katib_client, experiment, exp_name, exp_namespace)
|
||||||
|
|
||||||
# Print the Experiment and Suggestion.
|
# Print the Experiment and Suggestion.
|
||||||
logging.debug(katib_client.get_experiment(exp_name, exp_namespace))
|
logging.debug("Experiment:\n%s", pformat(katib_client.get_experiment(exp_name, exp_namespace)))
|
||||||
logging.debug(katib_client.get_suggestion(exp_name, exp_namespace))
|
logging.debug("Suggestion:\n%s", pformat(katib_client.get_suggestion(exp_name, exp_namespace)))
|
||||||
|
|
||||||
|
|
||||||
def run_e2e_experiment_create_by_tune_pytorchjob(
|
def run_e2e_experiment_create_by_tune_pytorchjob(
|
||||||
katib_client: KatibClient,
|
katib_client: KatibClient,
|
||||||
|
@ -115,9 +115,85 @@ def run_e2e_experiment_create_by_tune_pytorchjob(
|
||||||
verify_experiment_results(katib_client, experiment, exp_name, exp_namespace)
|
verify_experiment_results(katib_client, experiment, exp_name, exp_namespace)
|
||||||
|
|
||||||
# Print the Experiment and Suggestion.
|
# Print the Experiment and Suggestion.
|
||||||
logging.debug(katib_client.get_experiment(exp_name, exp_namespace))
|
logging.debug("Experiment:\n%s", pformat(katib_client.get_experiment(exp_name, exp_namespace)))
|
||||||
logging.debug(katib_client.get_suggestion(exp_name, exp_namespace))
|
logging.debug("Suggestion:\n%s", pformat(katib_client.get_suggestion(exp_name, exp_namespace)))
|
||||||
|
|
||||||
|
def run_e2e_experiment_create_by_tune_with_llm_optimization(
|
||||||
|
katib_client: KatibClient,
|
||||||
|
exp_name: str,
|
||||||
|
exp_namespace: str,
|
||||||
|
):
|
||||||
|
import transformers
|
||||||
|
from kubeflow.storage_initializer.hugging_face import (
|
||||||
|
HuggingFaceDatasetParams,
|
||||||
|
HuggingFaceModelParams,
|
||||||
|
HuggingFaceTrainerParams,
|
||||||
|
)
|
||||||
|
from peft import LoraConfig
|
||||||
|
|
||||||
|
# Create Katib Experiment and wait until it is finished.
|
||||||
|
logging.debug("Creating Experiment: {}/{}".format(exp_namespace, exp_name))
|
||||||
|
|
||||||
|
# Use the test case from fine-tuning API tutorial.
|
||||||
|
# https://www.kubeflow.org/docs/components/training/user-guides/fine-tuning/
|
||||||
|
# Create Katib Experiment.
|
||||||
|
# And Wait until Experiment reaches Succeeded condition.
|
||||||
|
katib_client.tune(
|
||||||
|
name=exp_name,
|
||||||
|
namespace=exp_namespace,
|
||||||
|
# BERT model URI and type of Transformer to train it.
|
||||||
|
model_provider_parameters=HuggingFaceModelParams(
|
||||||
|
model_uri="hf://google-bert/bert-base-cased",
|
||||||
|
transformer_type=transformers.AutoModelForSequenceClassification,
|
||||||
|
num_labels=5,
|
||||||
|
),
|
||||||
|
# In order to save test time, use 8 samples from Yelp dataset.
|
||||||
|
dataset_provider_parameters=HuggingFaceDatasetParams(
|
||||||
|
repo_id="yelp_review_full",
|
||||||
|
split="train[:8]",
|
||||||
|
),
|
||||||
|
# Specify HuggingFace Trainer parameters.
|
||||||
|
trainer_parameters=HuggingFaceTrainerParams(
|
||||||
|
training_parameters=transformers.TrainingArguments(
|
||||||
|
output_dir="test_tune_api",
|
||||||
|
save_strategy="no",
|
||||||
|
learning_rate = search.double(min=1e-05, max=5e-05),
|
||||||
|
num_train_epochs=1,
|
||||||
|
),
|
||||||
|
# Set LoRA config to reduce number of trainable model parameters.
|
||||||
|
lora_config=LoraConfig(
|
||||||
|
r = search.int(min=8, max=32),
|
||||||
|
lora_alpha=8,
|
||||||
|
lora_dropout=0.1,
|
||||||
|
bias="none",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
objective_metric_name = "train_loss",
|
||||||
|
objective_type = "minimize",
|
||||||
|
algorithm_name = "random",
|
||||||
|
max_trial_count = 1,
|
||||||
|
parallel_trial_count = 1,
|
||||||
|
resources_per_trial=katib.TrainerResources(
|
||||||
|
num_workers=1,
|
||||||
|
num_procs_per_worker=1,
|
||||||
|
resources_per_worker={"cpu": "2", "memory": "10G",},
|
||||||
|
),
|
||||||
|
storage_config={
|
||||||
|
"size": "10Gi",
|
||||||
|
"access_modes": ["ReadWriteOnce"],
|
||||||
|
},
|
||||||
|
retain_trials=True,
|
||||||
|
)
|
||||||
|
experiment = katib_client.wait_for_experiment_condition(
|
||||||
|
exp_name, exp_namespace, timeout=EXPERIMENT_TIMEOUT
|
||||||
|
)
|
||||||
|
|
||||||
|
# Verify the Experiment results.
|
||||||
|
verify_experiment_results(katib_client, experiment, exp_name, exp_namespace)
|
||||||
|
|
||||||
|
# Print the Experiment and Suggestion.
|
||||||
|
logging.debug("Experiment:\n%s", pformat(katib_client.get_experiment(exp_name, exp_namespace)))
|
||||||
|
logging.debug("Suggestion:\n%s", pformat(katib_client.get_suggestion(exp_name, exp_namespace)))
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
|
@ -189,3 +265,19 @@ if __name__ == "__main__":
|
||||||
logging.info("---------------------------------------------------------------")
|
logging.info("---------------------------------------------------------------")
|
||||||
logging.info("---------------------------------------------------------------")
|
logging.info("---------------------------------------------------------------")
|
||||||
katib_client.delete_experiment(exp_name, exp_namespace)
|
katib_client.delete_experiment(exp_name, exp_namespace)
|
||||||
|
|
||||||
|
exp_name = "tune-example-llm-optimization"
|
||||||
|
exp_namespace = args.namespace
|
||||||
|
try:
|
||||||
|
run_e2e_experiment_create_by_tune_with_llm_optimization(katib_client, exp_name, exp_namespace)
|
||||||
|
logging.info("---------------------------------------------------------------")
|
||||||
|
logging.info(f"E2E is succeeded for Experiment created by tune: {exp_namespace}/{exp_name}")
|
||||||
|
except Exception as e:
|
||||||
|
logging.info("---------------------------------------------------------------")
|
||||||
|
logging.info(f"E2E is failed for Experiment created by tune: {exp_namespace}/{exp_name}")
|
||||||
|
raise e
|
||||||
|
finally:
|
||||||
|
# Delete the Experiment.
|
||||||
|
logging.info("---------------------------------------------------------------")
|
||||||
|
logging.info("---------------------------------------------------------------")
|
||||||
|
katib_client.delete_experiment(exp_name, exp_namespace)
|
||||||
|
|
|
@ -40,7 +40,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
|
@ -40,7 +40,7 @@ spec:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: training-container
|
- name: training-container
|
||||||
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:v0.18.0
|
image: ghcr.io/kubeflow/katib/pytorch-mnist-cpu:latest
|
||||||
command:
|
command:
|
||||||
- "python3"
|
- "python3"
|
||||||
- "/opt/pytorch-mnist/mnist.py"
|
- "/opt/pytorch-mnist/mnist.py"
|
||||||
|
|
Loading…
Reference in New Issue