mirror of
https://github.com/clearml/clearml-helm-charts
synced 2025-04-17 01:31:13 +00:00
Compare commits
34 Commits
clearml-se
...
clearml-ag
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 |
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:
|
||||
|
||||
14
.github/workflows/ci.yaml
vendored
14
.github/workflows/ci.yaml
vendored
@@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Run helm-docs
|
||||
@@ -24,20 +24,20 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
k8s:
|
||||
- v1.26.6
|
||||
- v1.27.3
|
||||
- v1.28.0
|
||||
- v1.28.9
|
||||
- v1.29.4
|
||||
- v1.30.0
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Create kind ${{ matrix.k8s }} cluster
|
||||
uses: helm/kind-action@v1.8.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.5.0
|
||||
uses: helm/chart-testing-action@v2.6.1
|
||||
with:
|
||||
version: v3.8.0
|
||||
- name: Add bitnami repo
|
||||
|
||||
@@ -2,17 +2,17 @@ apiVersion: v2
|
||||
name: clearml-agent
|
||||
description: MLOps platform Task running agent
|
||||
type: application
|
||||
version: "5.1.1"
|
||||
version: "5.2.3"
|
||||
appVersion: "1.24"
|
||||
kubeVersion: ">= 1.21.0-0 < 1.29.0-0"
|
||||
kubeVersion: ">= 1.21.0-0 < 1.32.0-0"
|
||||
home: https://clear.ml
|
||||
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
|
||||
sources:
|
||||
- https://github.com/allegroai/clearml-helm-charts
|
||||
- https://github.com/allegroai/clearml
|
||||
maintainers:
|
||||
- name: valeriano-manassero
|
||||
url: https://github.com/valeriano-manassero
|
||||
- name: filippo-clearml
|
||||
url: https://github.com/filippo-clearml
|
||||
keywords:
|
||||
- clearml
|
||||
- "machine learning"
|
||||
@@ -21,4 +21,4 @@ keywords:
|
||||
annotations:
|
||||
artifacthub.io/changes: |
|
||||
- kind: added
|
||||
description: kubernetes 1.28 support
|
||||
description: Support for Kubernetes 1.31
|
||||
|
||||
@@ -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).
|
||||
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 allegroai https://allegroai.github.io/clearml-helm-charts
|
||||
```
|
||||
|
||||
# Upgrading Chart
|
||||
|
||||
## Upgrades/ Values upgrades
|
||||
@@ -47,13 +55,13 @@ Before issuing helm upgrade:
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
|
||||
Kubernetes: `>= 1.21.0-0 < 1.32.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":{},"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.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,7 +97,7 @@ 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 |
|
||||
|
||||
@@ -14,6 +14,14 @@
|
||||
The **clearml-agent** is the Kubernetes agent for for [ClearML](https://github.com/allegroai/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 allegroai https://allegroai.github.io/clearml-helm-charts
|
||||
```
|
||||
|
||||
# Upgrading Chart
|
||||
|
||||
## Upgrades/ Values upgrades
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
@@ -70,8 +80,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.5.2"
|
||||
version: "1.5.8"
|
||||
appVersion: "1.3.0"
|
||||
kubeVersion: ">= 1.21.0-0 < 1.29.0-0"
|
||||
kubeVersion: ">= 1.21.0-0 < 1.32.0-0"
|
||||
home: https://clear.ml
|
||||
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
|
||||
sources:
|
||||
- https://github.com/allegroai/clearml-helm-charts
|
||||
- https://github.com/allegroai/clearml
|
||||
maintainers:
|
||||
- name: valeriano-manassero
|
||||
url: https://github.com/valeriano-manassero
|
||||
- name: filippo-clearml
|
||||
url: https://github.com/filippo-clearml
|
||||
keywords:
|
||||
- clearml
|
||||
- "machine learning"
|
||||
@@ -34,6 +34,4 @@ dependencies:
|
||||
annotations:
|
||||
artifacthub.io/changes: |
|
||||
- kind: fixed
|
||||
description: missing extraEnvs
|
||||
- kind: fixed
|
||||
description: added runtimeClassName for triton pods and fixed nodeSelector not working
|
||||
description: Triton deployment tolerations placement fix
|
||||
|
||||
@@ -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).
|
||||
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 allegroai https://allegroai.github.io/clearml-helm-charts
|
||||
```
|
||||
|
||||
# Upgrading Chart
|
||||
|
||||
## Upgrades/ Values upgrades
|
||||
@@ -41,7 +49,7 @@ helm upgrade clearml-serving allegroai/clearml-serving --version <CURRENT CHART
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
|
||||
Kubernetes: `>= 1.21.0-0 < 1.32.0-0`
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
|
||||
@@ -14,6 +14,14 @@
|
||||
The **clearml-serving** is the Kubernetes serving for for [ClearML](https://github.com/allegroai/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 allegroai https://allegroai.github.io/clearml-helm-charts
|
||||
```
|
||||
|
||||
# Upgrading Chart
|
||||
|
||||
## Upgrades/ Values upgrades
|
||||
|
||||
@@ -4,7 +4,7 @@ kind: ConfigMap
|
||||
metadata:
|
||||
name: "{{ include "clearmlServing.fullname" . }}-inference-configmap"
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
{{- include "clearmlServing.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.clearml_serving_inference.additionalConfigs }}
|
||||
{{ $key }}: |
|
||||
|
||||
@@ -40,6 +40,10 @@ spec:
|
||||
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
|
||||
@@ -98,10 +102,6 @@ spec:
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.clearml_serving_inference.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.clearml_serving_inference.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
|
||||
@@ -5,7 +5,7 @@ kind: ConfigMap
|
||||
metadata:
|
||||
name: "{{ include "clearmlServing.fullname" . }}-statistics-configmap"
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
{{- include "clearmlServing.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.clearml_serving_statistics.additionalConfigs }}
|
||||
{{ $key }}: |
|
||||
|
||||
@@ -41,6 +41,10 @@ spec:
|
||||
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
|
||||
@@ -83,10 +87,6 @@ spec:
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.clearml_serving_statistics.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.clearml_serving_statistics.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
|
||||
@@ -5,7 +5,7 @@ kind: ConfigMap
|
||||
metadata:
|
||||
name: "{{ include "clearmlServing.fullname" . }}-triton-configmap"
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
{{- include "clearmlServing.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.clearml_serving_triton.additionalConfigs }}
|
||||
{{ $key }}: |
|
||||
|
||||
@@ -44,6 +44,14 @@ spec:
|
||||
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
|
||||
@@ -78,15 +86,6 @@ spec:
|
||||
- name: additional-config
|
||||
mountPath: /opt/clearml/config
|
||||
{{- end }}
|
||||
|
||||
{{- with .Values.clearml_serving_triton.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.clearml_serving_triton.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.clearml_serving_triton.resources | nindent 12 }}
|
||||
restartPolicy: Always
|
||||
|
||||
@@ -2,17 +2,17 @@ apiVersion: v2
|
||||
name: clearml
|
||||
description: MLOps platform
|
||||
type: application
|
||||
version: "7.5.0"
|
||||
appVersion: "1.13.0"
|
||||
kubeVersion: ">= 1.21.0-0 < 1.29.0-0"
|
||||
version: "7.11.5"
|
||||
appVersion: "1.16"
|
||||
kubeVersion: ">= 1.21.0-0 < 1.32.0-0"
|
||||
home: https://clear.ml
|
||||
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
|
||||
sources:
|
||||
- https://github.com/allegroai/clearml-helm-charts
|
||||
- https://github.com/allegroai/clearml
|
||||
maintainers:
|
||||
- name: valeriano-manassero
|
||||
url: https://github.com/valeriano-manassero
|
||||
- name: filippo-clearml
|
||||
url: https://github.com/filippo-clearml
|
||||
keywords:
|
||||
- clearml
|
||||
- "machine learning"
|
||||
@@ -32,5 +32,5 @@ dependencies:
|
||||
condition: elasticsearch.enabled
|
||||
annotations:
|
||||
artifacthub.io/changes: |
|
||||
- kind: changed
|
||||
description: app version to 1.13
|
||||
- kind: added
|
||||
description: Support for Kubernetes 1.31
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ClearML Ecosystem for Kubernetes
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
MLOps platform
|
||||
|
||||
@@ -10,7 +10,7 @@ MLOps platform
|
||||
|
||||
| Name | Email | Url |
|
||||
| ---- | ------ | --- |
|
||||
| valeriano-manassero | | <https://github.com/valeriano-manassero> |
|
||||
| filippo-clearml | | <https://github.com/filippo-clearml> |
|
||||
|
||||
## Introduction
|
||||
|
||||
@@ -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 allegroai https://allegroai.github.io/clearml-helm-charts
|
||||
```
|
||||
|
||||
## Local environment
|
||||
|
||||
For development/evaluation it's possible to use [kind](https://kind.sigs.k8s.io).
|
||||
@@ -133,7 +141,7 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
|
||||
## Requirements
|
||||
|
||||
Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
|
||||
Kubernetes: `>= 1.21.0-0 < 1.32.0-0`
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
@@ -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.13.0-414"},"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":"1.16.2-502"},"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.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.13.0-414"}` | Api Server image configuration |
|
||||
| apiserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.16.2-502"}` | 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 |
|
||||
@@ -201,12 +212,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.13.0-414"},"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":"1.16.2-502"},"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.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.13.0-414"}` | File Server image configuration |
|
||||
| fileserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.16.2-502"}` | 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 |
|
||||
@@ -241,13 +255,16 @@ Kubernetes: `>= 1.21.0-0 < 1.29.0-0`
|
||||
| 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 |
|
||||
| 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.13.0-414"},"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":"1.16.2-502"},"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.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.13.0-414"}` | Web Server image configuration |
|
||||
| webserver.image | object | `{"pullPolicy":"IfNotPresent","registry":"","repository":"allegroai/clearml","tag":"1.16.2-502"}` | 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 |
|
||||
|
||||
@@ -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 allegroai https://allegroai.github.io/clearml-helm-charts
|
||||
```
|
||||
|
||||
## Local environment
|
||||
|
||||
For development/evaluation it's possible to use [kind](https://kind.sigs.k8s.io).
|
||||
|
||||
@@ -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 }}
|
||||
{{- 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 }}
|
||||
|
||||
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:
|
||||
|
||||
@@ -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,6 +56,8 @@ 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
|
||||
@@ -65,7 +67,7 @@ apiserver:
|
||||
registry: ""
|
||||
repository: "allegroai/clearml"
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.13.0-414"
|
||||
tag: "1.16.2-502"
|
||||
# -- Api Server internal service configuration
|
||||
service:
|
||||
# -- specific annotation for Api Server service
|
||||
@@ -169,11 +171,23 @@ 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
|
||||
# -- File Server image configuration
|
||||
@@ -181,7 +195,7 @@ fileserver:
|
||||
registry: ""
|
||||
repository: "allegroai/clearml"
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.13.0-414"
|
||||
tag: "1.16.2-502"
|
||||
# -- File Server internal service configuration
|
||||
service:
|
||||
# -- specific annotation for File Server service
|
||||
@@ -253,11 +267,23 @@ 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
|
||||
# -- Web Server image configuration
|
||||
@@ -265,7 +291,7 @@ webserver:
|
||||
registry: ""
|
||||
repository: "allegroai/clearml"
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.13.0-414"
|
||||
tag: "1.16.2-502"
|
||||
# -- Web Server internal service configuration
|
||||
service:
|
||||
# -- specific annotation for Web Server service
|
||||
@@ -327,6 +353,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:
|
||||
|
||||
Reference in New Issue
Block a user