mirror of
https://github.com/clearml/clearml-helm-charts
synced 2025-04-17 01:31:13 +00:00
Compare commits
24 Commits
clearml-2.
...
clearml-3.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
018348bc1d | ||
|
|
57b85cbfce | ||
|
|
9c15a8a348 | ||
|
|
cd7f22f7d8 | ||
|
|
078e394e24 | ||
|
|
70b07c637a | ||
|
|
7b8e40c626 | ||
|
|
d8117eeb0d | ||
|
|
4c09ae2c92 | ||
|
|
478eecd5f2 | ||
|
|
43f4c44219 | ||
|
|
b83c8cd0e8 | ||
|
|
97f219228d | ||
|
|
1b5b9407f6 | ||
|
|
b494a8c0cf | ||
|
|
266a1e3c41 | ||
|
|
bba5c0769f | ||
|
|
b7f73e3bd9 | ||
|
|
d3f6f3e50d | ||
|
|
979e73fe3d | ||
|
|
7352f35836 | ||
|
|
82ad17860d | ||
|
|
aa761dd450 | ||
|
|
7ff2f94d1a |
2
.github/helm-docs.sh
vendored
2
.github/helm-docs.sh
vendored
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
CHART_DIRS="$(git diff --find-renames --name-only "$(git rev-parse --abbrev-ref HEAD)" remotes/origin/main -- 'charts' | grep '[cC]hart.yaml' | sed -e 's#/[Cc]hart.yaml##g')"
|
||||
HELM_DOCS_VERSION="1.5.0"
|
||||
HELM_DOCS_VERSION="1.7.0"
|
||||
|
||||
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
|
||||
|
||||
5
.github/workflows/ci.yaml
vendored
5
.github/workflows/ci.yaml
vendored
@@ -21,8 +21,9 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
k8s:
|
||||
- v1.20.7
|
||||
- v1.21.1
|
||||
- v1.21.2
|
||||
- v1.22.1
|
||||
- v1.23.0
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v1
|
||||
|
||||
@@ -7,6 +7,6 @@ dependencies:
|
||||
version: 10.3.4
|
||||
- name: elasticsearch
|
||||
repository: https://helm.elastic.co
|
||||
version: 7.10.1
|
||||
digest: sha256:aefd3992b2ab085161e4cca35c6f73dd33f8d19272a9405b5ee4e8c2a0e79bba
|
||||
generated: "2021-01-05T14:26:33.629164+01:00"
|
||||
version: 7.16.2
|
||||
digest: sha256:ac733cb02d50e8398c1d2832988333896f1c7b765c19a0f1eea5e9b24bdb8207
|
||||
generated: "2022-01-05T07:52:34.913745+01:00"
|
||||
|
||||
@@ -2,8 +2,8 @@ apiVersion: v2
|
||||
name: clearml
|
||||
description: MLOps platform
|
||||
type: application
|
||||
version: "2.2.2"
|
||||
appVersion: "1.1.1"
|
||||
version: "3.5.1"
|
||||
appVersion: "1.2.0"
|
||||
home: https://clear.ml
|
||||
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
|
||||
sources:
|
||||
@@ -18,14 +18,14 @@ keywords:
|
||||
- mlops
|
||||
dependencies:
|
||||
- name: redis
|
||||
version: "~10.9.0"
|
||||
version: "10.9.0"
|
||||
repository: "https://charts.bitnami.com/bitnami"
|
||||
condition: redis.enabled
|
||||
- name: mongodb
|
||||
version: "~10.3.2"
|
||||
version: "10.3.4"
|
||||
repository: "https://charts.bitnami.com/bitnami"
|
||||
condition: mongodb.enabled
|
||||
- name: elasticsearch
|
||||
version: "~7.10.1"
|
||||
version: "7.16.2"
|
||||
repository: "https://helm.elastic.co"
|
||||
condition: elasticsearch.enabled
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# ClearML Ecosystem for Kubernetes
|
||||
|
||||
  
|
||||
  
|
||||
|
||||
MLOps platform
|
||||
|
||||
@@ -39,14 +39,20 @@ apiVersion: kind.x-k8s.io/v1alpha4
|
||||
nodes:
|
||||
- role: control-plane
|
||||
extraPortMappings:
|
||||
# API server's default nodePort is 30008. If you customize it in helm values by
|
||||
# `apiserver.service.nodePort`, `containerPort` should match it
|
||||
- containerPort: 30008
|
||||
hostPort: 30008
|
||||
listenAddress: "127.0.0.1"
|
||||
protocol: TCP
|
||||
# Web server's default nodePort is 30080. If you customize it in helm values by
|
||||
# `webserver.service.nodePort`, `containerPort` should match it
|
||||
- containerPort: 30080
|
||||
hostPort: 30080
|
||||
listenAddress: "127.0.0.1"
|
||||
protocol: TCP
|
||||
# File server's default nodePort is 30081. If you customize it in helm values by
|
||||
# `fileserver.service.nodePort`, `containerPort` should match it
|
||||
- containerPort: 30081
|
||||
hostPort: 30081
|
||||
listenAddress: "127.0.0.1"
|
||||
@@ -101,9 +107,9 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
|
||||
| Repository | Name | Version |
|
||||
|------------|------|---------|
|
||||
| https://charts.bitnami.com/bitnami | mongodb | ~10.3.2 |
|
||||
| https://charts.bitnami.com/bitnami | redis | ~10.9.0 |
|
||||
| https://helm.elastic.co | elasticsearch | ~7.10.1 |
|
||||
| https://charts.bitnami.com/bitnami | mongodb | 10.3.4 |
|
||||
| https://charts.bitnami.com/bitnami | redis | 10.9.0 |
|
||||
| https://helm.elastic.co | elasticsearch | 7.16.2 |
|
||||
|
||||
## Values
|
||||
|
||||
@@ -121,6 +127,7 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| agentGroups.agent-group-cpu.clearmlGitPassword | string | `nil` | |
|
||||
| agentGroups.agent-group-cpu.clearmlGitUser | string | `nil` | |
|
||||
| agentGroups.agent-group-cpu.clearmlSecretKey | string | `nil` | |
|
||||
| agentGroups.agent-group-cpu.enabled | bool | `true` | |
|
||||
| agentGroups.agent-group-cpu.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| agentGroups.agent-group-cpu.image.repository | string | `"ubuntu"` | |
|
||||
| agentGroups.agent-group-cpu.image.tag | string | `"18.04"` | |
|
||||
@@ -144,6 +151,7 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| agentGroups.agent-group-gpu.clearmlGitPassword | string | `nil` | |
|
||||
| agentGroups.agent-group-gpu.clearmlGitUser | string | `nil` | |
|
||||
| agentGroups.agent-group-gpu.clearmlSecretKey | string | `nil` | |
|
||||
| agentGroups.agent-group-gpu.enabled | bool | `true` | |
|
||||
| agentGroups.agent-group-gpu.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| agentGroups.agent-group-gpu.image.repository | string | `"nvidia/cuda"` | |
|
||||
| agentGroups.agent-group-gpu.image.tag | string | `"11.0-base-ubuntu18.04"` | |
|
||||
@@ -155,6 +163,16 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| agentGroups.agent-group-gpu.replicaCount | int | `0` | |
|
||||
| agentGroups.agent-group-gpu.tolerations | list | `[]` | |
|
||||
| agentGroups.agent-group-gpu.updateStrategy | string | `"Recreate"` | |
|
||||
| agentk8sglue.defaultDockerImage | string | `"nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu18.04"` | |
|
||||
| agentk8sglue.enabled | bool | `false` | |
|
||||
| agentk8sglue.id | string | `"k8s-agent"` | |
|
||||
| agentk8sglue.image.repository | string | `"allegroai/clearml-agent-k8s"` | |
|
||||
| agentk8sglue.image.tag | string | `"aws-latest-1.21"` | |
|
||||
| agentk8sglue.maxPods | int | `10` | |
|
||||
| agentk8sglue.podTemplate.nodeSelector | object | `{}` | |
|
||||
| agentk8sglue.podTemplate.resources | object | `{}` | |
|
||||
| agentk8sglue.podTemplate.tolerations | object | `{}` | |
|
||||
| agentk8sglue.queue | string | `"aws-instances"` | |
|
||||
| agentservices.affinity | object | `{}` | |
|
||||
| agentservices.agentVersion | string | `""` | |
|
||||
| agentservices.awsAccessKeyId | string | `nil` | |
|
||||
@@ -168,6 +186,7 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| agentservices.clearmlHostIp | string | `nil` | |
|
||||
| agentservices.clearmlWebHost | string | `nil` | |
|
||||
| agentservices.clearmlWorkerId | string | `"clearml-services"` | |
|
||||
| agentservices.enabled | bool | `false` | |
|
||||
| agentservices.extraEnvs | list | `[]` | |
|
||||
| agentservices.googleCredentials | string | `nil` | |
|
||||
| agentservices.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
@@ -180,12 +199,14 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| agentservices.storage.data.class | string | `"standard"` | |
|
||||
| agentservices.storage.data.size | string | `"50Gi"` | |
|
||||
| agentservices.tolerations | list | `[]` | |
|
||||
| apiserver.additionalConfigs | object | `{}` | |
|
||||
| apiserver.affinity | object | `{}` | |
|
||||
| apiserver.authCookiesMaxAge | int | `864000` | Amount of seconds the authorization cookie will last in user browser |
|
||||
| apiserver.configDir | string | `"/opt/clearml/config"` | |
|
||||
| apiserver.extraEnvs | list | `[]` | |
|
||||
| apiserver.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| apiserver.image.repository | string | `"allegroai/clearml"` | |
|
||||
| apiserver.image.tag | string | `"1.1.1"` | |
|
||||
| apiserver.image.tag | string | `"1.2.0"` | |
|
||||
| apiserver.livenessDelay | int | `60` | |
|
||||
| apiserver.nodeSelector | object | `{}` | |
|
||||
| apiserver.podAnnotations | object | `{}` | |
|
||||
@@ -195,11 +216,9 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| apiserver.readinessDelay | int | `60` | |
|
||||
| apiserver.replicaCount | int | `1` | |
|
||||
| apiserver.resources | object | `{}` | |
|
||||
| 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.service.port | int | `8008` | |
|
||||
| apiserver.service.type | string | `"NodePort"` | |
|
||||
| apiserver.storage.config.class | string | `"standard"` | |
|
||||
| apiserver.storage.config.size | string | `"1Gi"` | |
|
||||
| apiserver.storage.enableConfigVolume | bool | `false` | |
|
||||
| apiserver.service.type | string | `"NodePort"` | This will set to service's spec.type field |
|
||||
| apiserver.tolerations | list | `[]` | |
|
||||
| clearml.defaultCompany | string | `"d1bd92a3b039400cbafc60a7a5b1e52b"` | |
|
||||
| elasticsearch.clusterHealthCheckParams | string | `"wait_for_status=yellow&timeout=1s"` | |
|
||||
@@ -237,28 +256,39 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| elasticsearch.roles.remote_cluster_client | string | `"true"` | |
|
||||
| elasticsearch.volumeClaimTemplate.accessModes[0] | string | `"ReadWriteOnce"` | |
|
||||
| elasticsearch.volumeClaimTemplate.resources.requests.storage | string | `"50Gi"` | |
|
||||
| externalServices.elasticsearchHost | string | `""` | Existing ElasticSearch Hostname to use if elasticsearch.enabled is false |
|
||||
| externalServices.elasticsearchPort | int | `9200` | Existing ElasticSearch Port to use if elasticsearch.enabled is false |
|
||||
| externalServices.mongodbHost | string | `""` | Existing MongoDB Hostname to use if elasticsearch.enabled is false |
|
||||
| externalServices.mongodbPort | int | `27017` | Existing MongoDB Port to use if elasticsearch.enabled is false |
|
||||
| externalServices.redisHost | string | `""` | Existing Redis Hostname to use if elasticsearch.enabled is false |
|
||||
| externalServices.redisPort | int | `6379` | Existing Redis Port to use if elasticsearch.enabled is false |
|
||||
| fileserver.affinity | object | `{}` | |
|
||||
| fileserver.extraEnvs | list | `[]` | |
|
||||
| fileserver.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| fileserver.image.repository | string | `"allegroai/clearml"` | |
|
||||
| fileserver.image.tag | string | `"1.1.1"` | |
|
||||
| fileserver.image.tag | string | `"1.2.0"` | |
|
||||
| fileserver.nodeSelector | object | `{}` | |
|
||||
| fileserver.podAnnotations | object | `{}` | |
|
||||
| fileserver.replicaCount | int | `1` | |
|
||||
| fileserver.resources | object | `{}` | |
|
||||
| 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.service.port | int | `8081` | |
|
||||
| fileserver.service.type | string | `"NodePort"` | |
|
||||
| fileserver.service.type | string | `"NodePort"` | This will set to service's spec.type field |
|
||||
| fileserver.storage.data.class | string | `"standard"` | |
|
||||
| fileserver.storage.data.size | string | `"50Gi"` | |
|
||||
| fileserver.tolerations | list | `[]` | |
|
||||
| ingress.annotations | object | `{}` | |
|
||||
| ingress.api.annotations | object | `{}` | |
|
||||
| ingress.api.hostName | string | `"api.clearml.127-0-0-1.nip.io"` | |
|
||||
| ingress.api.tlsSecretName | string | `""` | |
|
||||
| ingress.app.annotations | object | `{}` | |
|
||||
| ingress.app.hostName | string | `"app.clearml.127-0-0-1.nip.io"` | |
|
||||
| ingress.app.tlsSecretName | string | `""` | |
|
||||
| ingress.enabled | bool | `false` | |
|
||||
| ingress.host | string | `""` | |
|
||||
| ingress.hostPrefixApi | string | `"api."` | |
|
||||
| ingress.hostPrefixApp | string | `"app."` | |
|
||||
| ingress.hostPrefixFiles | string | `"files."` | |
|
||||
| ingress.files.annotations | object | `{}` | |
|
||||
| ingress.files.hostName | string | `"files.clearml.127-0-0-1.nip.io"` | |
|
||||
| ingress.files.tlsSecretName | string | `""` | |
|
||||
| ingress.name | string | `"clearml-server-ingress"` | |
|
||||
| ingress.tls.secretName | string | `""` | |
|
||||
| mongodb.architecture | string | `"standalone"` | |
|
||||
| mongodb.auth.enabled | bool | `false` | |
|
||||
| mongodb.enabled | bool | `true` | |
|
||||
@@ -279,15 +309,22 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
||||
| redis.master.persistence.size | string | `"5Gi"` | |
|
||||
| redis.master.port | int | `6379` | |
|
||||
| redis.usePassword | bool | `false` | |
|
||||
| secret.authToken | string | `"1SCf0ov3Nm544Td2oZ0gXSrsNx5XhMWdVlKz1tOgcx158bD5RV"` | Set for auth_token field |
|
||||
| secret.credentials.apiserver.accessKey | string | `"5442F3443MJMORWZA3ZH"` | Set for apiserver_key field |
|
||||
| secret.credentials.apiserver.secretKey | string | `"BxapIRo9ZINi8x25CRxz8Wdmr2pQjzuWVB4PNASZqCtTyWgWVQ"` | Set for apiserver_secret field |
|
||||
| secret.credentials.tests.accessKey | string | `"ENP39EQM4SLACGD5FXB7"` | Set for tests_user_key field |
|
||||
| secret.credentials.tests.secretKey | string | `"lPcm0imbcBZ8mwgO7tpadutiS3gnJD05x9j7afwXPS35IKbpiQ"` | Set for tests_user_secret field |
|
||||
| secret.httpSession | string | `"9Tw20RbhJ1bLBiHEOWXvhplKGUbTgLzAtwFN2oLQvWwS0uRpD5"` | Set for http_session field |
|
||||
| webserver.affinity | object | `{}` | |
|
||||
| webserver.extraEnvs | list | `[]` | |
|
||||
| webserver.image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
| webserver.image.repository | string | `"allegroai/clearml"` | |
|
||||
| webserver.image.tag | string | `"1.1.1"` | |
|
||||
| webserver.image.tag | string | `"1.2.0"` | |
|
||||
| webserver.nodeSelector | object | `{}` | |
|
||||
| webserver.podAnnotations | object | `{}` | |
|
||||
| webserver.replicaCount | int | `1` | |
|
||||
| webserver.resources | object | `{}` | |
|
||||
| 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.service.port | int | `80` | |
|
||||
| webserver.service.type | string | `"NodePort"` | |
|
||||
| webserver.service.type | string | `"NodePort"` | This will set to service's spec.type field |
|
||||
| webserver.tolerations | list | `[]` | |
|
||||
|
||||
@@ -36,14 +36,20 @@ apiVersion: kind.x-k8s.io/v1alpha4
|
||||
nodes:
|
||||
- role: control-plane
|
||||
extraPortMappings:
|
||||
# API server's default nodePort is 30008. If you customize it in helm values by
|
||||
# `apiserver.service.nodePort`, `containerPort` should match it
|
||||
- containerPort: 30008
|
||||
hostPort: 30008
|
||||
listenAddress: "127.0.0.1"
|
||||
protocol: TCP
|
||||
# Web server's default nodePort is 30080. If you customize it in helm values by
|
||||
# `webserver.service.nodePort`, `containerPort` should match it
|
||||
- containerPort: 30080
|
||||
hostPort: 30080
|
||||
listenAddress: "127.0.0.1"
|
||||
protocol: TCP
|
||||
# File server's default nodePort is 30081. If you customize it in helm values by
|
||||
# `fileserver.service.nodePort`, `containerPort` should match it
|
||||
- containerPort: 30081
|
||||
hostPort: 30081
|
||||
listenAddress: "127.0.0.1"
|
||||
|
||||
Binary file not shown.
BIN
charts/clearml/charts/elasticsearch-7.16.2.tgz
Normal file
BIN
charts/clearml/charts/elasticsearch-7.16.2.tgz
Normal file
Binary file not shown.
7
charts/clearml/ci/README.md
Normal file
7
charts/clearml/ci/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
Place values files with different values in this directory to ensure these cases are tested by the CI as well.
|
||||
|
||||
https://github.com/helm/chart-testing/blob/main/doc/ct_install.md
|
||||
|
||||
```
|
||||
"Charts may have multiple custom values files matching the glob pattern '*-values.yaml' in a directory named 'ci' in the root of the chart's directory. The chart is installed and tested for each of these files. If no custom values file is present, the chart is installed and tested with defaults."
|
||||
```
|
||||
1
charts/clearml/ci/default-values.yaml
Normal file
1
charts/clearml/ci/default-values.yaml
Normal file
@@ -0,0 +1 @@
|
||||
# empty so default values.yaml gets tested
|
||||
2
charts/clearml/ci/k8sagent-values.yaml
Normal file
2
charts/clearml/ci/k8sagent-values.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
agentk8sglue:
|
||||
enabled: true
|
||||
@@ -101,13 +101,13 @@ Create the name of the App service to use
|
||||
*/}}
|
||||
{{- define "clearml.serviceApp" -}}
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- if .Values.ingress.tls.secretName }}
|
||||
{{- printf "%s%s%s" "https://" .Values.ingress.hostPrefixApp .Values.ingress.host }}
|
||||
{{- if .Values.ingress.app.tlsSecretName }}
|
||||
{{- printf "%s%s" "https://" .Values.ingress.app.hostName }}
|
||||
{{- else }}
|
||||
{{- printf "%s%s%s" "http://" .Values.ingress.hostPrefixApp .Values.ingress.host }}
|
||||
{{- printf "%s%s" "http://" .Values.ingress.app.hostName }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- printf "%s%s%s%s" "http://" (include "clearml.fullname" .) "-webserver:" (.Values.webserver.service.port | quote) }}
|
||||
{{- printf "%s%s%s%s" "http://" (include "clearml.fullname" .) "-webserver:" (.Values.webserver.service.port | toString) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -116,13 +116,13 @@ Create the name of the Api service to use
|
||||
*/}}
|
||||
{{- define "clearml.serviceApi" -}}
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- if .Values.ingress.tls.secretName }}
|
||||
{{- printf "%s%s%s" "https://" .Values.ingress.hostPrefixApi .Values.ingress.host }}
|
||||
{{- if .Values.ingress.api.tlsSecretName }}
|
||||
{{- printf "%s%s" "https://" .Values.ingress.api.hostName }}
|
||||
{{- else }}
|
||||
{{- printf "%s%s%s" "http://" .Values.ingress.hostPrefixApi .Values.ingress.host }}
|
||||
{{- printf "%s%s" "http://" .Values.ingress.api.hostName }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- printf "%s%s%s%s" "http://" (include "clearml.fullname" .) "-apiserver:" (.Values.apiserver.service.port | quote) }}
|
||||
{{- printf "%s%s%s%s" "http://" (include "clearml.fullname" .) "-apiserver:" (.Values.apiserver.service.port | toString) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -131,12 +131,12 @@ Create the name of the Files service to use
|
||||
*/}}
|
||||
{{- define "clearml.serviceFiles" -}}
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- if .Values.ingress.tls.secretName }}
|
||||
{{- printf "%s%s%s" "https://" .Values.ingress.hostPrefixFiles .Values.ingress.host }}
|
||||
{{- if .Values.ingress.files.tlsSecretName }}
|
||||
{{- printf "%s%s" "https://" .Values.ingress.files.hostName }}
|
||||
{{- else }}
|
||||
{{- printf "%s%s%s" "http://" .Values.ingress.hostPrefixFiles .Values.ingress.host }}
|
||||
{{- printf "%s%s" "http://" .Values.ingress.files.hostName }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- printf "%s%s%s%s" "http://" (include "clearml.fullname" .) "-fileserver:" (.Values.fileserver.service.port | quote) }}
|
||||
{{- printf "%s%s%s%s" "http://" (include "clearml.fullname" .) "-fileserver:" (.Values.fileserver.service.port | toString) }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
37
charts/clearml/templates/configmap-agentk8s-template.yaml
Normal file
37
charts/clearml/templates/configmap-agentk8s-template.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
{{- if .Values.agentk8sglue.enabled }}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: k8sagent-pod-template
|
||||
data:
|
||||
template.yaml: |
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
namespace: {{ .Release.namespace }}
|
||||
spec:
|
||||
containers:
|
||||
- resources:
|
||||
{{- toYaml .Values.agentk8sglue.podTemplate.resources | nindent 10 }}
|
||||
env:
|
||||
- name: CLEARML_API_HOST
|
||||
value: "http://{{ include "clearml.fullname" . }}-apiserver:{{ .Values.apiserver.service.port }}"
|
||||
- name: CLEARML_WEB_HOST
|
||||
value: "http://{{ include "clearml.fullname" . }}-webserver"
|
||||
- name: CLEARML_FILES_HOST
|
||||
value: "http://{{ include "clearml.fullname" . }}-fileserver:{{ .Values.fileserver.service.port }}"
|
||||
- name: CLEARML_API_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: clearml-conf
|
||||
key: apiserver_key
|
||||
- name: CLEARML_API_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: clearml-conf
|
||||
key: apiserver_secret
|
||||
tolerations:
|
||||
{{- toYaml .Values.agentk8sglue.podTemplate.tolerations | nindent 8 }}
|
||||
nodeSelector:
|
||||
{{- toYaml .Values.agentk8sglue.podTemplate.nodeSelector | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
13
charts/clearml/templates/configmap-apiserver.yaml
Normal file
13
charts/clearml/templates/configmap-apiserver.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
{{- if .Values.apiserver.additionalConfigs -}}
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: "{{ include "clearml.fullname" . }}-apiserver-configmap"
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- range $key, $val := .Values.apiserver.additionalConfigs }}
|
||||
{{ $key }}: |
|
||||
{{- $val | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end -}}
|
||||
@@ -1,5 +1,6 @@
|
||||
{{- range $key, $value := .Values.agentGroups }}
|
||||
{{- with $value }}
|
||||
{{- if .enabled }}
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
@@ -16,8 +17,9 @@ spec:
|
||||
{{- include "clearml.selectorLabelsAgent" $ | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .podAnnotations }}
|
||||
annotations:
|
||||
checksum/secret: {{ include (print $.Template.BasePath "/secrets.yaml") $ | sha256sum }}
|
||||
{{- with .podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
@@ -92,7 +94,7 @@ spec:
|
||||
apt-get install -y curl python3-pip git;
|
||||
python3 -m pip install -U pip ;
|
||||
python3 -m pip install clearml-agent{{ .agentVersion}} ;
|
||||
CLEARML_AGENT_K8S_HOST_MOUNT=/root/.clearml:/root/.clearml clearml-agent daemon --queue {{ .queues}}"
|
||||
CLEARML_AGENT_K8S_HOST_MOUNT=/root/.clearml:/root/.clearml clearml-agent daemon --foreground --queue {{ .queues}}"
|
||||
{{ if .clearmlConfig }}
|
||||
volumeMounts:
|
||||
- name: agent-clearml-conf-volume
|
||||
@@ -114,3 +116,4 @@ spec:
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
62
charts/clearml/templates/deployment-agentk8s.yaml
Normal file
62
charts/clearml/templates/deployment-agentk8s.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
{{- if .Values.agentk8sglue.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: "{{ include "clearml.fullname" . }}-k8sagent"
|
||||
labels:
|
||||
app: k8sagent
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: k8sagent
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: k8sagent
|
||||
spec:
|
||||
containers:
|
||||
- name: k8s-glue-container
|
||||
image: "{{ .Values.agentk8sglue.image.repository }}:{{ .Values.agentk8sglue.image.tag }}"
|
||||
imagePullPolicy: Always
|
||||
command: ["/bin/bash", "-c", "export PATH=$PATH:$HOME/bin; source /root/.bashrc && /root/entrypoint.sh"]
|
||||
volumeMounts:
|
||||
- name: k8sagent-pod-template
|
||||
mountPath: /root/template
|
||||
env:
|
||||
- name: CLEARML_API_HOST
|
||||
value: "http://{{ include "clearml.fullname" . }}-apiserver:{{ .Values.apiserver.service.port }}"
|
||||
- name: CLEARML_WEB_HOST
|
||||
value: "http://{{ include "clearml.fullname" . }}-webserver"
|
||||
- name: CLEARML_FILES_HOST
|
||||
value: "http://{{ include "clearml.fullname" . }}-fileserver:{{ .Values.fileserver.service.port }}"
|
||||
- name: K8S_GLUE_MAX_PODS
|
||||
value: "{{.Values.agentk8sglue.maxPods}}"
|
||||
- name: K8S_GLUE_QUEUE
|
||||
value: "{{.Values.agentk8sglue.queue}}"
|
||||
- name: K8S_GLUE_EXTRA_ARGS
|
||||
value: "--template-yaml /root/template/template.yaml"
|
||||
- name: CLEARML_API_ACCESS_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: clearml-conf
|
||||
key: apiserver_key
|
||||
- name: CLEARML_API_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: clearml-conf
|
||||
key: apiserver_secret
|
||||
- name: CLEARML_WORKER_ID
|
||||
value: "{{.Values.agentk8sglue.id}}"
|
||||
- name: CLEARML_AGENT_UPDATE_REPO
|
||||
value: ""
|
||||
- name: FORCE_CLEARML_AGENT_REPO
|
||||
value: ""
|
||||
- name: CLEARML_DOCKER_IMAGE
|
||||
value: "{{.Values.agentk8sglue.defaultDockerImage}}"
|
||||
volumes:
|
||||
- name: k8sagent-pod-template
|
||||
configMap:
|
||||
name: k8sagent-pod-template
|
||||
{{- end }}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{{- if .Values.agentservices.enabled }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
@@ -11,8 +12,9 @@ spec:
|
||||
{{- include "clearml.selectorLabelsAgentServices" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.agentservices.podAnnotations }}
|
||||
annotations:
|
||||
checksum/secret: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
|
||||
{{- with .Values.agentservices.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
@@ -98,3 +100,4 @@ spec:
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -11,19 +11,14 @@ spec:
|
||||
{{- include "clearml.selectorLabelsApiServer" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.apiserver.podAnnotations }}
|
||||
annotations:
|
||||
checksum/secret: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
|
||||
{{- with .Values.apiserver.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "clearml.selectorLabelsApiServer" . | nindent 8 }}
|
||||
spec:
|
||||
{{- if .Values.apiserver.storage.enableConfigVolume }}
|
||||
volumes:
|
||||
- name: apiserver-config
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ include "clearml.fullname" . }}-apiserver-config
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.apiserver.image.repository }}:{{ .Values.apiserver.image.tag | default .Chart.AppVersion }}"
|
||||
@@ -34,23 +29,49 @@ spec:
|
||||
protocol: TCP
|
||||
env:
|
||||
- name: CLEARML_ELASTIC_SERVICE_HOST
|
||||
{{- if .Values.elasticsearch.enabled }}
|
||||
value: "{{ .Values.elasticsearch.clusterName }}-master"
|
||||
{{- else }}
|
||||
value: "{{ .Values.externalServices.elasticsearchHost }}"
|
||||
{{- end }}
|
||||
- name: CLEARML_ELASTIC_SERVICE_PORT
|
||||
{{- if .Values.elasticsearch.enabled }}
|
||||
value: "{{ .Values.elasticsearch.httpPort }}"
|
||||
{{- else }}
|
||||
value: "{{ .Values.externalServices.elasticsearchPort }}"
|
||||
{{- end }}
|
||||
- name: CLEARML_MONGODB_SERVICE_HOST
|
||||
{{- if .Values.mongodb.enabled }}
|
||||
value: "{{ tpl .Values.mongodb.service.name . }}"
|
||||
{{- else }}
|
||||
value: "{{ .Values.externalServices.mongodbHost }}"
|
||||
{{- end }}
|
||||
- name: CLEARML_MONGODB_SERVICE_PORT
|
||||
{{- if .Values.mongodb.enabled }}
|
||||
value: "{{ .Values.mongodb.service.port }}"
|
||||
{{- else }}
|
||||
value: "{{ .Values.externalServices.mongodbPort }}"
|
||||
{{- end }}
|
||||
- name: CLEARML_REDIS_SERVICE_HOST
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "{{ tpl .Values.redis.master.name . }}"
|
||||
{{- else }}
|
||||
value: "{{ .Values.externalServices.redisHost }}"
|
||||
{{- end }}
|
||||
- name: CLEARML_REDIS_SERVICE_PORT
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "{{ .Values.redis.master.port }}"
|
||||
{{- else }}
|
||||
value: "{{ .Values.externalServices.redisPort }}"
|
||||
{{- end }}
|
||||
- name: CLEARML__APISERVER__PRE_POPULATE__ENABLED
|
||||
value: "{{ .Values.apiserver.prepopulateEnabled }}"
|
||||
- name: CLEARML__APISERVER__PRE_POPULATE__ZIP_FILES
|
||||
value: "{{ .Values.apiserver.prepopulateZipFiles }}"
|
||||
- name: CLEARML_SERVER_DEPLOYMENT_TYPE
|
||||
value: "helm-cloud"
|
||||
- name: CLEARML__APISERVER__AUTH__COOKIES__MAX_AGE
|
||||
value: "{{ .Values.apiserver.authCookiesMaxAge }}"
|
||||
- name: CLEARML_CONFIG_DIR
|
||||
value: /opt/clearml/config
|
||||
- name: CLEARML__APISERVER__DEFAULT_COMPANY
|
||||
@@ -101,13 +122,19 @@ spec:
|
||||
httpGet:
|
||||
path: /debug.ping
|
||||
port: 8008
|
||||
{{- if .Values.apiserver.storage.enableConfigVolume }}
|
||||
{{- if .Values.apiserver.additionalConfigs }}
|
||||
volumeMounts:
|
||||
- name: apiserver-config
|
||||
mountPath: /opt/clearml/config
|
||||
{{- end }}
|
||||
resources:
|
||||
{{- toYaml .Values.apiserver.resources | nindent 12 }}
|
||||
{{- if .Values.apiserver.additionalConfigs }}
|
||||
volumes:
|
||||
- name: apiserver-config
|
||||
configMap:
|
||||
name: "{{ include "clearml.fullname" . }}-apiserver-configmap"
|
||||
{{- end }}
|
||||
{{- with .Values.apiserver.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
|
||||
@@ -1,33 +1,45 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "clearml.fullname" . -}}
|
||||
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}-api
|
||||
name: {{ include "clearml.fullname" . }}-api
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- $annotations := .Values.ingress.annotations }}
|
||||
{{- if .Values.ingress.api.annotations }}
|
||||
{{- $annotations = mergeOverwrite $annotations .Values.ingress.api.annotations }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml $annotations | nindent 4 }}
|
||||
|
||||
spec:
|
||||
{{- if .Values.ingress.tls.secretName }}
|
||||
{{- if .Values.ingress.api.tlsSecretName }}
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Values.ingress.hostPrefixApi }}{{ .Values.ingress.host }}"
|
||||
secretName: {{ .Values.ingress.tls.secretName }}
|
||||
- {{ .Values.ingress.api.hostName }}
|
||||
secretName: {{ .Values.ingress.api.tlsSecretName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: "{{ .Values.ingress.hostPrefixApi }}{{ .Values.ingress.host }}"
|
||||
http:
|
||||
paths:
|
||||
- path: "/"
|
||||
pathType: Prefix
|
||||
backend:
|
||||
serviceName: {{ include "clearml.fullname" . }}-apiserver
|
||||
servicePort: {{ .Values.apiserver.service.port }}
|
||||
- host: {{ .Values.ingress.api.hostName }}
|
||||
http:
|
||||
paths:
|
||||
- path: "/"
|
||||
{{ if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "clearml.fullname" . }}-apiserver
|
||||
port:
|
||||
number: {{ .Values.apiserver.service.port }}
|
||||
{{ else }}
|
||||
backend:
|
||||
serviceName: {{ include "clearml.fullname" . }}-apiserver
|
||||
servicePort: {{ .Values.apiserver.service.port }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,33 +1,44 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "clearml.fullname" . -}}
|
||||
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}-app
|
||||
name: {{ include "clearml.fullname" . }}-app
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- $annotations := .Values.ingress.annotations }}
|
||||
{{- if .Values.ingress.app.annotations }}
|
||||
{{- $annotations = mergeOverwrite $annotations .Values.ingress.app.annotations }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml $annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls.secretName }}
|
||||
{{- if .Values.ingress.app.tlsSecretName }}
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Values.ingress.hostPrefixApp }}{{ .Values.ingress.host }}"
|
||||
secretName: {{ .Values.ingress.tls.secretName }}
|
||||
- {{ .Values.ingress.app.hostName }}
|
||||
secretName: {{ .Values.ingress.app.tlsSecretName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: "{{ .Values.ingress.hostPrefixApp }}{{ .Values.ingress.host }}"
|
||||
http:
|
||||
paths:
|
||||
- path: "/"
|
||||
pathType: Prefix
|
||||
backend:
|
||||
serviceName: {{ include "clearml.fullname" . }}-webserver
|
||||
servicePort: {{ .Values.webserver.service.port }}
|
||||
- host: {{ .Values.ingress.app.hostName }}
|
||||
http:
|
||||
paths:
|
||||
- path: "/"
|
||||
{{ if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "clearml.fullname" . }}-webserver
|
||||
port:
|
||||
number: {{ .Values.webserver.service.port }}
|
||||
{{ else }}
|
||||
backend:
|
||||
serviceName: {{ include "clearml.fullname" . }}-webserver
|
||||
servicePort: {{ .Values.webserver.service.port }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,33 +1,44 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "clearml.fullname" . -}}
|
||||
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}-files
|
||||
name: {{ include "clearml.fullname" . }}-files
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- $annotations := .Values.ingress.annotations }}
|
||||
{{- if .Values.ingress.files.annotations }}
|
||||
{{- $annotations = mergeOverwrite $annotations .Values.ingress.files.annotations }}
|
||||
{{- end }}
|
||||
annotations:
|
||||
{{- toYaml $annotations | nindent 4 }}
|
||||
spec:
|
||||
{{- if .Values.ingress.tls.secretName }}
|
||||
{{- if .Values.ingress.files.tlsSecretName }}
|
||||
tls:
|
||||
- hosts:
|
||||
- "{{ .Values.ingress.hostPrefixFiles }}{{ .Values.ingress.host }}"
|
||||
secretName: {{ .Values.ingress.tls.secretName }}
|
||||
- {{ .Values.ingress.files.hostName }}
|
||||
secretName: {{ .Values.ingress.files.tlsSecretName }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: "{{ .Values.ingress.hostPrefixFiles }}{{ .Values.ingress.host }}"
|
||||
http:
|
||||
paths:
|
||||
- path: "/"
|
||||
pathType: Prefix
|
||||
backend:
|
||||
serviceName: {{ include "clearml.fullname" . }}-fileserver
|
||||
servicePort: {{ .Values.fileserver.service.port }}
|
||||
- host: {{ .Values.ingress.files.hostName }}
|
||||
http:
|
||||
paths:
|
||||
- path: "/"
|
||||
{{ if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion }}
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "clearml.fullname" . }}-fileserver
|
||||
port:
|
||||
number: {{ .Values.fileserver.service.port }}
|
||||
{{ else }}
|
||||
backend:
|
||||
serviceName: {{ include "clearml.fullname" . }}-fileserver
|
||||
servicePort: {{ .Values.fileserver.service.port }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
{{- if .Values.agentservices.enabled }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
@@ -11,3 +12,4 @@ spec:
|
||||
requests:
|
||||
storage: {{ .Values.agentservices.storage.data.size | quote }}
|
||||
storageClassName: {{ .Values.agentservices.storage.data.class | quote }}
|
||||
{{- end }}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
{{- if .Values.apiserver.storage.enableConfigVolume }}
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: {{ include "clearml.fullname" . }}-apiserver-config
|
||||
labels:
|
||||
{{- include "clearml.labels" . | nindent 4 }}
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.apiserver.storage.config.size | quote }}
|
||||
storageClassName: {{ .Values.apiserver.storage.config.class | quote }}
|
||||
{{- end }}
|
||||
25
charts/clearml/templates/rbac-agentk8s.yaml
Normal file
25
charts/clearml/templates/rbac-agentk8s.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
{{- if .Values.agentk8sglue.enabled }}
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: k8sagent-pods-access
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs: ["get", "list", "watch", "create", "patch"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
name: k8sagent-pods-access
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: default
|
||||
namespace: {{ .Release.namespace }}
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: k8sagent-pods-access
|
||||
{{- end }}
|
||||
@@ -2,10 +2,10 @@ apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: clearml-conf
|
||||
data:
|
||||
apiserver_key: NTQ0MkYzNDQzTUpNT1JXWkEzWkg=
|
||||
apiserver_secret: QnhhcElSbzlaSU5pOHgyNUNSeHo4V2RtcjJwUWp6dVdWQjRQTkFTWnFDdFR5V2dXVlE=
|
||||
http_session: OVR3MjBSYmhKMWJMQmlIRU9XWHZocGxLR1ViVGdMekF0d0ZOMm9MUXZXd1MwdVJwRDU=
|
||||
auth_token: MVNDZjBvdjNObTU0NFRkMm9aMGdYU3JzTng1WGhNV2RWbEt6MXRPZ2N4MTU4YkQ1UlY=
|
||||
tests_user_key: RU5QMzlFUU00U0xBQ0dENUZYQjc=
|
||||
tests_user_secret: bFBjbTBpbWJjQlo4bXdnTzd0cGFkdXRpUzNnbkpEMDV4OWo3YWZ3WFBTMzVJS2JwaVE=
|
||||
stringData:
|
||||
apiserver_key: {{ .Values.secret.credentials.apiserver.accessKey }}
|
||||
apiserver_secret: {{ .Values.secret.credentials.apiserver.secretKey }}
|
||||
http_session: {{ .Values.secret.httpSession }}
|
||||
auth_token: {{ .Values.secret.authToken }}
|
||||
tests_user_key: {{ .Values.secret.credentials.tests.accessKey }}
|
||||
tests_user_secret: {{ .Values.secret.credentials.tests.secretKey }}
|
||||
|
||||
@@ -9,7 +9,9 @@ spec:
|
||||
ports:
|
||||
- port: {{ .Values.apiserver.service.port }}
|
||||
targetPort: {{ .Values.apiserver.service.port }}
|
||||
nodePort: 30008
|
||||
{{- if eq .Values.apiserver.service.type "NodePort" }}
|
||||
nodePort: {{ .Values.apiserver.service.nodePort }}
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
selector:
|
||||
{{- include "clearml.selectorLabelsApiServer" . | nindent 4 }}
|
||||
|
||||
@@ -9,7 +9,9 @@ spec:
|
||||
ports:
|
||||
- port: {{ .Values.fileserver.service.port }}
|
||||
targetPort: {{ .Values.fileserver.service.port }}
|
||||
nodePort: 30081
|
||||
{{- if eq .Values.fileserver.service.type "NodePort" }}
|
||||
nodePort: {{ .Values.fileserver.service.nodePort }}
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
selector:
|
||||
{{- include "clearml.selectorLabelsFileServer" . | nindent 4 }}
|
||||
|
||||
@@ -9,7 +9,9 @@ spec:
|
||||
ports:
|
||||
- port: {{ .Values.webserver.service.port }}
|
||||
targetPort: {{ .Values.webserver.service.port }}
|
||||
nodePort: 30080
|
||||
{{- if eq .Values.webserver.service.type "NodePort" }}
|
||||
nodePort: {{ .Values.webserver.service.nodePort }}
|
||||
{{- end }}
|
||||
protocol: TCP
|
||||
selector:
|
||||
{{- include "clearml.selectorLabelsWebServer" . | nindent 4 }}
|
||||
|
||||
@@ -4,12 +4,35 @@ ingress:
|
||||
enabled: false
|
||||
name: clearml-server-ingress
|
||||
annotations: {}
|
||||
host: ""
|
||||
hostPrefixApp: "app."
|
||||
hostPrefixApi: "api."
|
||||
hostPrefixFiles: "files."
|
||||
tls:
|
||||
secretName: ""
|
||||
app:
|
||||
hostName: "app.clearml.127-0-0-1.nip.io"
|
||||
tlsSecretName: ""
|
||||
annotations: {}
|
||||
api:
|
||||
hostName: "api.clearml.127-0-0-1.nip.io"
|
||||
tlsSecretName: ""
|
||||
annotations: {}
|
||||
files:
|
||||
hostName: "files.clearml.127-0-0-1.nip.io"
|
||||
tlsSecretName: ""
|
||||
annotations: {}
|
||||
|
||||
secret:
|
||||
# -- Set for http_session field
|
||||
httpSession: "9Tw20RbhJ1bLBiHEOWXvhplKGUbTgLzAtwFN2oLQvWwS0uRpD5"
|
||||
# -- Set for auth_token field
|
||||
authToken: "1SCf0ov3Nm544Td2oZ0gXSrsNx5XhMWdVlKz1tOgcx158bD5RV"
|
||||
credentials:
|
||||
apiserver:
|
||||
# -- Set for apiserver_key field
|
||||
accessKey: "5442F3443MJMORWZA3ZH"
|
||||
# -- Set for apiserver_secret field
|
||||
secretKey: "BxapIRo9ZINi8x25CRxz8Wdmr2pQjzuWVB4PNASZqCtTyWgWVQ"
|
||||
tests:
|
||||
# -- Set for tests_user_key field
|
||||
accessKey: "ENP39EQM4SLACGD5FXB7"
|
||||
# -- Set for tests_user_secret field
|
||||
secretKey: "lPcm0imbcBZ8mwgO7tpadutiS3gnJD05x9j7afwXPS35IKbpiQ"
|
||||
|
||||
apiserver:
|
||||
prepopulateEnabled: "true"
|
||||
@@ -17,9 +40,16 @@ apiserver:
|
||||
prepopulateArtifactsPath: "/mnt/fileserver"
|
||||
configDir: /opt/clearml/config
|
||||
|
||||
# -- Amount of seconds the authorization cookie will last in user browser
|
||||
authCookiesMaxAge: 864000
|
||||
|
||||
service:
|
||||
# -- This will set to service's spec.type field
|
||||
type: NodePort
|
||||
port: 8008
|
||||
# -- 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
|
||||
nodePort: 30008
|
||||
|
||||
livenessDelay: 60
|
||||
readinessDelay: 60
|
||||
@@ -29,7 +59,7 @@ apiserver:
|
||||
image:
|
||||
repository: "allegroai/clearml"
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.1.1"
|
||||
tag: "1.2.0"
|
||||
|
||||
extraEnvs: []
|
||||
|
||||
@@ -53,24 +83,32 @@ apiserver:
|
||||
|
||||
affinity: {}
|
||||
|
||||
# Optional: used in pvc-apiserver containing optional server configuration files
|
||||
storage:
|
||||
enableConfigVolume: false
|
||||
config:
|
||||
class: "standard"
|
||||
size: 1Gi
|
||||
additionalConfigs: {}
|
||||
# services.conf: |
|
||||
# tasks {
|
||||
# non_responsive_tasks_watchdog {
|
||||
# # In-progress tasks that haven't been updated for at least 'value' seconds will be stopped by the watchdog
|
||||
# threshold_sec: 21000
|
||||
# # Watchdog will sleep for this number of seconds after each cycle
|
||||
# watch_interval_sec: 900
|
||||
# }
|
||||
# }
|
||||
|
||||
fileserver:
|
||||
service:
|
||||
# -- This will set to service's spec.type field
|
||||
type: NodePort
|
||||
port: 8081
|
||||
# -- 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
|
||||
nodePort: 30081
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: "allegroai/clearml"
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.1.1"
|
||||
tag: "1.2.0"
|
||||
|
||||
extraEnvs: []
|
||||
|
||||
@@ -103,15 +141,19 @@ webserver:
|
||||
extraEnvs: []
|
||||
|
||||
service:
|
||||
# -- This will set to service's spec.type field
|
||||
type: NodePort
|
||||
port: 80
|
||||
# -- 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
|
||||
nodePort: 30080
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: "allegroai/clearml"
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "1.1.1"
|
||||
tag: "1.2.0"
|
||||
|
||||
podAnnotations: {}
|
||||
|
||||
@@ -134,6 +176,7 @@ webserver:
|
||||
affinity: {}
|
||||
|
||||
agentservices:
|
||||
enabled: false
|
||||
clearmlHostIp: null
|
||||
agentVersion: ""
|
||||
clearmlWebHost: null
|
||||
@@ -184,6 +227,7 @@ agentservices:
|
||||
|
||||
agentGroups:
|
||||
agent-group-cpu:
|
||||
enabled: true
|
||||
name: agent-group-cpu
|
||||
replicaCount: 1
|
||||
updateStrategy: Recreate
|
||||
@@ -217,6 +261,7 @@ agentGroups:
|
||||
affinity: {}
|
||||
|
||||
agent-group-gpu:
|
||||
enabled: true
|
||||
name: agent-group-gpu
|
||||
replicaCount: 0
|
||||
updateStrategy: Recreate
|
||||
@@ -249,6 +294,44 @@ agentGroups:
|
||||
|
||||
affinity: {}
|
||||
|
||||
# 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:
|
||||
enabled: false
|
||||
image:
|
||||
repository: "allegroai/clearml-agent-k8s"
|
||||
tag: "aws-latest-1.21"
|
||||
maxPods: 10
|
||||
defaultDockerImage: nvidia/cuda:11.3.1-cudnn8-runtime-ubuntu18.04 # default docker image that is spawned as new pod
|
||||
queue: aws-instances # create this queue manually in the UI first for it to work
|
||||
id: k8s-agent
|
||||
podTemplate:
|
||||
resources: {}
|
||||
# limits:
|
||||
# nvidia.com/gpu: 1
|
||||
tolerations: {}
|
||||
# - key: "nvidia.com/gpu"
|
||||
# operator: Exists
|
||||
# effect: "NoSchedule"
|
||||
nodeSelector: {}
|
||||
# fleet: gpu-nodes
|
||||
|
||||
|
||||
externalServices:
|
||||
# -- Existing ElasticSearch Hostname to use if elasticsearch.enabled is false
|
||||
elasticsearchHost: ""
|
||||
# -- Existing ElasticSearch Port to use if elasticsearch.enabled is false
|
||||
elasticsearchPort: 9200
|
||||
# -- Existing MongoDB Hostname to use if elasticsearch.enabled is false
|
||||
mongodbHost: ""
|
||||
# -- Existing MongoDB Port to use if elasticsearch.enabled is false
|
||||
mongodbPort: 27017
|
||||
# -- Existing Redis Hostname to use if elasticsearch.enabled is false
|
||||
redisHost: ""
|
||||
# -- Existing Redis Port to use if elasticsearch.enabled is false
|
||||
redisPort: 6379
|
||||
|
||||
redis: # configuration from https://github.com/bitnami/charts/blob/master/bitnami/redis/values.yaml
|
||||
enabled: true
|
||||
usePassword: false
|
||||
@@ -281,7 +364,7 @@ mongodb: # configuration from https://github.com/bitnami/charts/blob/master/bit
|
||||
port: 27017
|
||||
portName: mongo-service
|
||||
|
||||
elasticsearch: # configuration from https://github.com/elastic/helm-charts/blob/7.10/elasticsearch/values.yaml
|
||||
elasticsearch: # configuration from https://github.com/elastic/helm-charts/blob/7.16/elasticsearch/values.yaml
|
||||
enabled: true
|
||||
httpPort: 9200
|
||||
roles:
|
||||
|
||||
Reference in New Issue
Block a user