mirror of
https://github.com/clearml/clearml-helm-charts
synced 2025-04-17 01:31:13 +00:00
Compare commits
54 Commits
clearml-7.
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
747c018adb | ||
|
|
299cc2adb4 | ||
|
|
1479cf9ed2 | ||
|
|
2a4d9569f3 | ||
|
|
6c212f5b82 | ||
|
|
4885e01750 | ||
|
|
311f6ea9e0 | ||
|
|
966a0e69ab | ||
|
|
4cd31fa843 | ||
|
|
6b2954ab9f | ||
|
|
fc518f9389 | ||
|
|
389159aa0c | ||
|
|
7c53365cd8 | ||
|
|
a51c7ee856 | ||
|
|
67c3720cf9 | ||
|
|
c501ede9be | ||
|
|
10a33b65f7 | ||
|
|
0866033bac | ||
|
|
02a87e18f5 | ||
|
|
7532609c35 | ||
|
|
bf17429258 | ||
|
|
adcb4b0fc9 | ||
|
|
873f222d68 | ||
|
|
fbbbee5ef2 | ||
|
|
e569ed3d9e | ||
|
|
2b0d67000a | ||
|
|
700d6b244b | ||
|
|
61c96ddf6d | ||
|
|
ad3bdf2372 | ||
|
|
6cd821742b | ||
|
|
ac96346607 | ||
|
|
312813cc34 | ||
|
|
255cabfd7f | ||
|
|
204e2ac350 | ||
|
|
56d246fcea | ||
|
|
0e4a809d46 | ||
|
|
cfe62484af | ||
|
|
5ded87ec92 | ||
|
|
65393cd4bf | ||
|
|
4845bd3f4f | ||
|
|
4cb8db5baf | ||
|
|
4242e518ae | ||
|
|
4ca4bc82c4 | ||
|
|
75d9086bb9 | ||
|
|
546c2b6d2e | ||
|
|
0a2bc7c2a8 | ||
|
|
25de2dfaeb | ||
|
|
28d9fe82f6 | ||
|
|
e680990d10 | ||
|
|
fdbbe5b90d | ||
|
|
eff09794bd | ||
|
|
d13ad20e34 | ||
|
|
5ed9673ea1 | ||
|
|
0892882cf7 |
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -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
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: false
|
||||
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
2
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@@ -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:
|
||||
|
||||
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -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**)
|
||||
|
||||
2
.github/helm-docs.sh
vendored
2
.github/helm-docs.sh
vendored
@@ -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
|
||||
|
||||
17
.github/workflows/ci.yaml
vendored
17
.github/workflows/ci.yaml
vendored
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
10
INSTALL.md
10
INSTALL.md
@@ -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
|
||||
```
|
||||
|
||||
14
README.md
14
README.md
@@ -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!_
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ClearML Kubernetes Agent
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
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) |
|
||||
|
||||
@@ -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.*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ClearML Kubernetes Serving
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
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 |
|
||||
|
||||
@@ -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" . }}
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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
|
||||
|
||||
@@ -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 }}
|
||||
@@ -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 }}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -2,17 +2,17 @@ apiVersion: v2
|
||||
name: clearml
|
||||
description: MLOps platform
|
||||
type: application
|
||||
version: "7.4.0"
|
||||
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: service accounts for core clearml components
|
||||
- kind: fixed
|
||||
description: "casted port to string before concatenation"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ClearML Ecosystem for Kubernetes
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
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"},"serviceAccountName":"clearml","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,7 @@ 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 |
|
||||
@@ -201,12 +213,15 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
|
||||
| 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"},"serviceAccountName":"clearml","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 |
|
||||
@@ -223,6 +238,7 @@ 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) |
|
||||
@@ -239,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"},"serviceAccountName":"clearml","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 |
|
||||
@@ -264,5 +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 |
|
||||
|
||||
@@ -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.
BIN
charts/clearml/charts/mongodb-13.18.5.tgz
Normal file
BIN
charts/clearml/charts/mongodb-13.18.5.tgz
Normal file
Binary file not shown.
@@ -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 }}
|
||||
|
||||
146
charts/clearml/templates/apiserver-asyncdelete-deployment.yaml
Normal file
146
charts/clearml/templates/apiserver-asyncdelete-deployment.yaml
Normal 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 }}
|
||||
@@ -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:
|
||||
@@ -28,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 }}
|
||||
@@ -166,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 }}
|
||||
|
||||
@@ -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:
|
||||
@@ -43,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:
|
||||
@@ -110,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:
|
||||
|
||||
@@ -2,13 +2,25 @@ 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 }}
|
||||
|
||||
@@ -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:
|
||||
@@ -32,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:
|
||||
@@ -87,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:
|
||||
|
||||
@@ -56,16 +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
|
||||
@@ -169,19 +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
|
||||
@@ -253,19 +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
|
||||
@@ -327,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:
|
||||
@@ -362,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
|
||||
|
||||
Reference in New Issue
Block a user