Compare commits

..

56 Commits

Author SHA1 Message Date
riccardocaselli-clearml
747c018adb Issue 343: [clearml] apiserver-asyncdelete cannot start (-> CrashLoopBackOff in kubernetes) (#353)
Some checks failed
Release Charts / release (push) Has been cancelled
Close inactive issues / close-issues (push) Has been cancelled
Fixed: casted port to string before concatenation

Co-authored-by: Casell <supercasell@gmail.com>
2025-03-12 10:27:22 +01:00
Filippo Brintazzoli
299cc2adb4 Changed: Support kubernetes 1.32 (#351)
Some checks failed
Release Charts / release (push) Has been cancelled
Close inactive issues / close-issues (push) Has been cancelled
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-02-25 11:47:55 +01:00
Filippo Brintazzoli
1479cf9ed2 [Serving] Changed: Support kubernetes 1.32 (#350)
* Changed: Support kubernetes 1.32

* Changed: increase version

---------

Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-02-25 11:31:22 +01:00
Filippo Brintazzoli
2a4d9569f3 [Agent] Changed: Support kubernetes 1.32 (#349)
* Changed: Support kubernetes 1.32

* Changed: increase version

---------

Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-02-25 11:28:07 +01:00
Filippo Brintazzoli
6c212f5b82 Changed: ClearML GH Organization Rename (#347)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-21 17:29:57 +01:00
Filippo Brintazzoli
4885e01750 Fixed: ClearML org rename (#346)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-21 17:04:32 +01:00
Filippo Brintazzoli
311f6ea9e0 Fixed: ClearML org rename (#345)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-21 17:03:57 +01:00
Filippo Brintazzoli
966a0e69ab Fixed: ClearML org rename (#344)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-21 17:03:00 +01:00
Filippo Brintazzoli
4cd31fa843 Fixed: release because of previous artifacthub fix (#341)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-09 11:05:31 +01:00
Filippo Brintazzoli
6b2954ab9f Fixed: artifacthub annotation (#340)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-09 10:50:00 +01:00
Filippo Brintazzoli
fc518f9389 Changed: App v2.0 and MongoDB v6 (#339)
* Changed: App v2.0 and MongoDB v6

* Fixed: helm-docs

---------

Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-09 10:05:12 +01:00
Filippo Brintazzoli
389159aa0c [clearml] Updated app version to 1.17.1 and MongoDB v5 (#338)
* Changed: Updated app version 1.17.1

* Changed: updated to Mongo 5

---------

Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-03 09:58:48 +01:00
Filippo Brintazzoli
7c53365cd8 Added: Support for additional ServiceAccount annotations (#337)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2025-01-02 16:36:58 +01:00
Daglar Berk Erdem
a51c7ee856 [ClearML] Added service account annotations (#336)
* fix: removed harcoded apiVersion

* feat: add support for custom annotations to the created service account

* feat: added service account annotations

* chore: updated README.md

* chore: chart version bump

* Revert "fix: removed harcoded apiVersion"

This reverts commit 18da292366.

* Revert "feat: add support for custom annotations to the created service account"

This reverts commit 8dc926bf1b.

---------

Co-authored-by: Dağlar Berk Erdem <daglar@codeway.co>
2025-01-02 15:56:11 +01:00
Filippo Brintazzoli
67c3720cf9 Changed: Kind versions for CI (#329)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-10-07 14:24:19 +02:00
Filippo Brintazzoli
c501ede9be Added: Support for Kubernetes 1.31 (#328)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-10-07 14:21:23 +02:00
Filippo Brintazzoli
10a33b65f7 Added: Support for Kubernetes 1.31 (#327)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-10-07 14:20:39 +02:00
Filippo Brintazzoli
0866033bac Fixed: Triton deployment tolerations placement fix (#325)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-09-27 17:10:16 +02:00
Ben Lewis
02a87e18f5 Fix duplicate CLEARML__secure__auth__token_secret in apiserver-asyncdelete-deployment.yaml (#322)
* Fix duplicate `CLEARML__secure__auth__token_secret` in `apiserver-asyncdelete-deployment.yaml`

* Bump `version` in `Chart.yaml`

* Bump version in `README.md`

* Update Chart.yaml

Apply request to change `Chart.yaml`
2024-09-23 09:56:29 +02:00
Filippo Brintazzoli
7532609c35 Changed: Update to 1.16.2 (#315)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-08-27 17:21:54 +02:00
Filippo Brintazzoli
bf17429258 Updated clearml-serving README and CI (#313)
* Changed: updated Readme

* Changed: CI actions versions

* Changed: CI default test values

* Fixed: newline

* Changed: tests for CI

* Fixed: newline

* Changed: removed CI values customization

---------

Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-08-21 16:02:20 +02:00
Filippo Brintazzoli
adcb4b0fc9 Changed: updated Readme (#314)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-08-19 15:52:58 +02:00
Filippo Brintazzoli
873f222d68 Changed: updated Readme (#312)
Co-authored-by: fbrintazzoli <filippo.brintazzoli@clear.ml>
2024-08-19 15:49:47 +02:00
Valeriano Manassero
fbbbee5ef2 1.16.1 release (#307)
* Changed: image version 1.16.1

* Changed: bump up
2024-07-22 08:18:05 +02:00
Valeriano Manassero
e569ed3d9e Changed: assign issue to filippo (#304) 2024-06-27 09:32:48 +02:00
Valeriano Manassero
2b0d67000a 1.16 (#302)
* Added: env vars

* Changed: upgrade app to 1.16

* Changed: bump up

* Changed: bump up
2024-06-27 08:54:39 +02:00
Valeriano Manassero
700d6b244b Fixed: rename yml (#301) 2024-06-19 13:48:30 +02:00
Valeriano Manassero
61c96ddf6d Fixed: remove blank issues (#300) 2024-06-19 13:46:31 +02:00
Valeriano Manassero
ad3bdf2372 CreateQueue disabled by default (#294)
* Fixed: create queue disable by default

* Changed: bump up

* Fixed: command composition
2024-06-06 09:51:21 +02:00
Daglar Berk Erdem
6cd821742b fix volumeMount indentation (#298)
* fix volumeMount indentation

* version bump
2024-06-06 09:31:52 +02:00
Daglar Berk Erdem
ac96346607 feature: ability to add volume and volumeMounts to deployments (#296) 2024-06-04 11:34:41 +02:00
Daglar Berk Erdem
312813cc34 Added: deploymentAnnotations (#292)
* added deploymentAnnotations

* version minor bump

* fixed version in README

* removed precommit file

---------

Co-authored-by: Dağlar Berk Erdem <daglar@codeway.co>
2024-05-28 08:40:54 +02:00
Uzmar Gomez
255cabfd7f Feature/multiplequeues (#286)
* copy changes

* add workflow when push

* update readme

* update readme

* delete test workflow

* bump chart version to 5.2.0

* test ci

* delete test ci

* bump kubeversion

* update readme

* Update Chart.yaml

---------

Co-authored-by: Valeriano Manassero <14011549+valeriano-manassero@users.noreply.github.com>
2024-05-15 16:19:40 +02:00
Valeriano Manassero
204e2ac350 Fixed: 1.5.6 release (#289) 2024-05-15 09:32:02 +02:00
Valeriano Manassero
56d246fcea Added: k8s 1.30 support (#288) 2024-05-15 09:26:44 +02:00
Valeriano Manassero
0e4a809d46 Added: 1.30 support (#287) 2024-05-15 08:59:34 +02:00
Uzmar Gomez
cfe62484af Use existingClearmlConfigSecret (#283)
* use config as secret

* update chart and readme

* avoid creating secret if not needed

* move string on values.yaml
2024-05-14 11:05:03 +02:00
Valeriano Manassero
5ded87ec92 Update 1.15.1 (#284)
* Changed: 1.15.1 update

* Changed: bump up version
2024-05-14 08:24:24 +02:00
stephanbertl
65393cd4bf affinity for serving deployments was incorrectly put under containers… (#280)
* affinity for serving deployments was incorrectly put under containers. It needs to be put at pod spec level.

* Fixed: helm docs generation

* Fixed: helm-docs generation

---------

Co-authored-by: = <s.bertl@iaea.org>
Co-authored-by: Valeriano Manassero <14011549+valeriano-manassero@users.noreply.github.com>
2024-05-07 14:03:29 +02:00
savitha-qs
4845bd3f4f Issue-275: Honor existingAgentk8sglueSecret in deployment template (#276)
* Issue-275: Honor existingAgentk8sglueSecret in deployment template

* Issue-275: rev the patch version of the chart

* Issue-275: update README for clearml-agent chart

* Issue-275: update annotation in Chart.yaml

* Issue-275: remove item not relevant to Issue 275 from Chart annotations

* Issue-275: add new line to end of file to get lint to pass

* Update Chart.yaml

---------

Co-authored-by: Savitha Ganapathi <sganapathi@quantumscape.com>
Co-authored-by: Valeriano Manassero <14011549+valeriano-manassero@users.noreply.github.com>
2024-04-02 08:47:14 +02:00
Valeriano Manassero
4cb8db5baf 277 apiserver and asyncdelete apiserver having the same selector (#278)
* Fixed: asyncdelete wrong selector

* Changed: bump up
2024-03-28 14:12:55 +01:00
Valeriano Manassero
4242e518ae 273 clearml chart service async delete not deleting files (#274)
* Fixed: missing asyncdelete config mount

* Changed: bump up version
2024-03-26 14:33:26 +01:00
Valeriano Manassero
4ca4bc82c4 Release 1.15.0 (#272)
* Changed: upgrade app to 1.15

* Fixed: missing scheme

* Added: async delete
2024-03-21 14:58:07 +01:00
Valeriano Manassero
75d9086bb9 Changed: bump up version (#271) 2024-03-21 14:47:57 +01:00
Valeriano Manassero
546c2b6d2e Changed: bump up to support k8s 1.29 (#270)
* Changed: bump up to support k8s 1.29

* Changed: k8s versions

* Changed: exclude serving

* Fixed: changes
2024-02-20 10:57:17 +01:00
Valeriano Manassero
0a2bc7c2a8 Update 1.14.1 (#269)
* Changed: bump version to 1.14.1

* Changed: bump up version
2024-02-13 16:17:00 +01:00
Valeriano Manassero
25de2dfaeb 262 clearml agent wrong nindent for agentk8sglue deployment template (#267)
* Fixed: wrong indentation

* Changed: bump up
2024-01-10 09:23:52 +01:00
Valeriano Manassero
28d9fe82f6 Fix label typo (#266)
* Fixed: clearml labels function reference name

* Changed: bump up version
2024-01-09 17:18:58 +01:00
Valeriano Manassero
e680990d10 App 1.14 (#264)
* Changed: app version to 1.14

* Changed: bump chart version
2024-01-05 08:06:23 +01:00
stephanbertl
fdbbe5b90d fixed #256. added runtimeClassName and fixed incorrect placement of nodeSelector (#259)
* fixed #256.
nodeSelector was incorrectly placed under the container.
moved it to pod spec
added runtimeClassName to the pod spec to select specific GPU nodes.

* increment version number

* added artifacthub.io/changes

* update readme.md

* try to fix helm docs generation issue

* update readme.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

---------

Co-authored-by: IAEA_SG\BERTLS <s.bertl@iaea.org>
Co-authored-by: Valeriano Manassero <14011549+valeriano-manassero@users.noreply.github.com>
2023-11-20 14:37:01 +01:00
Valeriano Manassero
eff09794bd Upgrade app 1.13 (#260)
* Changed: app version upgrade

* Changed: bump up chart

* Changed: helm-docs update

* Changed:  ci update

* Fixed: depth
2023-11-16 07:40:10 +01:00
Valeriano Manassero
d13ad20e34 Fix serving extraenvs (#258)
* Fixed: missing extraEnvs

* Changed: bump version
2023-10-27 07:41:19 +02:00
Valeriano Manassero
5ed9673ea1 254 clearml server helper function wrong readiness probes fail because wrong redis service is referenced (#257)
* Fixed: redis name generation

* Changed: bump up version
2023-10-25 16:15:15 +02:00
Valeriano Manassero
0892882cf7 Mount files additionalconfigs (#255)
* Added: mount file for additional configs in pod

* Changed: bump up version

* Fixed: missing parameters for deployment

* Fixed naming typo

* Changed: changelog fixes added
2023-10-25 15:20:46 +02:00
Erik Jacobs
a1673ae8e4 adds a default clearml-core service account for the core components (#253)
* adds a default clearml-core service account for the core components

* Changed: use many sa

* Fixed: sa name

* Fixed: sa name

* Fixed: sa name

* Fixed: naming

* Update README.md

---------

Co-authored-by: Valeriano Manassero <14011549+valeriano-manassero@users.noreply.github.com>
2023-09-27 09:19:55 +02:00
Valeriano Manassero
503ab437ad 246 allegroaiclearml elastic statefulset does not use a dedicated serviceaccount (#252)
* Fixed: missing serviceAccount for elasticsearch

* Changed: bump up version
2023-08-22 08:12:12 +02:00
39 changed files with 713 additions and 139 deletions

View File

@@ -3,7 +3,7 @@ description: Create a report to help us improve
title: "[name of the chart e.g. clearml-agent] Issue Title"
labels: [bug]
assignees:
- valeriano-manassero
- filippo-clearml
body:
- type: markdown
attributes:

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: false

View File

@@ -3,7 +3,7 @@ description: Suggest an idea for this project
title: "[name of the chart e.g. clearml-agent] Issue Title"
labels: [enhancement]
assignees:
- valeriano-manassero
- filippo-clearml
body:
- type: markdown
attributes:

View File

@@ -2,8 +2,8 @@
**Checklist**
- [ ] Reviewed the [`CONTRIBUTING.md`](https://github.com/allegroai/clearml-helm-charts/blob/main/CONTRIBUTING.md#pull-requests) guide (**required**)
- [ ] Verify the work you plan to merge addresses an existing [issue](https://github.com/allegroai/clearml-helm-charts/issues) (If not, open a new one) (**required**)
- [ ] Reviewed the [`CONTRIBUTING.md`](https://github.com/clearml/clearml-helm-charts/blob/main/CONTRIBUTING.md#pull-requests) guide (**required**)
- [ ] Verify the work you plan to merge addresses an existing [issue](https://github.com/clearml/clearml-helm-charts/issues) (If not, open a new one) (**required**)
- [ ] Check your branch with `helm lint` (**required**)
- [ ] Update `version` in `Chart.yaml` according [semver](https://semver.org/) rules (**required**)
- [ ] Substitute `annotations` section in `Chart.yaml` annotating implementations (useful for Artifecthub changelog) (**required**)

View File

@@ -6,7 +6,7 @@ if [[ -z "$CHART_DIRS" ]]; then
exit 1
fi
HELM_DOCS_VERSION="1.11.0"
HELM_DOCS_VERSION="1.11.3"
curl --silent --show-error --fail --location --output /tmp/helm-docs.tar.gz https://github.com/norwoodj/helm-docs/releases/download/v"${HELM_DOCS_VERSION}"/helm-docs_"${HELM_DOCS_VERSION}"_Linux_x86_64.tar.gz
tar -xf /tmp/helm-docs.tar.gz helm-docs

View File

@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.5.0
uses: actions/checkout@v4.1.7
with:
fetch-depth: 0
- name: Run helm-docs
@@ -24,21 +24,22 @@ jobs:
strategy:
matrix:
k8s:
- v1.25.11
- v1.26.6
- v1.27.3
- v1.28.0
- v1.29.8
- v1.30.4
- v1.31.0
steps:
- name: Checkout
uses: actions/checkout@v3.5.0
uses: actions/checkout@v4.1.7
with:
fetch-depth: 0
- name: Create kind ${{ matrix.k8s }} cluster
uses: helm/kind-action@v1.5.0
uses: helm/kind-action@v1.10.0
with:
node_image: kindest/node:${{ matrix.k8s }}
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.4.0
uses: helm/chart-testing-action@v2.6.1
with:
version: v3.8.0
- name: Add bitnami repo
run: helm repo add bitnami https://charts.bitnami.com/bitnami
- name: Add elastic repo

View File

@@ -3,8 +3,8 @@
:+1::tada: Firstly, we thank you for taking the time to contribute! :tada::+1:
Contribution comes in many forms:
* Reporting [issues](https://github.com/allegroai/clearml-helm-charts/issues) you've come upon
* Participating in issue discussions in the [issue tracker](https://github.com/allegroai/clearml-helm-charts/issues) and the [ClearML community slack space](https://joinslack.clear.ml)
* Reporting [issues](https://github.com/clearml/clearml-helm-charts/issues) you've come upon
* Participating in issue discussions in the [issue tracker](https://github.com/clearml/clearml-helm-charts/issues) and the [ClearML community slack space](https://joinslack.clear.ml)
* Suggesting new features or enhancements
* Implementing new features or fixing outstanding issues
@@ -16,7 +16,7 @@ Use your best judgment and feel free to propose changes to this document in a pu
By following these guidelines, you help maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before reporting an issue, please check whether it already appears [here](https://github.com/allegroai/clearml-helm-charts/issues).
Before reporting an issue, please check whether it already appears [here](https://github.com/clearml/clearml-helm-charts/issues).
If it does, join the on-going discussion instead.
**Note**: If you find a **Closed** issue that may be the same issue which you are currently experiencing,
@@ -50,7 +50,7 @@ Enhancement suggestions are tracked as GitHub issues. After you determine which
Before you submit a new PR:
* Verify the work you plan to merge addresses an existing [issue](https://github.com/allegroai/clearml-helm-charts/issues) (If not, open a new one)
* Verify the work you plan to merge addresses an existing [issue](https://github.com/clearml/clearml-helm-charts/issues) (If not, open a new one)
* Check related discussions in the [ClearML slack community](https://joinslack.clear.ml) (or start your own discussion on the `#clearml-dev` channel)
* Check your branch with `helm lint`
* Update `version` in `Chart.yaml` according [semver](https://semver.org/) rules

View File

@@ -4,9 +4,9 @@
* Set up a Kubernetes Cluster - for setting up Kubernetes on various platforms refer to the Kubernetes [getting started guide](http://kubernetes.io/docs/getting-started-guides/).
* Set up a single-node LOCAL Kubernetes on laptop/desktop - for setting up Kubernetes on your laptop/desktop, we suggest [kind](https://kind.sigs.k8s.io).
* For **Kubernetes Tanzu users** - see [prerequisites](https://github.com/allegroai/clearml-helm-charts/tree/main/platform-specific-configs/tanzu)
* For **Kubernetes Tanzu users** - see [prerequisites](https://github.com/clearml/clearml-helm-charts/tree/main/platform-specific-configs/tanzu)
for setting up ClearML on a Tanzu cluster
* For **Kubernetes Openshift users** - see [prerequisites](https://github.com/allegroai/clearml-helm-charts/tree/main/platform-specific-configs/openshift)
* For **Kubernetes Openshift users** - see [prerequisites](https://github.com/clearml/clearml-helm-charts/tree/main/platform-specific-configs/openshift)
for setting up ClearML on an Openshift cluster,
* Install Helm - Helm is a tool for managing Kubernetes charts. Charts are packages of pre-configured Kubernetes
@@ -17,13 +17,13 @@ resources. To install Helm, refer to the [Helm install guide](https://github.com
### Helm Repo
```bash
$ helm repo add allegroai https://allegroai.github.io/clearml-helm-charts
$ helm repo add clearml https://clearml.github.io/clearml-helm-charts
$ helm repo update
```
### ClearML Server Ecosystem
```bash
$ helm install clearml allegroai/clearml
$ helm install clearml clearml/clearml
```
### ClearML Agent
@@ -43,5 +43,5 @@ In the Helm chart `install` command below:
* Set `WEBSERVERURL` to the new credentials' `web_server` value
```bash
$ helm install clearml-agent allegroai/clearml-agent --set clearml.agentk8sglueKey=ACCESSKEY --set clearml.agentk8sglueSecret=SECRETKEY --set agentk8sglue.apiServerUrlReference=APISERVERURL --set agentk8sglue.fileServerUrlReference=FILESERVERURL --set agentk8sglue.webServerUrlReference=WEBSERVERURL
$ helm install clearml-agent clearml/clearml-agent --set clearml.agentk8sglueKey=ACCESSKEY --set clearml.agentk8sglueSecret=SECRETKEY --set agentk8sglue.apiServerUrlReference=APISERVERURL --set agentk8sglue.fileServerUrlReference=FILESERVERURL --set agentk8sglue.webServerUrlReference=WEBSERVERURL
```

View File

@@ -2,11 +2,11 @@
## Auto-Magical Experiment Manager & Version Control for AI
Helm charts provided by [Allegro AI](https://clear.ml), ready to launch on Kubernetes using [Kubernetes Helm](https://github.com/helm/helm).
Helm charts provided by [ClearML](https://clear.ml), ready to launch on Kubernetes using [Kubernetes Helm](https://github.com/helm/helm).
## Introduction
The **clearml-server** is the backend service infrastructure for [ClearML](https://github.com/allegroai/clearml).
The **clearml-server** is the backend service infrastructure for [ClearML](https://github.com/clearml/clearml).
It allows multiple users to collaborate and manage their experiments.
By default, **ClearML** is set up to work with the **ClearML** demo server, which is open to anyone and resets periodically.
In order to host your own server, you will need to install **clearml-server** and point **ClearML** to it.
@@ -23,11 +23,11 @@ Use this repository to deploy **clearml-server** on Kubernetes clusters.
## Provided in this repository
### [ClearML server chart](https://github.com/allegroai/clearml-helm-charts/tree/main/charts/clearml)
### [ClearML server chart](https://github.com/clearml/clearml-helm-charts/tree/main/charts/clearml)
### [ClearML agent chart](https://github.com/allegroai/clearml-helm-charts/tree/main/charts/clearml-agent)
### [ClearML agent chart](https://github.com/clearml/clearml-helm-charts/tree/main/charts/clearml-agent)
### [ClearML serving chart](https://github.com/allegroai/clearml-helm-charts/tree/main/charts/clearml-serving)
### [ClearML serving chart](https://github.com/clearml/clearml-helm-charts/tree/main/charts/clearml-serving)
## Who We Are
@@ -54,13 +54,13 @@ See more information in the [official documentation](https://clear.ml/docs/lates
If you have any questions, post on our [Slack Channel](https://joinslack.clear.ml), or tag your questions on [stackoverflow](https://stackoverflow.com/questions/tagged/clearml) with '**[clearml](https://stackoverflow.com/questions/tagged/clearml)**' tag (*previously [trains](https://stackoverflow.com/questions/tagged/trains) tag*).
For feature requests or bug reports, please use [GitHub issues](https://github.com/allegroai/clearml-helm-charts/issues).
For feature requests or bug reports, please use [GitHub Issues](https://github.com/clearml/clearml-helm-charts/issues).
Additionally, you can always find us at *support@clear.ml*
## Contributing
**PRs are always welcomed** :heart: See more details in the ClearML [Guidelines for Contributing](https://github.com/allegroai/clearml-helm-charts/blob/main/CONTRIBUTING.md).
**PRs are always welcomed** :heart: See more details in the ClearML [Guidelines for Contributing](https://github.com/clearml/clearml-helm-charts/blob/main/CONTRIBUTING.md).
_May the force (and the goddess of learning rates) be with you!_

View File

@@ -2,17 +2,17 @@ apiVersion: v2
name: clearml-agent
description: MLOps platform Task running agent
type: application
version: "5.1.1"
version: "5.3.2"
appVersion: "1.24"
kubeVersion: ">= 1.21.0-0 < 1.29.0-0"
kubeVersion: ">= 1.21.0-0 < 1.33.0-0"
home: https://clear.ml
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
icon: https://raw.githubusercontent.com/clearml/clearml/master/docs/clearml-logo.svg
sources:
- https://github.com/allegroai/clearml-helm-charts
- https://github.com/allegroai/clearml
- https://github.com/clearml/clearml-helm-charts
- https://github.com/clearml/clearml
maintainers:
- name: valeriano-manassero
url: https://github.com/valeriano-manassero
- name: filippo-clearml
url: https://github.com/filippo-clearml
keywords:
- clearml
- "machine learning"
@@ -20,5 +20,5 @@ keywords:
- "task agent"
annotations:
artifacthub.io/changes: |
- kind: added
description: kubernetes 1.28 support
- kind: changed
description: "Support kubernetes 1.32"

View File

@@ -1,6 +1,6 @@
# ClearML Kubernetes Agent
![Version: 5.1.1](https://img.shields.io/badge/Version-5.1.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.24](https://img.shields.io/badge/AppVersion-1.24-informational?style=flat-square)
![Version: 5.3.2](https://img.shields.io/badge/Version-5.3.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.24](https://img.shields.io/badge/AppVersion-1.24-informational?style=flat-square)
MLOps platform Task running agent
@@ -10,13 +10,21 @@ MLOps platform Task running agent
| Name | Email | Url |
| ---- | ------ | --- |
| valeriano-manassero | | <https://github.com/valeriano-manassero> |
| filippo-clearml | | <https://github.com/filippo-clearml> |
## Introduction
The **clearml-agent** is the Kubernetes agent for for [ClearML](https://github.com/allegroai/clearml).
The **clearml-agent** is the Kubernetes agent for for [ClearML](https://github.com/clearml/clearml).
It allows you to schedule distributed experiments on a Kubernetes cluster.
## Add to local Helm repository
To add this chart to your local Helm repository:
```
helm repo add clearml https://clearml.github.io/clearml-helm-charts
```
# Upgrading Chart
## Upgrades/ Values upgrades
@@ -25,13 +33,13 @@ Updating to latest version of this chart can be done in two steps:
```
helm repo update
helm upgrade clearml-agent allegroai/clearml-agent
helm upgrade clearml-agent clearml/clearml-agent
```
Changing values on existing installation can be done with:
```
helm upgrade clearml-agent allegroai/clearml-agent --version <CURRENT CHART VERSION> -f custom_values.yaml
helm upgrade clearml-agent clearml/clearml-agent --version <CURRENT CHART VERSION> -f custom_values.yaml
```
### Major upgrade from 3.* to 4.*
@@ -42,18 +50,18 @@ Before issuing helm upgrade:
## Source Code
* <https://github.com/allegroai/clearml-helm-charts>
* <https://github.com/allegroai/clearml>
* <https://github.com/clearml/clearml-helm-charts>
* <https://github.com/clearml/clearml>
## Requirements
Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
Kubernetes: `>= 1.21.0-0 < 1.33.0-0`
## Values
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| agentk8sglue | object | `{"additionalClusterRoleBindings":[],"additionalRoleBindings":[],"affinity":{},"annotations":{},"apiServerUrlReference":"https://api.clear.ml","basePodTemplate":{"affinity":{},"annotations":{},"containerSecurityContext":{},"env":[],"fileMounts":[],"hostAliases":[],"initContainers":[],"labels":{},"nodeSelector":{},"podSecurityContext":{},"priorityClassName":"","resources":{},"schedulerName":"","tolerations":[],"volumeMounts":[],"volumes":[]},"clearmlcheckCertificate":true,"containerSecurityContext":{},"defaultContainerImage":"ubuntu:18.04","extraEnvs":[],"fileMounts":[],"fileServerUrlReference":"https://files.clear.ml","image":{"registry":"","repository":"allegroai/clearml-agent-k8s-base","tag":"1.24-21"},"initContainers":{"resources":{}},"labels":{},"nodeSelector":{},"podSecurityContext":{},"queue":"default","replicaCount":1,"resources":{},"serviceExistingAccountName":"","tolerations":[],"volumeMounts":[],"volumes":[],"webServerUrlReference":"https://app.clear.ml"}` | This agent will spawn queued experiments in new pods, a good use case is to combine this with GPU autoscaling nodes. https://github.com/allegroai/clearml-agent/tree/master/docker/k8s-glue |
| agentk8sglue | object | `{"additionalClusterRoleBindings":[],"additionalRoleBindings":[],"affinity":{},"annotations":{},"apiServerUrlReference":"https://api.clear.ml","basePodTemplate":{"affinity":{},"annotations":{},"containerSecurityContext":{},"env":[],"fileMounts":[],"hostAliases":[],"initContainers":[],"labels":{},"nodeSelector":{},"podSecurityContext":{},"priorityClassName":"","resources":{},"schedulerName":"","tolerations":[],"volumeMounts":[],"volumes":[]},"clearmlcheckCertificate":true,"containerSecurityContext":{},"createQueueIfNotExists":false,"defaultContainerImage":"ubuntu:18.04","extraEnvs":[],"fileMounts":[],"fileServerUrlReference":"https://files.clear.ml","image":{"registry":"","repository":"allegroai/clearml-agent-k8s-base","tag":"1.24-21"},"initContainers":{"resources":{}},"labels":{},"nodeSelector":{},"podSecurityContext":{},"queue":"default","replicaCount":1,"resources":{},"serviceAccountAnnotations":{},"serviceExistingAccountName":"","tolerations":[],"volumeMounts":[],"volumes":[],"webServerUrlReference":"https://app.clear.ml"}` | This agent will spawn queued experiments in new pods, a good use case is to combine this with GPU autoscaling nodes. https://github.com/clearml/clearml-agent/tree/master/docker/k8s-glue |
| agentk8sglue.additionalClusterRoleBindings | list | `[]` | additional existing ClusterRoleBindings |
| agentk8sglue.additionalRoleBindings | list | `[]` | additional existing RoleBindings |
| agentk8sglue.affinity | object | `{}` | affinity setup for Agent pod (example in values.yaml comments) |
@@ -78,6 +86,7 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| agentk8sglue.basePodTemplate.volumes | list | `[]` | volumes definition for pods spawned to consume ClearML Task (example in values.yaml comments) |
| agentk8sglue.clearmlcheckCertificate | bool | `true` | Check certificates validity for evefry UrlReference below. |
| agentk8sglue.containerSecurityContext | object | `{}` | container securityContext setup for Agent pod (example in values.yaml comments) |
| agentk8sglue.createQueueIfNotExists | bool | `false` | if ClearML queue does not exist, it will be create it if the value is set to true |
| agentk8sglue.defaultContainerImage | string | `"ubuntu:18.04"` | default container image for ClearML Task pod |
| agentk8sglue.extraEnvs | list | `[]` | Extra Environment variables for Glue Agent |
| agentk8sglue.fileMounts | list | `[]` | file definition for Glue Agent (example in values.yaml comments) |
@@ -88,10 +97,11 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| agentk8sglue.labels | object | `{}` | labels setup for Agent pod (example in values.yaml comments) |
| agentk8sglue.nodeSelector | object | `{}` | nodeSelector setup for Agent pod (example in values.yaml comments) |
| agentk8sglue.podSecurityContext | object | `{}` | container securityContext setup for Agent pod (example in values.yaml comments) |
| agentk8sglue.queue | string | `"default"` | ClearML queue this agent will consume |
| agentk8sglue.queue | string | `"default"` | ClearML queue this agent will consume. Multiple queues can be specified with the following format: queue1,queue2,queue3 |
| agentk8sglue.replicaCount | int | `1` | Glue Agent number of pods |
| agentk8sglue.resources | object | `{}` | Glue Agent pod resources |
| agentk8sglue.serviceExistingAccountName | string | `""` | if set, don't create a serviceAccountName but use defined existing one |
| agentk8sglue.serviceAccountAnnotations | object | `{}` | Add the provided map to the annotations for the ServiceAccount resource created by this chart |
| agentk8sglue.serviceExistingAccountName | string | `""` | If set, do not create a serviceAccountName and use the existing one with the provided name |
| agentk8sglue.tolerations | list | `[]` | tolerations setup for Agent pod (example in values.yaml comments) |
| agentk8sglue.volumeMounts | list | `[]` | volume mounts definition for Glue Agent (example in values.yaml comments) |
| agentk8sglue.volumes | list | `[]` | volumes definition for Glue Agent (example in values.yaml comments) |

View File

@@ -11,9 +11,17 @@
## Introduction
The **clearml-agent** is the Kubernetes agent for for [ClearML](https://github.com/allegroai/clearml).
The **clearml-agent** is the Kubernetes agent for for [ClearML](https://github.com/clearml/clearml).
It allows you to schedule distributed experiments on a Kubernetes cluster.
## Add to local Helm repository
To add this chart to your local Helm repository:
```
helm repo add clearml https://clearml.github.io/clearml-helm-charts
```
# Upgrading Chart
## Upgrades/ Values upgrades
@@ -22,13 +30,13 @@ Updating to latest version of this chart can be done in two steps:
```
helm repo update
helm upgrade clearml-agent allegroai/clearml-agent
helm upgrade clearml-agent clearml/clearml-agent
```
Changing values on existing installation can be done with:
```
helm upgrade clearml-agent allegroai/clearml-agent --version <CURRENT CHART VERSION> -f custom_values.yaml
helm upgrade clearml-agent clearml/clearml-agent --version <CURRENT CHART VERSION> -f custom_values.yaml
```
### Major upgrade from 3.* to 4.*

View File

@@ -67,14 +67,14 @@ spec:
volumeMounts:
- name: {{ include "clearmlAgent.fullname" . }}-pt
mountPath: /root/template
{{ if .Values.clearml.clearmlConfig }}
{{ if or (.Values.clearml.clearmlConfig) (.Values.clearml.existingClearmlConfigSecret) }}
- name: k8sagent-clearml-conf-volume
mountPath: /root/clearml.conf
subPath: clearml.conf
readOnly: true
{{- end }}
{{- if .Values.agentk8sglue.volumeMounts }}
{{- toYaml .Values.agentk8sglue.volumeMounts | nindent 10 }}
{{- toYaml .Values.agentk8sglue.volumeMounts | nindent 12 }}
{{- end }}
{{- range .Values.agentk8sglue.fileMounts }}
- name: filemounts
@@ -98,12 +98,16 @@ spec:
value: "--namespace {{ .Release.Namespace }} --template-yaml /root/template/template.yaml \
--ports-mode --num-of-services {{ .Values.sessions.maxServices }} \
--base-port {{ .Values.sessions.startingPort }} \
--gateway-address {{ .Values.sessions.externalIP }}"
--gateway-address {{ .Values.sessions.externalIP }} \
{{- if .Values.agentk8sglue.createQueueIfNotExists }} --create-queue{{- end }}
"
{{- else}}
- name: K8S_GLUE_EXTRA_ARGS
value: "--namespace {{ .Release.Namespace }} --template-yaml /root/template/template.yaml"
value: "--namespace {{ .Release.Namespace }} --template-yaml /root/template/template.yaml \
{{- if .Values.agentk8sglue.createQueueIfNotExists }} --create-queue{{- end }}
"
{{- end }}
{{- if .Values.clearml.clearmlConfig }}
{{ if or (.Values.clearml.clearmlConfig) (.Values.clearml.existingClearmlConfigSecret) }}
- name: CLEARML_CONFIG_FILE
value: /root/clearml.conf
{{- end }}
@@ -112,12 +116,20 @@ spec:
- name: CLEARML_API_ACCESS_KEY
valueFrom:
secretKeyRef:
{{- if .Values.clearml.existingAgentk8sglueSecret }}
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
{{- else }}
name: {{ include "clearmlAgent.fullname" . }}-ac
{{- end }}
key: agentk8sglue_key
- name: CLEARML_API_SECRET_KEY
valueFrom:
secretKeyRef:
{{- if .Values.clearml.existingAgentk8sglueSecret }}
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
{{- else }}
name: {{ include "clearmlAgent.fullname" . }}-ac
{{- end }}
key: agentk8sglue_secret
- name: CLEARML_WORKER_ID
value: {{ include "clearmlAgent.fullname" . }}
@@ -152,7 +164,14 @@ spec:
- name: {{ include "clearmlAgent.fullname" . }}-pt
configMap:
name: {{ include "clearmlAgent.fullname" . }}-pt
{{ if .Values.clearml.clearmlConfig }}
{{ if .Values.clearml.existingClearmlConfigSecret }}
- name: k8sagent-clearml-conf-volume
secret:
secretName: {{ .Values.clearml.existingClearmlConfigSecret }}
items:
- key: clearml.conf
path: clearml.conf
{{ else if .Values.clearml.clearmlConfig }}
- name: k8sagent-clearml-conf-volume
secret:
secretName: {{ include "clearmlAgent.fullname" . }}-ac

View File

@@ -4,6 +4,10 @@ kind: ServiceAccount
metadata:
name: {{ include "clearmlAgent.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
{{- if .Values.agentk8sglue.serviceAccountAnnotations }}
annotations:
{{- toYaml .Values.agentk8sglue.serviceAccountAnnotations | nindent 4 }}
{{- end }}
{{- end }}
---
apiVersion: rbac.authorization.k8s.io/v1

View File

@@ -1,3 +1,4 @@
{{- if or (not .Values.clearml.existingAgentk8sglueSecret) (not .Values.clearml.existingClearmlConfigSecret) }}
apiVersion: v1
kind: Secret
metadata:
@@ -6,6 +7,7 @@ data:
agentk8sglue_key: {{ .Values.clearml.agentk8sglueKey | b64enc }}
agentk8sglue_secret: {{ .Values.clearml.agentk8sglueSecret | b64enc }}
clearml.conf: {{ .Values.clearml.clearmlConfig | b64enc }}
{{- end }}
---
{{- if .Values.imageCredentials.enabled }}
{{- if not .Values.imageCredentials.existingSecret }}

View File

@@ -29,6 +29,16 @@ clearml:
# -- If this is set, chart will not generate a secret but will use what is defined here
existingClearmlConfigSecret: ""
# The secret should be defined as the following example
#
# apiVersion: v1
# kind: Secret
# metadata:
# name: secret-name
# stringData:
# clearml.conf: |-
# sdk {
# }
# -- ClearML configuration file
clearmlConfig: |-
sdk {
@@ -36,7 +46,7 @@ clearml:
# -- This agent will spawn queued experiments in new pods, a good use case is to combine this with
# GPU autoscaling nodes.
# https://github.com/allegroai/clearml-agent/tree/master/docker/k8s-glue
# https://github.com/clearml/clearml-agent/tree/master/docker/k8s-glue
agentk8sglue:
# -- Glue Agent image configuration
image:
@@ -55,7 +65,9 @@ agentk8sglue:
# -- Glue Agent initcontainers pod resources
resources: {}
# -- if set, don't create a serviceAccountName but use defined existing one
# -- Add the provided map to the annotations for the ServiceAccount resource created by this chart
serviceAccountAnnotations: {}
# -- If set, do not create a serviceAccountName and use the existing one with the provided name
serviceExistingAccountName: ""
# -- Check certificates validity for evefry UrlReference below.
@@ -70,8 +82,10 @@ agentk8sglue:
# -- default container image for ClearML Task pod
defaultContainerImage: ubuntu:18.04
# -- ClearML queue this agent will consume
# -- ClearML queue this agent will consume. Multiple queues can be specified with the following format: queue1,queue2,queue3
queue: default
# -- if ClearML queue does not exist, it will be create it if the value is set to true
createQueueIfNotExists: false
# -- labels setup for Agent pod (example in values.yaml comments)
labels: {}
# schedulerName: scheduler

View File

@@ -2,17 +2,17 @@ apiVersion: v2
name: clearml-serving
description: ClearML Serving Helm Chart
type: application
version: "1.4.2"
version: "1.5.10"
appVersion: "1.3.0"
kubeVersion: ">= 1.21.0-0 < 1.29.0-0"
kubeVersion: ">= 1.21.0-0 < 1.33.0-0"
home: https://clear.ml
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
icon: https://raw.githubusercontent.com/clearml/clearml/master/docs/clearml-logo.svg
sources:
- https://github.com/allegroai/clearml-helm-charts
- https://github.com/allegroai/clearml
- https://github.com/clearml/clearml-helm-charts
- https://github.com/clearml/clearml
maintainers:
- name: valeriano-manassero
url: https://github.com/valeriano-manassero
- name: filippo-clearml
url: https://github.com/filippo-clearml
keywords:
- clearml
- "machine learning"
@@ -33,5 +33,5 @@ dependencies:
condition: grafana.enabled
annotations:
artifacthub.io/changes: |
- kind: fixed
description: wrong clearmlServing reference in secrets
- kind: changed
description: Support kubernetes 1.32

View File

@@ -1,6 +1,6 @@
# ClearML Kubernetes Serving
![Version: 1.4.2](https://img.shields.io/badge/Version-1.4.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.3.0](https://img.shields.io/badge/AppVersion-1.3.0-informational?style=flat-square)
![Version: 1.5.10](https://img.shields.io/badge/Version-1.5.10-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.3.0](https://img.shields.io/badge/AppVersion-1.3.0-informational?style=flat-square)
ClearML Serving Helm Chart
@@ -10,13 +10,21 @@ ClearML Serving Helm Chart
| Name | Email | Url |
| ---- | ------ | --- |
| valeriano-manassero | | <https://github.com/valeriano-manassero> |
| filippo-clearml | | <https://github.com/filippo-clearml> |
## Introduction
The **clearml-serving** is the Kubernetes serving for for [ClearML](https://github.com/allegroai/clearml-serving).
The **clearml-serving** is the Kubernetes serving for for [ClearML](https://github.com/clearml/clearml-serving).
It allows you to serve models on a Kubernetes cluster.
## Add to local Helm repository
To add this chart to your local Helm repository:
```
helm repo add clearml https://clearml.github.io/clearml-helm-charts
```
# Upgrading Chart
## Upgrades/ Values upgrades
@@ -25,23 +33,23 @@ Updating to latest version of this chart can be done in two steps:
```
helm repo update
helm upgrade clearml-serving allegroai/clearml-serving
helm upgrade clearml-serving clearml/clearml-serving
```
Changing values on existing installation can be done with:
```
helm upgrade clearml-serving allegroai/clearml-serving --version <CURRENT CHART VERSION> -f custom_values.yaml
helm upgrade clearml-serving clearml/clearml-serving --version <CURRENT CHART VERSION> -f custom_values.yaml
```
## Source Code
* <https://github.com/allegroai/clearml-helm-charts>
* <https://github.com/allegroai/clearml>
* <https://github.com/clearml/clearml-helm-charts>
* <https://github.com/clearml/clearml>
## Requirements
Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
Kubernetes: `>= 1.21.0-0 < 1.33.0-0`
| Repository | Name | Version |
|------------|------|---------|
@@ -54,9 +62,12 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| clearml | object | `{"apiAccessKey":"ClearML API Access Key","apiHost":"http://clearml-server-apiserver:8008","apiSecretKey":"ClearML API Secret Key","defaultBaseServeUrl":"http://127.0.0.1:8080/serve","filesHost":"http://clearml-server-fileserver:8081","kafkaServeUrl":"","servingTaskId":"ClearML Serving Task ID","webHost":"http://clearml-server-webserver:80"}` | ClearMl generic configurations |
| clearml_serving_inference | object | `{"affinity":{},"autoscaling":{"enabled":false,"maxReplicas":11,"minReplicas":1,"targetCPU":50,"targetMemory":50},"extraEnvironment":[],"extraPythonPackages":[],"image":{"repository":"allegroai/clearml-serving-inference","tag":"1.3.0"},"ingress":{"annotations":{},"enabled":false,"hostName":"serving.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"nodeSelector":{},"resources":{},"tolerations":[]}` | ClearML serving inference configurations |
| clearml_serving_inference | object | `{"additionalConfigs":{},"affinity":{},"autoscaling":{"enabled":false,"maxReplicas":11,"minReplicas":1,"targetCPU":50,"targetMemory":50},"existingAdditionalConfigsConfigMap":"","existingAdditionalConfigsSecret":"","extraEnvironment":[],"extraPythonPackages":[],"image":{"repository":"allegroai/clearml-serving-inference","tag":"1.3.0"},"ingress":{"annotations":{},"enabled":false,"hostName":"serving.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"nodeSelector":{},"resources":{},"tolerations":[]}` | ClearML serving inference configurations |
| clearml_serving_inference.additionalConfigs | object | `{}` | files declared in this parameter will be mounted on internal folder /opt/clearml/config and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsSecret |
| clearml_serving_inference.affinity | object | `{}` | Affinity configuration |
| clearml_serving_inference.autoscaling | object | `{"enabled":false,"maxReplicas":11,"minReplicas":1,"targetCPU":50,"targetMemory":50}` | Autoscaling configuration |
| clearml_serving_inference.existingAdditionalConfigsConfigMap | string | `""` | reference for files declared in existing ConfigMap will be mounted and read by pod (examples in values.yaml) |
| clearml_serving_inference.existingAdditionalConfigsSecret | string | `""` | reference for files declared in existing Secret will be mounted and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsConfigMap |
| clearml_serving_inference.extraEnvironment | list | `[]` | Extra environment variables |
| clearml_serving_inference.extraPythonPackages | list | `[]` | Extra Python Packages to be installed in running pods |
| clearml_serving_inference.image | object | `{"repository":"allegroai/clearml-serving-inference","tag":"1.3.0"}` | Container Image |
@@ -70,18 +81,25 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| clearml_serving_inference.nodeSelector | object | `{}` | Node Selector configuration |
| clearml_serving_inference.resources | object | `{}` | Pod resources definition |
| clearml_serving_inference.tolerations | list | `[]` | Tolerations configuration |
| clearml_serving_statistics | object | `{"affinity":{},"enabled":true,"extraPythonPackages":[],"image":{"repository":"allegroai/clearml-serving-statistics","tag":"1.3.0"},"nodeSelector":{},"resources":{},"tolerations":[]}` | ClearML serving statistics configurations |
| clearml_serving_statistics | object | `{"additionalConfigs":{},"affinity":{},"enabled":true,"existingAdditionalConfigsConfigMap":"","existingAdditionalConfigsSecret":"","extraEnvironment":[],"extraPythonPackages":[],"image":{"repository":"allegroai/clearml-serving-statistics","tag":"1.3.0"},"nodeSelector":{},"resources":{},"tolerations":[]}` | ClearML serving statistics configurations |
| clearml_serving_statistics.additionalConfigs | object | `{}` | files declared in this parameter will be mounted on internal folder /opt/clearml/config and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsSecret |
| clearml_serving_statistics.affinity | object | `{}` | Affinity configuration |
| clearml_serving_statistics.enabled | bool | `true` | Enable ClearML Serving Statistics |
| clearml_serving_statistics.existingAdditionalConfigsConfigMap | string | `""` | reference for files declared in existing ConfigMap will be mounted and read by pod (examples in values.yaml) |
| clearml_serving_statistics.existingAdditionalConfigsSecret | string | `""` | reference for files declared in existing Secret will be mounted and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsConfigMap |
| clearml_serving_statistics.extraPythonPackages | list | `[]` | Extra Python Packages to be installed in running pods |
| clearml_serving_statistics.image | object | `{"repository":"allegroai/clearml-serving-statistics","tag":"1.3.0"}` | Container Image |
| clearml_serving_statistics.nodeSelector | object | `{}` | Node Selector configuration |
| clearml_serving_statistics.resources | object | `{}` | Pod resources definition |
| clearml_serving_statistics.tolerations | list | `[]` | Tolerations configuration |
| clearml_serving_triton | object | `{"affinity":{},"autoscaling":{"enabled":false,"maxReplicas":11,"minReplicas":1,"targetCPU":50,"targetMemory":50},"enabled":true,"extraPythonPackages":[],"image":{"repository":"allegroai/clearml-serving-triton","tag":"1.3.0"},"ingress":{"annotations":{},"enabled":false,"hostName":"serving-grpc.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"nodeSelector":{},"resources":{},"tolerations":[]}` | ClearML serving Triton configurations |
| clearml_serving_triton | object | `{"additionalConfigs":{},"affinity":{},"autoscaling":{"enabled":false,"maxReplicas":11,"minReplicas":1,"targetCPU":50,"targetMemory":50},"enabled":true,"existingAdditionalConfigsConfigMap":"","existingAdditionalConfigsSecret":"","extraEnvironment":[],"extraPythonPackages":[],"image":{"repository":"allegroai/clearml-serving-triton","tag":"1.3.0"},"ingress":{"annotations":{},"enabled":false,"hostName":"serving-grpc.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"nodeSelector":{},"resources":{},"tolerations":[]}` | ClearML serving Triton configurations |
| clearml_serving_triton.additionalConfigs | object | `{}` | files declared in this parameter will be mounted on internal folder /opt/clearml/config and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsSecret |
| clearml_serving_triton.affinity | object | `{}` | Affinity configuration |
| clearml_serving_triton.autoscaling | object | `{"enabled":false,"maxReplicas":11,"minReplicas":1,"targetCPU":50,"targetMemory":50}` | Autoscaling configuration |
| clearml_serving_triton.enabled | bool | `true` | Triton pod creation enable/disable |
| clearml_serving_triton.existingAdditionalConfigsConfigMap | string | `""` | reference for files declared in existing ConfigMap will be mounted and read by pod (examples in values.yaml) |
| clearml_serving_triton.existingAdditionalConfigsSecret | string | `""` | reference for files declared in existing Secret will be mounted and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsConfigMap |
| clearml_serving_triton.extraEnvironment | list | `[]` | Extra environment variables |
| clearml_serving_triton.extraPythonPackages | list | `[]` | Extra Python Packages to be installed in running pods |
| clearml_serving_triton.image | object | `{"repository":"allegroai/clearml-serving-triton","tag":"1.3.0"}` | Container Image |
| clearml_serving_triton.ingress | object | `{"annotations":{},"enabled":false,"hostName":"serving-grpc.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""}` | Ingress exposing configurations |

View File

@@ -11,9 +11,17 @@
## Introduction
The **clearml-serving** is the Kubernetes serving for for [ClearML](https://github.com/allegroai/clearml-serving).
The **clearml-serving** is the Kubernetes serving for for [ClearML](https://github.com/clearml/clearml-serving).
It allows you to serve models on a Kubernetes cluster.
## Add to local Helm repository
To add this chart to your local Helm repository:
```
helm repo add clearml https://clearml.github.io/clearml-helm-charts
```
# Upgrading Chart
## Upgrades/ Values upgrades
@@ -22,13 +30,13 @@ Updating to latest version of this chart can be done in two steps:
```
helm repo update
helm upgrade clearml-serving allegroai/clearml-serving
helm upgrade clearml-serving clearml/clearml-serving
```
Changing values on existing installation can be done with:
```
helm upgrade clearml-serving allegroai/clearml-serving --version <CURRENT CHART VERSION> -f custom_values.yaml
helm upgrade clearml-serving clearml/clearml-serving --version <CURRENT CHART VERSION> -f custom_values.yaml
```
{{ template "chart.sourcesSection" . }}

View File

@@ -0,0 +1,13 @@
{{- if .Values.clearml_serving_inference.additionalConfigs }}
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ include "clearmlServing.fullname" . }}-inference-configmap"
labels:
{{- include "clearmlServing.labels" . | nindent 4 }}
data:
{{- range $key, $val := .Values.clearml_serving_inference.additionalConfigs }}
{{ $key }}: |
{{- $val | nindent 4 }}
{{- end }}
{{- end }}

View File

@@ -26,6 +26,24 @@ spec:
- name: clearml-registry-key
{{- end }}
{{- end }}
{{- if or .Values.clearml_serving_inference.additionalConfigs .Values.clearml_serving_inference.existingAdditionalConfigsConfigMap .Values.clearml_serving_inference.existingAdditionalConfigsSecret }}
volumes:
- name: additional-config
{{- if or .Values.clearml_serving_inference.existingAdditionalConfigsConfigMap }}
configMap:
name: {{ .Values.clearml_serving_inference.existingAdditionalConfigsConfigMap }}
{{- else if or .Values.clearml_serving_inference.existingAdditionalConfigsSecret }}
secret:
secretName: {{ .Values.clearml_serving_inference.existingAdditionalConfigsSecret }}
{{- else if or .Values.clearml_serving_inference.additionalConfigs }}
configMap:
name: "{{ include "clearmlServing.fullname" . }}-inference-configmap"
{{- end }}
{{- end }}
{{- with .Values.clearml_serving_inference.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- env:
- name: CLEARML_API_ACCESS_KEY
@@ -75,6 +93,19 @@ spec:
name: {{ include "clearmlServing.fullname" . }}-inference
ports:
- containerPort: 8080
{{- if or .Values.clearml_serving_inference.additionalConfigs .Values.clearml_serving_inference.existingAdditionalConfigsConfigMap .Values.clearml_serving_inference.existingAdditionalConfigsSecret }}
volumeMounts:
- name: additional-config
mountPath: /opt/clearml/config
{{- end }}
{{- with .Values.clearml_serving_inference.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.clearml_serving_inference.tolerations }}
tolerations:
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.clearml_serving_inference.resources | nindent 12 }}
restartPolicy: Always

View File

@@ -0,0 +1,15 @@
{{- if .Values.clearml_serving_statistics.enabled }}
{{- if .Values.clearml_serving_statistics.additionalConfigs }}
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ include "clearmlServing.fullname" . }}-statistics-configmap"
labels:
{{- include "clearmlServing.labels" . | nindent 4 }}
data:
{{- range $key, $val := .Values.clearml_serving_statistics.additionalConfigs }}
{{ $key }}: |
{{- $val | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -27,6 +27,24 @@ spec:
- name: clearml-registry-key
{{- end }}
{{- end }}
{{- if or .Values.clearml_serving_statistics.additionalConfigs .Values.clearml_serving_statistics.existingAdditionalConfigsConfigMap .Values.clearml_serving_statistics.existingAdditionalConfigsSecret }}
volumes:
- name: additional-config
{{- if or .Values.clearml_serving_statistics.existingAdditionalConfigsConfigMap }}
configMap:
name: {{ .Values.clearml_serving_statistics.existingAdditionalConfigsConfigMap }}
{{- else if or .Values.clearml_serving_statistics.existingAdditionalConfigsSecret }}
secret:
secretName: {{ .Values.clearml_serving_statistics.existingAdditionalConfigsSecret }}
{{- else if or .Values.clearml_serving_statistics.additionalConfigs }}
configMap:
name: "{{ include "clearmlServing.fullname" . }}-statistics-configmap"
{{- end }}
{{- end }}
{{- with .Values.clearml_serving_statistics.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- env:
- name: CLEARML_API_ACCESS_KEY
@@ -53,10 +71,26 @@ spec:
- name: CLEARML_EXTRA_PYTHON_PACKAGES
value: '{{ join " " .Values.clearml_serving_statistics.extraPythonPackages }}'
{{- end }}
{{- with .Values.clearml_serving_statistics.extraEnvironment }}
{{- toYaml . | nindent 12 }}
{{- end }}
image: "{{ .Values.clearml_serving_statistics.image.repository }}:{{ .Values.clearml_serving_statistics.image.tag }}"
name: {{ include "clearmlServing.fullname" . }}-statistics
ports:
- containerPort: 9999
{{- if or .Values.clearml_serving_statistics.additionalConfigs .Values.clearml_serving_statistics.existingAdditionalConfigsConfigMap .Values.clearml_serving_statistics.existingAdditionalConfigsSecret }}
volumeMounts:
- name: additional-config
mountPath: /opt/clearml/config
{{- end }}
{{- with .Values.clearml_serving_statistics.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.clearml_serving_statistics.tolerations }}
tolerations:
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.clearml_serving_statistics.resources | nindent 12 }}
restartPolicy: Always

View File

@@ -0,0 +1,15 @@
{{- if .Values.clearml_serving_triton.enabled }}
{{- if .Values.clearml_serving_triton.additionalConfigs }}
apiVersion: v1
kind: ConfigMap
metadata:
name: "{{ include "clearmlServing.fullname" . }}-triton-configmap"
labels:
{{- include "clearmlServing.labels" . | nindent 4 }}
data:
{{- range $key, $val := .Values.clearml_serving_triton.additionalConfigs }}
{{ $key }}: |
{{- $val | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -27,6 +27,31 @@ spec:
- name: clearml-registry-key
{{- end }}
{{- end }}
{{ if .Values.clearml_serving_triton.runtimeClassName}}
runtimeClassName: {{ .Values.clearml_serving_triton.runtimeClassName }}
{{- end}}
{{- if or .Values.clearml_serving_triton.additionalConfigs .Values.clearml_serving_triton.existingAdditionalConfigsConfigMap .Values.clearml_serving_triton.existingAdditionalConfigsSecret }}
volumes:
- name: additional-config
{{- if or .Values.clearml_serving_triton.existingAdditionalConfigsConfigMap }}
configMap:
name: {{ .Values.clearml_serving_triton.existingAdditionalConfigsConfigMap }}
{{- else if or .Values.clearml_serving_triton.existingAdditionalConfigsSecret }}
secret:
secretName: {{ .Values.clearml_serving_triton.existingAdditionalConfigsSecret }}
{{- else if or .Values.clearml_serving_triton.additionalConfigs }}
configMap:
name: "{{ include "clearmlServing.fullname" . }}-triton-configmap"
{{- end }}
{{- end }}
{{- with .Values.clearml_serving_triton.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.clearml_serving_triton.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- env:
- name: CLEARML_API_ACCESS_KEY
@@ -49,12 +74,24 @@ spec:
- name: CLEARML_EXTRA_PYTHON_PACKAGES
value: '{{ join " " .Values.clearml_serving_triton.extraPythonPackages }}'
{{- end }}
{{- with .Values.clearml_serving_triton.extraEnvironment }}
{{- toYaml . | nindent 12 }}
{{- end }}
image: "{{ .Values.clearml_serving_triton.image.repository }}:{{ .Values.clearml_serving_triton.image.tag }}"
name: {{ include "clearmlServing.fullname" . }}-triton
ports:
- containerPort: 8001
{{- if or .Values.clearml_serving_triton.additionalConfigs .Values.clearml_serving_triton.existingAdditionalConfigsConfigMap .Values.clearml_serving_triton.existingAdditionalConfigsSecret }}
volumeMounts:
- name: additional-config
mountPath: /opt/clearml/config
{{- end }}
resources:
{{- toYaml .Values.clearml_serving_triton.resources | nindent 12 }}
restartPolicy: Always
{{- with .Values.clearml_serving_triton.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{ end }}

View File

@@ -40,10 +40,19 @@ clearml_serving_statistics:
affinity: {}
# -- Pod resources definition
resources: {}
extraEnvironment: []
# -- Extra Python Packages to be installed in running pods
extraPythonPackages: []
# - numpy==1.22.4
# - pandas==1.4.2
# -- reference for files declared in existing ConfigMap will be mounted and read by pod (examples in values.yaml)
existingAdditionalConfigsConfigMap: ""
# -- reference for files declared in existing Secret will be mounted and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsConfigMap
existingAdditionalConfigsSecret: ""
# -- files declared in this parameter will be mounted on internal folder /opt/clearml/config and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsSecret
additionalConfigs: {}
# additionalFile.conf: |
# <filecontent>
# -- ClearML serving inference configurations
clearml_serving_inference:
@@ -65,6 +74,14 @@ clearml_serving_inference:
extraPythonPackages: []
# - numpy==1.22.4
# - pandas==1.4.2
# -- reference for files declared in existing ConfigMap will be mounted and read by pod (examples in values.yaml)
existingAdditionalConfigsConfigMap: ""
# -- reference for files declared in existing Secret will be mounted and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsConfigMap
existingAdditionalConfigsSecret: ""
# -- files declared in this parameter will be mounted on internal folder /opt/clearml/config and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsSecret
additionalConfigs: {}
# additionalFile.conf: |
# <filecontent>
# -- Autoscaling configuration
autoscaling:
enabled: false
@@ -95,6 +112,9 @@ clearml_serving_triton:
image:
repository: "allegroai/clearml-serving-triton"
tag: "1.3.0"
# -- Runtime Class configuration
# uncomment to use custom runtime class, eg. nvidia when using GPU operator
# runtimeClassName: "nvidia"
# -- Node Selector configuration
nodeSelector: {}
# -- Tolerations configuration
@@ -103,10 +123,20 @@ clearml_serving_triton:
affinity: {}
# -- Pod resources definition
resources: {}
# -- Extra environment variables
extraEnvironment: []
# -- Extra Python Packages to be installed in running pods
extraPythonPackages: []
# - numpy==1.22.4
# - pandas==1.4.2
# -- reference for files declared in existing ConfigMap will be mounted and read by pod (examples in values.yaml)
existingAdditionalConfigsConfigMap: ""
# -- reference for files declared in existing Secret will be mounted and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsConfigMap
existingAdditionalConfigsSecret: ""
# -- files declared in this parameter will be mounted on internal folder /opt/clearml/config and read by pod (examples in values.yaml) if not overridden by existingAdditionalConfigsSecret
additionalConfigs: {}
# additionalFile.conf: |
# <filecontent>
# -- Autoscaling configuration
autoscaling:
enabled: false

View File

@@ -4,9 +4,9 @@ dependencies:
version: 17.8.3
- name: mongodb
repository: https://charts.bitnami.com/bitnami
version: 12.1.31
version: 13.18.5
- name: elasticsearch
repository: https://helm.elastic.co
version: 7.17.3
digest: sha256:e92c4ac212dfd90a527af0260fa71a5fcc33f485a21c1cca3daa2ced667858b2
generated: "2023-03-10T14:59:49.01676+01:00"
digest: sha256:d5864444fa8c5cb66a83ec02cdbe4b0776f9f6538dfe67132be7eeb2781b50e4
generated: "2025-01-07T15:18:46.845769+01:00"

View File

@@ -2,17 +2,17 @@ apiVersion: v2
name: clearml
description: MLOps platform
type: application
version: "7.3.1"
appVersion: "1.12.0"
kubeVersion: ">= 1.21.0-0 < 1.29.0-0"
version: "7.14.4"
appVersion: "2.0"
kubeVersion: ">= 1.21.0-0 < 1.33.0-0"
home: https://clear.ml
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
icon: https://raw.githubusercontent.com/clearml/clearml/master/docs/clearml-logo.svg
sources:
- https://github.com/allegroai/clearml-helm-charts
- https://github.com/allegroai/clearml
- https://github.com/clearml/clearml-helm-charts
- https://github.com/clearml/clearml
maintainers:
- name: valeriano-manassero
url: https://github.com/valeriano-manassero
- name: filippo-clearml
url: https://github.com/filippo-clearml
keywords:
- clearml
- "machine learning"
@@ -23,7 +23,7 @@ dependencies:
repository: "https://charts.bitnami.com/bitnami"
condition: redis.enabled
- name: mongodb
version: "12.1.31"
version: "13.18.5"
repository: "https://charts.bitnami.com/bitnami"
condition: mongodb.enabled
- name: elasticsearch
@@ -32,5 +32,5 @@ dependencies:
condition: elasticsearch.enabled
annotations:
artifacthub.io/changes: |
- kind: added
description: kubernetes 1.28 support
- kind: fixed
description: "casted port to string before concatenation"

View File

@@ -1,6 +1,6 @@
# ClearML Ecosystem for Kubernetes
![Version: 7.3.1](https://img.shields.io/badge/Version-7.3.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.12.0](https://img.shields.io/badge/AppVersion-1.12.0-informational?style=flat-square)
![Version: 7.14.4](https://img.shields.io/badge/Version-7.14.4-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 2.0](https://img.shields.io/badge/AppVersion-2.0-informational?style=flat-square)
MLOps platform
@@ -10,11 +10,11 @@ MLOps platform
| Name | Email | Url |
| ---- | ------ | --- |
| valeriano-manassero | | <https://github.com/valeriano-manassero> |
| filippo-clearml | | <https://github.com/filippo-clearml> |
## Introduction
The **clearml-server** is the backend service infrastructure for [ClearML](https://github.com/allegroai/clearml).
The **clearml-server** is the backend service infrastructure for [ClearML](https://github.com/clearml/clearml).
It allows multiple users to collaborate and manage their experiments.
**clearml-server** contains the following components:
@@ -25,6 +25,14 @@ It allows multiple users to collaborate and manage their experiments.
* Querying experiments history, logs and results
* Locally-hosted file server for storing images and models making them easily accessible using the Web-App
## Add to local Helm repository
To add this chart to your local Helm repository:
```
helm repo add clearml https://clearml.github.io/clearml-helm-charts
```
## Local environment
For development/evaluation it's possible to use [kind](https://kind.sigs.k8s.io).
@@ -60,7 +68,7 @@ nodes:
containerPath: /var/local-path-provisioner
EOF
helm install clearml allegroai/clearml
helm install clearml clearml/clearml
```
After deployment, the services will be exposed on localhost on the following ports:
@@ -88,7 +96,7 @@ Just pointing the domain records to the IP where ingress controller is respondin
A production ready cluster should also have some different configuration like the one proposed in `values-production.yaml` that can be applied with:
```
helm install clearml allegroai/clearml -f values-production.yaml
helm install clearml clearml/clearml -f values-production.yaml
```
## Upgrades/ Values upgrades
@@ -97,13 +105,13 @@ Updating to latest version of this chart can be done in two steps:
```
helm repo update
helm upgrade clearml allegroai/clearml
helm upgrade clearml clearml/clearml
```
Changing values on existing installation can be done with:
```
helm upgrade clearml allegroai/clearml --version <CURRENT CHART VERSION> -f custom_values.yaml
helm upgrade clearml clearml/clearml --version <CURRENT CHART VERSION> -f custom_values.yaml
```
Please note: updating values only should always be done setting explicit chart version to avoid a possible chart update.
@@ -124,20 +132,20 @@ You can also configure the **clearml-server** for:
* fixed users (users with credentials)
* non-responsive experiment watchdog settings
For detailed instructions, see the [Optional Configuration](https://github.com/allegroai/clearml-server#optional-configuration) section in the **clearml-server** repository README file.
For detailed instructions, see the [Optional Configuration](https://github.com/clearml/clearml-server#optional-configuration) section in the **clearml-server** repository README file.
## Source Code
* <https://github.com/allegroai/clearml-helm-charts>
* <https://github.com/allegroai/clearml>
* <https://github.com/clearml/clearml-helm-charts>
* <https://github.com/clearml/clearml>
## Requirements
Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
Kubernetes: `>= 1.21.0-0 < 1.33.0-0`
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | mongodb | 12.1.31 |
| https://charts.bitnami.com/bitnami | mongodb | 13.18.5 |
| https://charts.bitnami.com/bitnami | redis | 17.8.3 |
| https://helm.elastic.co | elasticsearch | 7.17.3 |
@@ -145,15 +153,18 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| apiserver | object | `{"additionalConfigs":{},"affinity":{},"containerSecurityContext":{},"enabled":true,"existingAdditionalConfigsConfigMap":"","existingAdditionalConfigsSecret":"","extraEnvs":[],"image":{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.12.0-393"},"ingress":{"annotations":{},"enabled":false,"hostName":"api.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"initContainers":{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}},"nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"prepopulateEnabled":true,"processes":{"count":8,"maxRequests":1000,"maxRequestsJitter":300,"timeout":24000},"replicaCount":1,"resources":{"limits":{"cpu":"2000m","memory":"1Gi"},"requests":{"cpu":"100m","memory":"256Mi"}},"service":{"annotations":{},"nodePort":30008,"port":8008,"type":"NodePort"},"tolerations":[]}` | Api Server configurations |
| apiserver | object | `{"additionalConfigs":{},"additionalVolumeMounts":{},"additionalVolumes":{},"affinity":{},"containerSecurityContext":{},"deploymentAnnotations":null,"enabled":true,"existingAdditionalConfigsConfigMap":"","existingAdditionalConfigsSecret":"","extraEnvs":[],"image":{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"2.0.0-613"},"ingress":{"annotations":{},"enabled":false,"hostName":"api.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"initContainers":{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}},"nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"prepopulateEnabled":true,"processes":{"count":8,"maxRequests":1000,"maxRequestsJitter":300,"timeout":24000},"replicaCount":1,"resources":{"limits":{"cpu":"2000m","memory":"1Gi"},"requests":{"cpu":"100m","memory":"256Mi"}},"service":{"annotations":{},"nodePort":30008,"port":8008,"type":"NodePort"},"serviceAccountAnnotations":{},"serviceAccountName":"clearml","tolerations":[]}` | Api Server configurations |
| apiserver.additionalConfigs | object | `{}` | files declared in this parameter will be mounted and read by apiserver (examples in values.yaml) if not overridden by existingAdditionalConfigsSecret |
| apiserver.additionalVolumeMounts | object | `{}` | Specifies where and how the volumes defined in additionalVolumes. |
| apiserver.additionalVolumes | object | `{}` | # Defines extra Kubernetes volumes to be attached to the pod. |
| apiserver.affinity | object | `{}` | Api Server affinity setup |
| apiserver.containerSecurityContext | object | `{}` | Api Server containers security context |
| apiserver.deploymentAnnotations | string | `nil` | Add the provided map to the annotations for the Deployment resource created by this chart. |
| apiserver.enabled | bool | `true` | Enable/Disable component deployment |
| apiserver.existingAdditionalConfigsConfigMap | string | `""` | reference for files declared in existing ConfigMap will be mounted and read by apiserver (examples in values.yaml) |
| apiserver.existingAdditionalConfigsSecret | string | `""` | reference for files declared in existing Secret will be mounted and read by apiserver (examples in values.yaml) if not overridden by existingAdditionalConfigsConfigMap |
| apiserver.extraEnvs | list | `[]` | Api Server extra envrinoment variables |
| apiserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.12.0-393"}` | Api Server image configuration |
| apiserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"2.0.0-613"}` | Api Server image configuration |
| apiserver.ingress | object | `{"annotations":{},"enabled":false,"hostName":"api.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""}` | Ingress configuration for Api Server component |
| apiserver.ingress.annotations | object | `{}` | Ingress annotations |
| apiserver.ingress.enabled | bool | `false` | Enable/Disable ingress |
@@ -176,6 +187,8 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| apiserver.service | object | `{"annotations":{},"nodePort":30008,"port":8008,"type":"NodePort"}` | Api Server internal service configuration |
| apiserver.service.annotations | object | `{}` | specific annotation for Api Server service |
| apiserver.service.nodePort | int | `30008` | If service.type set to NodePort, this will be set to service's nodePort field. If service.type is set to others, this field will be ignored |
| apiserver.serviceAccountAnnotations | object | `{}` | Add the provided map to the annotations for the ServiceAccount resource created by this chart. |
| apiserver.serviceAccountName | string | `"clearml"` | The default serviceAccountName to be used |
| apiserver.tolerations | list | `[]` | Api Server tolerations setup |
| clearml | object | `{"apiserverKey":"GGS9F4M6XB2DXJ5AFT9F","apiserverSecret":"2oGujVFhPfaozhpuz2GzQfA5OyxmMsR3WVJpsCR5hrgHFs20PO","clientConfigurationApiUrl":"","clientConfigurationFilesUrl":"","cookieDomain":"","cookieName":"clearml-token-k8s","defaultCompany":"d1bd92a3b039400cbafc60a7a5b1e52b","existingSecret":"","fileserverKey":"XXCRJ123CEE2KSQ068WO","fileserverSecret":"YIy8EVAC7QCT4FtgitxAQGyW7xRHDZ4jpYlTE7HKiscpORl1hG","readinessprobeKey":"GK4PRTVT3706T25K6BA1","readinessprobeSecret":"ymLh1ok5k5xNUQfS944Xdx9xjf0wueokqKM2dMZfHuH9ayItG2","secureAuthTokenSecret":"ymLh1ok5k5xNUQfS944Xdx9xjf0wueokqKM2dMZfHuH9ayItG2","testUserKey":"ENP39EQM4SLACGD5FXB7","testUserSecret":"lPcm0imbcBZ8mwgO7tpadutiS3gnJD05x9j7afwXPS35IKbpiQ"}` | ClearMl generic configurations |
| clearml.apiserverKey | string | `"GGS9F4M6XB2DXJ5AFT9F"` | Api Server basic auth key |
@@ -193,19 +206,22 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| clearml.secureAuthTokenSecret | string | `"ymLh1ok5k5xNUQfS944Xdx9xjf0wueokqKM2dMZfHuH9ayItG2"` | Secure Auth secret |
| clearml.testUserKey | string | `"ENP39EQM4SLACGD5FXB7"` | Test Server basic auth key |
| clearml.testUserSecret | string | `"lPcm0imbcBZ8mwgO7tpadutiS3gnJD05x9j7afwXPS35IKbpiQ"` | Test File Server basic auth secret |
| elasticsearch | object | `{"clusterHealthCheckParams":"wait_for_status=yellow&timeout=1s","clusterName":"clearml-elastic","enabled":true,"esConfig":{"elasticsearch.yml":"xpack.security.enabled: false\n"},"esJavaOpts":"-Xmx2g -Xms2g","extraEnvs":[{"name":"bootstrap.memory_lock","value":"false"},{"name":"cluster.routing.allocation.node_initial_primaries_recoveries","value":"500"},{"name":"cluster.routing.allocation.disk.watermark.low","value":"500mb"},{"name":"cluster.routing.allocation.disk.watermark.high","value":"500mb"},{"name":"cluster.routing.allocation.disk.watermark.flood_stage","value":"500mb"},{"name":"http.compression_level","value":"7"},{"name":"reindex.remote.whitelist","value":"*.*"},{"name":"xpack.monitoring.enabled","value":"false"},{"name":"xpack.security.enabled","value":"false"}],"httpPort":9200,"minimumMasterNodes":1,"persistence":{"enabled":true},"replicas":1,"resources":{"limits":{"cpu":"2000m","memory":"4Gi"},"requests":{"cpu":"100m","memory":"2Gi"}},"roles":{"data":"true","ingest":"true","master":"true","remote_cluster_client":"true"},"volumeClaimTemplate":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"50Gi"}},"storageClassName":null}}` | Configuration from https://github.com/elastic/helm-charts/blob/7.16/elasticsearch/values.yaml |
| elasticsearch | object | `{"clusterHealthCheckParams":"wait_for_status=yellow&timeout=1s","clusterName":"clearml-elastic","enabled":true,"esConfig":{"elasticsearch.yml":"xpack.security.enabled: false\n"},"esJavaOpts":"-Xmx2g -Xms2g","extraEnvs":[{"name":"bootstrap.memory_lock","value":"false"},{"name":"cluster.routing.allocation.node_initial_primaries_recoveries","value":"500"},{"name":"cluster.routing.allocation.disk.watermark.low","value":"500mb"},{"name":"cluster.routing.allocation.disk.watermark.high","value":"500mb"},{"name":"cluster.routing.allocation.disk.watermark.flood_stage","value":"500mb"},{"name":"http.compression_level","value":"7"},{"name":"reindex.remote.whitelist","value":"*.*"},{"name":"xpack.monitoring.enabled","value":"false"},{"name":"xpack.security.enabled","value":"false"}],"httpPort":9200,"minimumMasterNodes":1,"persistence":{"enabled":true},"rbac":{"create":true},"replicas":1,"resources":{"limits":{"cpu":"2000m","memory":"4Gi"},"requests":{"cpu":"100m","memory":"2Gi"}},"roles":{"data":"true","ingest":"true","master":"true","remote_cluster_client":"true"},"volumeClaimTemplate":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"50Gi"}},"storageClassName":null}}` | Configuration from https://github.com/elastic/helm-charts/blob/7.16/elasticsearch/values.yaml |
| externalServices | object | `{"elasticsearchConnectionString":"[{\"host\":\"es_hostname1\",\"port\":9200},{\"host\":\"es_hostname2\",\"port\":9200},{\"host\":\"es_hostname3\",\"port\":9200}]","mongodbConnectionStringAuth":"mongodb://mongodb_hostname:27017/auth","mongodbConnectionStringBackend":"mongodb://mongodb_hostnamehostname:27017/backend","redisHost":"redis_hostname","redisPort":6379}` | Definition of external services to use if not enabled as dependency charts here |
| externalServices.elasticsearchConnectionString | string | `"[{\"host\":\"es_hostname1\",\"port\":9200},{\"host\":\"es_hostname2\",\"port\":9200},{\"host\":\"es_hostname3\",\"port\":9200}]"` | Existing ElasticSearch connectionstring if elasticsearch.enabled is false (example in values.yaml) |
| externalServices.mongodbConnectionStringAuth | string | `"mongodb://mongodb_hostname:27017/auth"` | Existing MongoDB connection string for BACKEND to use if mongodb.enabled is false (example in values.yaml) |
| externalServices.mongodbConnectionStringBackend | string | `"mongodb://mongodb_hostnamehostname:27017/backend"` | Existing MongoDB connection string for AUTH to use if mongodb.enabled is false (example in values.yaml) |
| externalServices.redisHost | string | `"redis_hostname"` | Existing Redis Hostname to use if redis.enabled is false (example in values.yaml) |
| externalServices.redisPort | int | `6379` | Existing Redis Port to use if redis.enabled is false |
| fileserver | object | `{"affinity":{},"containerSecurityContext":{},"enabled":true,"extraEnvs":[],"image":{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.12.0-393"},"ingress":{"annotations":{},"enabled":false,"hostName":"files.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"initContainers":{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}},"nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"replicaCount":1,"resources":{"limits":{"cpu":"2000m","memory":"1Gi"},"requests":{"cpu":"100m","memory":"256Mi"}},"service":{"annotations":{},"nodePort":30081,"port":8081,"type":"NodePort"},"storage":{"data":{"accessMode":"ReadWriteOnce","class":"","existingPVC":"","size":"50Gi"},"enabled":true},"tolerations":[]}` | File Server configurations |
| fileserver | object | `{"additionalVolumeMounts":{},"additionalVolumes":{},"affinity":{},"containerSecurityContext":{},"deploymentAnnotations":{},"enabled":true,"extraEnvs":[],"image":{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"2.0.0-613"},"ingress":{"annotations":{},"enabled":false,"hostName":"files.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"initContainers":{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}},"nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"replicaCount":1,"resources":{"limits":{"cpu":"2000m","memory":"1Gi"},"requests":{"cpu":"100m","memory":"256Mi"}},"service":{"annotations":{},"nodePort":30081,"port":8081,"type":"NodePort"},"serviceAccountAnnotations":{},"serviceAccountName":"clearml","storage":{"data":{"accessMode":"ReadWriteOnce","class":"","existingPVC":"","size":"50Gi"},"enabled":true},"tolerations":[]}` | File Server configurations |
| fileserver.additionalVolumeMounts | object | `{}` | Specifies where and how the volumes defined in additionalVolumes. |
| fileserver.additionalVolumes | object | `{}` | # Defines extra Kubernetes volumes to be attached to the pod. |
| fileserver.affinity | object | `{}` | File Server affinity setup |
| fileserver.containerSecurityContext | object | `{}` | File Server containers security context |
| fileserver.deploymentAnnotations | object | `{}` | Add the provided map to the annotations for the Deployment resource created by this chart. |
| fileserver.enabled | bool | `true` | Enable/Disable component deployment |
| fileserver.extraEnvs | list | `[]` | File Server extra envrinoment variables |
| fileserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.12.0-393"}` | File Server image configuration |
| fileserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"2.0.0-613"}` | File Server image configuration |
| fileserver.ingress | object | `{"annotations":{},"enabled":false,"hostName":"files.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""}` | Ingress configuration for File Server component |
| fileserver.ingress.annotations | object | `{}` | Ingress annotations |
| fileserver.ingress.enabled | bool | `false` | Enable/Disable ingress |
@@ -222,6 +238,8 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| fileserver.service | object | `{"annotations":{},"nodePort":30081,"port":8081,"type":"NodePort"}` | File Server internal service configuration |
| fileserver.service.annotations | object | `{}` | specific annotation for File Server service |
| fileserver.service.nodePort | int | `30081` | If service.type set to NodePort, this will be set to service's nodePort field. If service.type is set to others, this field will be ignored |
| fileserver.serviceAccountAnnotations | object | `{}` | Add the provided map to the annotations for the ServiceAccount resource created by this chart. |
| fileserver.serviceAccountName | string | `"clearml"` | The default serviceAccountName to be used |
| fileserver.storage | object | `{"data":{"accessMode":"ReadWriteOnce","class":"","existingPVC":"","size":"50Gi"},"enabled":true}` | File server persistence settings |
| fileserver.storage.data.accessMode | string | `"ReadWriteOnce"` | Access mode (must be ReadWriteMany if fileserver replica > 1) |
| fileserver.storage.data.class | string | `""` | Storage class (use default if empty) |
@@ -237,15 +255,18 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| imageCredentials.password | string | `"pwd"` | Registry password |
| imageCredentials.registry | string | `"docker.io"` | Registry name |
| imageCredentials.username | string | `"someone"` | Registry username |
| mongodb | object | `{"architecture":"standalone","auth":{"enabled":false},"enabled":true,"persistence":{"accessModes":["ReadWriteOnce"],"enabled":true,"size":"50Gi","storageClass":null},"replicaCount":1}` | Configuration from https://github.com/bitnami/charts/blob/master/bitnami/mongodb/values.yaml |
| mongodb | object | `{"architecture":"standalone","auth":{"enabled":false},"enabled":true,"persistence":{"accessModes":["ReadWriteOnce"],"enabled":true,"size":"50Gi","storageClass":null},"replicaCount":1,"updateStrategy":{"rollingUpdate":{"maxSurge":0,"maxUnavailable":1},"type":"RollingUpdate"}}` | Configuration from https://github.com/bitnami/charts/blob/master/bitnami/mongodb/values.yaml |
| redis | object | `{"architecture":"standalone","auth":{"enabled":false},"databaseNumber":0,"enabled":true,"master":{"name":"{{ .Release.Name }}-redis-master","persistence":{"accessModes":["ReadWriteOnce"],"enabled":true,"size":"5Gi","storageClass":null},"port":6379}}` | Configuration from https://github.com/bitnami/charts/blob/master/bitnami/redis/values.yaml |
| webserver | object | `{"additionalConfigs":{},"affinity":{},"containerSecurityContext":{},"enabled":true,"extraEnvs":[],"image":{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.12.0-393"},"ingress":{"annotations":{},"enabled":false,"hostName":"app.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"initContainers":{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}},"nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"replicaCount":1,"resources":{"limits":{"cpu":"2000m","memory":"1Gi"},"requests":{"cpu":"100m","memory":"256Mi"}},"service":{"annotations":{},"nodePort":30080,"port":8080,"type":"NodePort"},"tolerations":[]}` | Web Server configurations |
| webserver | object | `{"additionalConfigs":{},"additionalVolumeMounts":{},"additionalVolumes":{},"affinity":{},"containerSecurityContext":{},"deploymentAnnotations":{},"enabled":true,"extraEnvs":[],"image":{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"2.0.0-613"},"ingress":{"annotations":{},"enabled":false,"hostName":"app.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""},"initContainers":{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}},"nodeSelector":{},"podAnnotations":{},"podSecurityContext":{},"replicaCount":1,"resources":{"limits":{"cpu":"2000m","memory":"1Gi"},"requests":{"cpu":"100m","memory":"256Mi"}},"service":{"annotations":{},"nodePort":30080,"port":8080,"type":"NodePort"},"serviceAccountAnnotations":{},"serviceAccountName":"clearml","tolerations":[]}` | Web Server configurations |
| webserver.additionalConfigs | object | `{}` | Additional specific webserver configurations |
| webserver.additionalVolumeMounts | object | `{}` | Specifies where and how the volumes defined in additionalVolumes. |
| webserver.additionalVolumes | object | `{}` | # Defines extra Kubernetes volumes to be attached to the pod. |
| webserver.affinity | object | `{}` | Web Server affinity setup |
| webserver.containerSecurityContext | object | `{}` | Web Server containers security context |
| webserver.deploymentAnnotations | object | `{}` | Add the provided map to the annotations for the Deployment resource created by this chart. |
| webserver.enabled | bool | `true` | Enable/Disable component deployment |
| webserver.extraEnvs | list | `[]` | Web Server extra envrinoment variables |
| webserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.12.0-393"}` | Web Server image configuration |
| webserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"2.0.0-613"}` | Web Server image configuration |
| webserver.ingress | object | `{"annotations":{},"enabled":false,"hostName":"app.clearml.127-0-0-1.nip.io","ingressClassName":"","path":"/","tlsSecretName":""}` | Ingress configuration for Web Server component |
| webserver.ingress.annotations | object | `{}` | Ingress annotations |
| webserver.ingress.enabled | bool | `false` | Enable/Disable ingress |
@@ -262,4 +283,6 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
| webserver.service | object | `{"annotations":{},"nodePort":30080,"port":8080,"type":"NodePort"}` | Web Server internal service configuration |
| webserver.service.annotations | object | `{}` | specific annotation for Web Server service |
| webserver.service.nodePort | int | `30080` | If service.type set to NodePort, this will be set to service's nodePort field. If service.type is set to others, this field will be ignored |
| webserver.serviceAccountAnnotations | object | `{}` | Add the provided map to the annotations for the ServiceAccount resource created by this chart. |
| webserver.serviceAccountName | string | `"clearml"` | The default serviceAccountName to be used |
| webserver.tolerations | list | `[]` | Web Server tolerations setup |

View File

@@ -11,7 +11,7 @@
## Introduction
The **clearml-server** is the backend service infrastructure for [ClearML](https://github.com/allegroai/clearml).
The **clearml-server** is the backend service infrastructure for [ClearML](https://github.com/clearml/clearml).
It allows multiple users to collaborate and manage their experiments.
**clearml-server** contains the following components:
@@ -22,6 +22,14 @@ It allows multiple users to collaborate and manage their experiments.
* Querying experiments history, logs and results
* Locally-hosted file server for storing images and models making them easily accessible using the Web-App
## Add to local Helm repository
To add this chart to your local Helm repository:
```
helm repo add clearml https://clearml.github.io/clearml-helm-charts
```
## Local environment
For development/evaluation it's possible to use [kind](https://kind.sigs.k8s.io).
@@ -57,7 +65,7 @@ nodes:
containerPath: /var/local-path-provisioner
EOF
helm install clearml allegroai/clearml
helm install clearml clearml/clearml
```
After deployment, the services will be exposed on localhost on the following ports:
@@ -85,7 +93,7 @@ Just pointing the domain records to the IP where ingress controller is respondin
A production ready cluster should also have some different configuration like the one proposed in `values-production.yaml` that can be applied with:
```
helm install clearml allegroai/clearml -f values-production.yaml
helm install clearml clearml/clearml -f values-production.yaml
```
## Upgrades/ Values upgrades
@@ -94,13 +102,13 @@ Updating to latest version of this chart can be done in two steps:
```
helm repo update
helm upgrade clearml allegroai/clearml
helm upgrade clearml clearml/clearml
```
Changing values on existing installation can be done with:
```
helm upgrade clearml allegroai/clearml --version <CURRENT CHART VERSION> -f custom_values.yaml
helm upgrade clearml clearml/clearml --version <CURRENT CHART VERSION> -f custom_values.yaml
```
Please note: updating values only should always be done setting explicit chart version to avoid a possible chart update.
@@ -121,7 +129,7 @@ You can also configure the **clearml-server** for:
* fixed users (users with credentials)
* non-responsive experiment watchdog settings
For detailed instructions, see the [Optional Configuration](https://github.com/allegroai/clearml-server#optional-configuration) section in the **clearml-server** repository README file.
For detailed instructions, see the [Optional Configuration](https://github.com/clearml/clearml-server#optional-configuration) section in the **clearml-server** repository README file.
{{ template "chart.sourcesSection" . }}

Binary file not shown.

View File

@@ -160,6 +160,23 @@ Create configuration secret name
{{- if .Values.clearml.existingSecret -}} {{ default "clearml-conf" .Values.clearml.existingSecret | quote }} {{- else -}} "clearml-conf" {{- end }}
{{- end }}
{{/*
compose file url
*/}}
{{- define "clearml.fileUrl" -}}
{{- if .Values.clearml.clientConfigurationFilesUrl }}
{{- .Values.clearml.clientConfigurationFilesUrl }}
{{- else if .Values.fileserver.ingress.enabled }}
{{- $protocol := "http" }}
{{- if .Values.fileserver.ingress.tlsSecretName }}
{{- $protocol = "https" }}
{{- end }}
{{- printf "%s%s%s" $protocol "://" .Values.fileserver.ingress.hostName }}
{{- else }}
{{- printf "%s%s%s%s" "http://" (include "fileserver.referenceName" .) ":" ( .Values.fileserver.service.port | toString ) }}
{{- end }}
{{- end }}
{{/*
Elasticsearch Service name
*/}}
@@ -174,12 +191,19 @@ Elasticsearch Service port
{{- .Values.elasticsearch.httpPort }}
{{- end }}
{{/*
Elasticsearch Service schema
*/}}
{{- define "elasticsearch.servicescheme" -}}
{{- .Values.elasticsearch.httpScheme }}
{{- end }}
{{/*
Elasticsearch Comnnection string
*/}}
{{- define "elasticsearch.connectionstring" -}}
{{- if .Values.elasticsearch.enabled }}
{{- printf "[{\"host\":\"%s\",\"port\":%s}]" (include "elasticsearch.servicename" .) (include "elasticsearch.serviceport" .) | quote }}
{{- printf "[{\"host\":\"%s\",\"port\":%s,\"scheme\":\"%s\"}]" (include "elasticsearch.servicename" .) (include "elasticsearch.serviceport" .) (include "elasticsearch.servicescheme" .) | quote }}
{{- else }}
{{- .Values.externalServices.elasticsearchConnectionString | quote }}
{{- end }}
@@ -216,12 +240,8 @@ Redis Service name
*/}}
{{- define "redis.servicename" -}}
{{- if .Values.redis.enabled }}
{{- if eq .Values.redis.architecture "standalone" }}
{{- tpl .Values.redis.master.name . }}
{{- else }}
{{- printf "%s-headless" (tpl .Values.redis.master.name . ) }}
{{- end }}
{{- else }}
{{- .Values.externalServices.redisHost }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,146 @@
{{- if .Values.apiserver.enabled }}
{{- if (include "clearml.fileUrl" .) }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "apiserver.referenceName" . }}-asyncdelete
labels:
{{- include "clearml.labels" . | nindent 4 }}
spec:
replicas: 1
selector:
matchLabels:
{{- include "clearml.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.apiserver.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "clearml.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ .Values.apiserver.serviceAccountName }}-apiserver
{{- if .Values.imageCredentials.enabled }}
imagePullSecrets:
{{- if .Values.imageCredentials.existingSecret }}
- name: {{ .Values.imageCredentials.existingSecret }}
{{- else }}
- name: clearml-registry-key
{{- end }}
{{- end }}
{{- if or .Values.apiserver.additionalConfigs .Values.apiserver.existingAdditionalConfigsConfigMap .Values.apiserver.existingAdditionalConfigsSecret }}
volumes:
- name: apiserver-config
{{- if or .Values.apiserver.existingAdditionalConfigsConfigMap }}
configMap:
name: {{ .Values.apiserver.existingAdditionalConfigsConfigMap }}
{{- else if or .Values.apiserver.existingAdditionalConfigsSecret }}
secret:
secretName: {{ .Values.apiserver.existingAdditionalConfigsSecret }}
{{- else if or .Values.apiserver.additionalConfigs }}
configMap:
name: "{{ include "apiserver.referenceName" . }}-configmap"
{{- end }}
{{- end }}
securityContext:
{{ toYaml .Values.apiserver.podSecurityContext | nindent 8 }}
initContainers:
- name: init-apiserver
image: "{{ include "registryNamePrefix" (dict "globalValues" .Values.global "imageRegistryValue" .Values.apiserver.image.registry) }}{{ .Values.apiserver.image.repository }}:{{ .Values.apiserver.image.tag }}"
command:
- /bin/sh
- -c
- >
set -x;
{{- if .Values.elasticsearch.enabled }}
while [ $(curl -sw '%{http_code}' "http://{{ include "elasticsearch.servicename" . }}:{{ include "elasticsearch.serviceport" . }}/_cluster/health" -o /dev/null) -ne 200 ] ; do
echo "waiting for elasticsearch" ;
sleep 5 ;
done ;
{{- end }}
{{- if .Values.mongodb.enabled }}
while [ $(curl --telnet-option BOGUS --connect-timeout 2 -s "telnet://{{ .Release.Name }}-{{ include "mongodb.hostname" . }}:27017" -o /dev/null; echo $?) -ne 49 ] ; do
echo "waiting for mongodb" ;
sleep 5 ;
done ;
{{- end }}
{{- if .Values.redis.enabled }}
while [ $(curl --telnet-option BOGUS --connect-timeout 2 -s "telnet://{{ include "redis.servicename" . }}:{{ include "redis.serviceport" . }}" -o /dev/null; echo $?) -ne 49 ] ; do
echo "waiting for redis" ;
sleep 5 ;
done ;
{{- end }}
securityContext:
{{ toYaml .Values.apiserver.containerSecurityContext | nindent 12 }}
resources:
{{- toYaml .Values.apiserver.initContainers.resources | nindent 12 }}
containers:
- name: clearml-apiserver
image: "{{ include "registryNamePrefix" (dict "globalValues" .Values.global "imageRegistryValue" .Values.apiserver.image.registry) }}{{ .Values.apiserver.image.repository }}:{{ .Values.apiserver.image.tag }}"
imagePullPolicy: {{ .Values.apiserver.image.pullPolicy }}
command:
- /bin/sh
- -c
- >
python3 -m jobs.async_urls_delete --fileserver-host http://{{ include "fileserver.referenceName" . }}:{{ .Values.fileserver.service.port }}
env:
- name: CLEARML_REDIS_SERVICE_HOST
value: {{ include "redis.servicename" . }}
- name: CLEARML_REDIS_SERVICE_PORT
value: "{{ include "redis.serviceport" . }}"
{{- if .Values.mongodb.enabled }}
- name: CLEARML_MONGODB_SERVICE_CONNECTION_STRING
value: {{ include "mongodb.connectionstring" . | quote }}
{{- else }}
- name: CLEARML__HOSTS__MONGO__BACKEND__HOST
value: {{ .Values.externalServices.mongodbConnectionStringBackend | quote }}
- name: CLEARML__HOSTS__MONGO__AUTH__HOST
value: {{ .Values.externalServices.mongodbConnectionStringAuth | quote }}
{{- end }}
- name: CLEARML__HOSTS__ELASTIC__WORKERS__HOSTS
value: {{ include "elasticsearch.connectionstring" . }}
- name: CLEARML__HOSTS__ELASTIC__EVENTS__HOSTS
value: {{ include "elasticsearch.connectionstring" . }}
- name: CLEARML__HOSTS__ELASTIC__DATASETS__HOSTS
value: {{ include "elasticsearch.connectionstring" . }}
- name: CLEARML__HOSTS__ELASTIC__LOGS__HOSTS
value: {{ include "elasticsearch.connectionstring" . }}
- name: CLEARML__secure__auth__token_secret
valueFrom:
secretKeyRef:
name: {{ include "clearml.confSecretName" .}}
key: secure_auth_token_secret
- name: CLEARML__apiserver__default_company_name
value: "{{ .Values.clearml.defaultCompany }}"
- name: CLEARML__logging__handlers__text_file__filename
value: "/dev/null"
- name: PYTHONPATH
value: /opt/clearml/apiserver
- name: CLEARML__apiserver__default_company
value: "{{ .Values.clearml.defaultCompanyGuid }}"
- name: CLEARML__services__async_urls_delete__fileserver__url_prefixes
value: "[\"{{ include "clearml.fileUrl" . }}\"]"
{{- if or .Values.apiserver.additionalConfigs .Values.apiserver.existingAdditionalConfigsConfigMap .Values.apiserver.existingAdditionalConfigsSecret }}
volumeMounts:
- name: apiserver-config
mountPath: /opt/clearml/config
{{- end }}
resources:
{{- toYaml .Values.apiserver.resources | nindent 12 }}
securityContext:
{{ toYaml .Values.apiserver.containerSecurityContext | nindent 12 }}
{{- with .Values.apiserver.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.apiserver.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.apiserver.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -5,6 +5,10 @@ metadata:
name: {{ include "apiserver.referenceName" . }}
labels:
{{- include "clearml.labels" . | nindent 4 }}
{{- with .Values.apiserver.deploymentAnnotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
replicas: {{ .Values.apiserver.replicaCount }}
selector:
@@ -19,6 +23,7 @@ spec:
labels:
{{- include "apiserver.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ .Values.apiserver.serviceAccountName }}-apiserver
{{- if .Values.imageCredentials.enabled }}
imagePullSecrets:
{{- if .Values.imageCredentials.existingSecret }}
@@ -27,19 +32,24 @@ spec:
- name: clearml-registry-key
{{- end }}
{{- end }}
{{- if or .Values.apiserver.additionalConfigs .Values.apiserver.existingAdditionalConfigsConfigMap .Values.apiserver.existingAdditionalConfigsSecret }}
{{- if or .Values.apiserver.additionalConfigs .Values.apiserver.existingAdditionalConfigsConfigMap .Values.apiserver.existingAdditionalConfigsSecret .Values.apiserver.additionalVolumes }}
volumes:
{{- if .Values.apiserver.existingAdditionalConfigsConfigMap }}
- name: apiserver-config
{{- if or .Values.apiserver.existingAdditionalConfigsConfigMap }}
configMap:
name: {{ .Values.apiserver.existingAdditionalConfigsConfigMap }}
{{- else if or .Values.apiserver.existingAdditionalConfigsSecret }}
{{- else if .Values.apiserver.existingAdditionalConfigsSecret }}
- name: apiserver-config
secret:
secretName: {{ .Values.apiserver.existingAdditionalConfigsSecret }}
{{- else if or .Values.apiserver.additionalConfigs }}
{{- else if .Values.apiserver.additionalConfigs }}
- name: apiserver-config
configMap:
name: "{{ include "apiserver.referenceName" . }}-configmap"
{{- end }}
{{- end }}
{{- if .Values.apiserver.additionalVolumes }}
{{- toYaml .Values.apiserver.additionalVolumes | nindent 8 }}
{{- end }}
{{- end }}
securityContext:
{{ toYaml .Values.apiserver.podSecurityContext | nindent 8 }}
@@ -165,10 +175,15 @@ spec:
httpHeaders:
- name: Authorization
value: Basic {{ include "readinessProbeAuth" . }}
{{- if or .Values.apiserver.additionalConfigs .Values.apiserver.existingAdditionalConfigsConfigMap .Values.apiserver.existingAdditionalConfigsSecret }}
{{- if or .Values.apiserver.additionalConfigs .Values.apiserver.existingAdditionalConfigsConfigMap .Values.apiserver.existingAdditionalConfigsSecret .Values.apiserver.additionalVolumeMounts }}
volumeMounts:
{{- if or .Values.apiserver.additionalConfigs .Values.apiserver.existingAdditionalConfigsConfigMap .Values.apiserver.existingAdditionalConfigsSecret }}
- name: apiserver-config
mountPath: /opt/clearml/config
{{- end }}
{{- if .Values.apiserver.additionalVolumeMounts }}
{{- toYaml .Values.apiserver.additionalVolumeMounts | nindent 12 }}
{{- end }}
{{- end }}
resources:
{{- toYaml .Values.apiserver.resources | nindent 12 }}

View File

@@ -5,6 +5,10 @@ metadata:
name: {{ include "fileserver.referenceName" . }}
labels:
{{- include "clearml.labels" . | nindent 4 }}
{{- with .Values.fileserver.deploymentAnnotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
replicas: {{ .Values.fileserver.replicaCount }}
selector:
@@ -19,6 +23,7 @@ spec:
labels:
{{- include "fileserver.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ .Values.fileserver.serviceAccountName }}-fileserver
{{- if .Values.imageCredentials.enabled }}
imagePullSecrets:
{{- if .Values.imageCredentials.existingSecret }}
@@ -42,6 +47,9 @@ spec:
- name: fileserver-data
emptyDir: {}
{{- end }}
{{- if .Values.fileserver.additionalVolumes }}
{{- toYaml .Values.fileserver.additionalVolumes | nindent 8 }}
{{- end }}
securityContext:
{{ toYaml .Values.fileserver.podSecurityContext | nindent 8 }}
initContainers:
@@ -109,6 +117,9 @@ spec:
volumeMounts:
- name: fileserver-data
mountPath: /mnt/fileserver
{{- if .Values.fileserver.additionalVolumeMounts }}
{{- toYaml .Values.fileserver.additionalVolumeMounts | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.fileserver.resources | nindent 12 }}
securityContext:

View File

@@ -0,0 +1,26 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.apiserver.serviceAccountName }}-apiserver
{{- if .Values.apiserver.serviceAccountAnnotations }}
annotations:
{{- toYaml .Values.apiserver.serviceAccountAnnotations | nindent 4 }}
{{- end }}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.fileserver.serviceAccountName }}-fileserver
{{- if .Values.fileserver.serviceAccountAnnotations }}
annotations:
{{- toYaml .Values.fileserver.serviceAccountAnnotations | nindent 4 }}
{{- end }}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Values.webserver.serviceAccountName }}-webserver
{{- if .Values.webserver.serviceAccountAnnotations }}
annotations:
{{- toYaml .Values.webserver.serviceAccountAnnotations | nindent 4 }}
{{- end }}

View File

@@ -5,6 +5,10 @@ metadata:
name: {{ include "webserver.referenceName" . }}
labels:
{{- include "clearml.labels" . | nindent 4 }}
{{- with .Values.webserver.deploymentAnnotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
replicas: {{ .Values.webserver.replicaCount }}
selector:
@@ -19,6 +23,7 @@ spec:
labels:
{{- include "webserver.selectorLabels" . | nindent 8 }}
spec:
serviceAccountName: {{ .Values.webserver.serviceAccountName }}-webserver
{{- if .Values.imageCredentials.enabled }}
imagePullSecrets:
{{- if .Values.imageCredentials.existingSecret }}
@@ -31,6 +36,9 @@ spec:
- name: webserver-config
configMap:
name: "{{ include "webserver.referenceName" . }}-configmap"
{{- if .Values.webserver.additionalVolumes }}
{{- toYaml .Values.webserver.additionalVolumes | nindent 8 }}
{{- end }}
securityContext:
{{ toYaml .Values.webserver.podSecurityContext | nindent 8 }}
initContainers:
@@ -86,6 +94,9 @@ spec:
volumeMounts:
- name: webserver-config
mountPath: /mnt/external_files/configs
{{- if .Values.webserver.additionalVolumeMounts }}
{{- toYaml .Values.webserver.additionalVolumeMounts | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.webserver.resources | nindent 12 }}
securityContext:

View File

@@ -56,14 +56,20 @@ clearml:
apiserver:
# -- Enable/Disable component deployment
enabled: true
# -- Add the provided map to the annotations for the Deployment resource created by this chart.
deploymentAnnotations:
# -- Enable/Disable example data load
prepopulateEnabled: true
# -- The default serviceAccountName to be used
serviceAccountName: clearml
# -- Add the provided map to the annotations for the ServiceAccount resource created by this chart.
serviceAccountAnnotations: {}
# -- Api Server image configuration
image:
registry: ""
repository: "allegroai/clearml"
pullPolicy: IfNotPresent
tag: "1.12.0-393"
tag: "2.0.0-613"
# -- Api Server internal service configuration
service:
# -- specific annotation for Api Server service
@@ -167,17 +173,33 @@ apiserver:
# ]
# }
# }
# -- # Defines extra Kubernetes volumes to be attached to the pod.
additionalVolumes: {}
# - name: ramdisk
# emptyDir:
# medium: Memory
# sizeLimit: 32Gi
# -- Specifies where and how the volumes defined in additionalVolumes.
additionalVolumeMounts: {}
# - mountPath: /dev/shm
# name: ramdisk
# -- File Server configurations
fileserver:
# -- Enable/Disable component deployment
enabled: true
# -- Add the provided map to the annotations for the Deployment resource created by this chart.
deploymentAnnotations: {}
# -- The default serviceAccountName to be used
serviceAccountName: clearml
# -- Add the provided map to the annotations for the ServiceAccount resource created by this chart.
serviceAccountAnnotations: {}
# -- File Server image configuration
image:
registry: ""
repository: "allegroai/clearml"
pullPolicy: IfNotPresent
tag: "1.12.0-393"
tag: "2.0.0-613"
# -- File Server internal service configuration
service:
# -- specific annotation for File Server service
@@ -249,17 +271,33 @@ fileserver:
# -- Access mode (must be ReadWriteMany if fileserver replica > 1)
accessMode: ReadWriteOnce
size: 50Gi
# -- # Defines extra Kubernetes volumes to be attached to the pod.
additionalVolumes: {}
# - name: ramdisk
# emptyDir:
# medium: Memory
# sizeLimit: 32Gi
# -- Specifies where and how the volumes defined in additionalVolumes.
additionalVolumeMounts: {}
# - mountPath: /dev/shm
# name: ramdisk
# -- Web Server configurations
webserver:
# -- Enable/Disable component deployment
enabled: true
# -- Add the provided map to the annotations for the Deployment resource created by this chart.
deploymentAnnotations: {}
# -- The default serviceAccountName to be used
serviceAccountName: clearml
# -- Add the provided map to the annotations for the ServiceAccount resource created by this chart.
serviceAccountAnnotations: {}
# -- Web Server image configuration
image:
registry: ""
repository: "allegroai/clearml"
pullPolicy: IfNotPresent
tag: "1.12.0-393"
tag: "2.0.0-613"
# -- Web Server internal service configuration
service:
# -- specific annotation for Web Server service
@@ -321,6 +359,16 @@ webserver:
# fsGroup: 1001
# -- Additional specific webserver configurations
additionalConfigs: {}
# -- # Defines extra Kubernetes volumes to be attached to the pod.
additionalVolumes: {}
# - name: ramdisk
# emptyDir:
# medium: Memory
# sizeLimit: 32Gi
# -- Specifies where and how the volumes defined in additionalVolumes.
additionalVolumeMounts: {}
# - mountPath: /dev/shm
# name: ramdisk
# -- Definition of external services to use if not enabled as dependency charts here
externalServices:
@@ -356,6 +404,11 @@ redis:
# -- Configuration from https://github.com/bitnami/charts/blob/master/bitnami/mongodb/values.yaml
mongodb:
enabled: true
updateStrategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
type: RollingUpdate
architecture: standalone
auth:
enabled: false
@@ -380,7 +433,8 @@ elasticsearch:
replicas: 1
# Readiness probe hack for a single-node cluster (where status will never be green). Should be removed if using replicas > 1
clusterHealthCheckParams: "wait_for_status=yellow&timeout=1s"
rbac:
create: true
minimumMasterNodes: 1
clusterName: clearml-elastic
esJavaOpts: "-Xmx2g -Xms2g"