Various fixes after major releases (#123)

* Fixed: env vars

* Changed: version bump

* Fixed: config path

* Fixed: queues generation

* Fixed: typo

* Fixed: no default queue set

* Fixed: enterprise only sec creds

* Fixed: typo
This commit is contained in:
Valeriano Manassero 2023-01-05 11:52:53 +01:00 committed by GitHub
parent 622ec331ac
commit 3b689bf051
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 46 additions and 44 deletions

View File

@ -2,7 +2,7 @@ apiVersion: v2
name: clearml-agent name: clearml-agent
description: MLOps platform description: MLOps platform
type: application type: application
version: "3.1.0" version: "3.1.1"
appVersion: "1.24" appVersion: "1.24"
kubeVersion: ">= 1.19.0-0 < 1.26.0-0" kubeVersion: ">= 1.19.0-0 < 1.26.0-0"
home: https://clear.ml home: https://clear.ml

View File

@ -1,6 +1,6 @@
# ClearML Kubernetes Agent # ClearML Kubernetes Agent
![Version: 3.1.0](https://img.shields.io/badge/Version-3.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.24](https://img.shields.io/badge/AppVersion-1.24-informational?style=flat-square) ![Version: 3.1.1](https://img.shields.io/badge/Version-3.1.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.24](https://img.shields.io/badge/AppVersion-1.24-informational?style=flat-square)
MLOps platform MLOps platform
@ -69,7 +69,7 @@ Kubernetes: `>= 1.19.0-0 < 1.26.0-0`
| clearml.clearmlConfig | string | `"sdk {\n}"` | ClearML configuration file | | clearml.clearmlConfig | string | `"sdk {\n}"` | ClearML configuration file |
| clearml.existingAgentk8sglueSecret | string | `""` | If this is set, chart will not generate a secret but will use what is defined here | | clearml.existingAgentk8sglueSecret | string | `""` | If this is set, chart will not generate a secret but will use what is defined here |
| clearml.existingClearmlConfigSecret | string | `""` | If this is set, chart will not generate a secret but will use what is defined here | | clearml.existingClearmlConfigSecret | string | `""` | If this is set, chart will not generate a secret but will use what is defined here |
| enterpriseFeatures | object | `{"applyVaultEnvVars":true,"enabled":false,"maxPods":10,"monitoredResources":{"maxResources":0,"maxResourcesFieldName":"resources|limits|nvidia.com/gpu","minResourcesFieldName":"resources|limits|nvidia.com/gpu"},"queues":{"default":{"templateOverrides":{}}},"serviceAccountClusterAccess":false,"useOwnerToken":true}` | Enterprise features (work only with an Enterprise license) | | enterpriseFeatures | object | `{"applyVaultEnvVars":true,"enabled":false,"maxPods":10,"monitoredResources":{"maxResources":0,"maxResourcesFieldName":"resources|limits|nvidia.com/gpu","minResourcesFieldName":"resources|limits|nvidia.com/gpu"},"queues":null,"serviceAccountClusterAccess":false,"useOwnerToken":true}` | Enterprise features (work only with an Enterprise license) |
| enterpriseFeatures.applyVaultEnvVars | bool | `true` | push env vars from Clear.ML Vault to task pods | | enterpriseFeatures.applyVaultEnvVars | bool | `true` | push env vars from Clear.ML Vault to task pods |
| enterpriseFeatures.enabled | bool | `false` | Enable/Disable Enterprise features | | enterpriseFeatures.enabled | bool | `false` | Enable/Disable Enterprise features |
| enterpriseFeatures.maxPods | int | `10` | maximum concurrent consume ClearML Task pod | | enterpriseFeatures.maxPods | int | `10` | maximum concurrent consume ClearML Task pod |
@ -77,9 +77,7 @@ Kubernetes: `>= 1.19.0-0 < 1.26.0-0`
| enterpriseFeatures.monitoredResources.maxResources | int | `0` | Maximum resources counter | | enterpriseFeatures.monitoredResources.maxResources | int | `0` | Maximum resources counter |
| enterpriseFeatures.monitoredResources.maxResourcesFieldName | string | `"resources|limits|nvidia.com/gpu"` | Field name used by Agent to count maximum resources | | enterpriseFeatures.monitoredResources.maxResourcesFieldName | string | `"resources|limits|nvidia.com/gpu"` | Field name used by Agent to count maximum resources |
| enterpriseFeatures.monitoredResources.minResourcesFieldName | string | `"resources|limits|nvidia.com/gpu"` | Field name used by Agent to count minimum resources | | enterpriseFeatures.monitoredResources.minResourcesFieldName | string | `"resources|limits|nvidia.com/gpu"` | Field name used by Agent to count minimum resources |
| enterpriseFeatures.queues | object | `{"default":{"templateOverrides":{}}}` | ClearML queues and related template OVERRIDES used this agent will consume | | enterpriseFeatures.queues | string | `nil` | ClearML queues and related template OVERRIDES used this agent will consume |
| enterpriseFeatures.queues.default | object | `{"templateOverrides":{}}` | name of the queue will be used for this template |
| enterpriseFeatures.queues.default.templateOverrides | object | `{}` | overrides of the base template for this queue (must be declared even if empty!) |
| enterpriseFeatures.serviceAccountClusterAccess | bool | `false` | service account access every namespace flag | | enterpriseFeatures.serviceAccountClusterAccess | bool | `false` | service account access every namespace flag |
| enterpriseFeatures.useOwnerToken | bool | `true` | Agent must use owner Token | | enterpriseFeatures.useOwnerToken | bool | `true` | Agent must use owner Token |
| imageCredentials | object | `{"email":"someone@host.com","enabled":false,"existingSecret":"","password":"pwd","registry":"docker.io","username":"someone"}` | Private image registry configuration | | imageCredentials | object | `{"email":"someone@host.com","enabled":false,"existingSecret":"","password":"pwd","registry":"docker.io","username":"someone"}` | Private image registry configuration |

View File

@ -78,7 +78,7 @@ Create a string composed by queue names
*/}} */}}
{{- define "agentk8sglue.queues" -}} {{- define "agentk8sglue.queues" -}}
{{- $list := list }} {{- $list := list }}
{{- range $key, $value := .Values.agentk8sglue.queues }} {{- range $key, $value := .Values.enterpriseFeatures.queues }}
{{- $list = append $list (printf "%s" $key) }} {{- $list = append $list (printf "%s" $key) }}
{{- end }} {{- end }}
{{- join " " $list }} {{- join " " $list }}

View File

@ -5,7 +5,7 @@ metadata:
data: data:
{{- if .Values.enterpriseFeatures.enabled }} {{- if .Values.enterpriseFeatures.enabled }}
template.yaml: | template.yaml: |
{{- range $key, $value := $.Values.agentk8sglue.queues }} {{- range $key, $value := $.Values.enterpriseFeatures.queues }}
{{ $key }}: {{ $key }}:
apiVersion: v1 apiVersion: v1
metadata: metadata:
@ -123,19 +123,19 @@ data:
- name: CLEARML_API_ACCESS_KEY - name: CLEARML_API_ACCESS_KEY
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
{{- if .Values.clearml.existingAgentk8sglueSecret }} {{- if $.Values.clearml.existingAgentk8sglueSecret }}
name: {{ .Values.clearml.existingAgentk8sglueSecret }} name: {{ $.Values.clearml.existingAgentk8sglueSecret }}
{{- else }} {{- else }}
name: {{ include "clearml.name" . }}-ac name: {{ include "clearml.name" $ }}-ac
{{- end }} {{- end }}
key: agentk8sglue_key key: agentk8sglue_key
- name: CLEARML_API_SECRET_KEY - name: CLEARML_API_SECRET_KEY
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
{{- if .Values.clearml.existingAgentk8sglueSecret }} {{- if $.Values.clearml.existingAgentk8sglueSecret }}
name: {{ .Values.clearml.existingAgentk8sglueSecret }} name: {{ $.Values.clearml.existingAgentk8sglueSecret }}
{{- else }} {{- else }}
name: {{ include "clearml.name" . }}-ac name: {{ include "clearml.name" $ }}-ac
{{- end }} {{- end }}
key: agentk8sglue_secret key: agentk8sglue_secret
{{- end }} {{- end }}
@ -278,6 +278,6 @@ data:
nodePort: {{ add $.Values.sessions.startingPort . }} nodePort: {{ add $.Values.sessions.startingPort . }}
{{- end }} {{- end }}
selector: selector:
ai-allegro-agent-serial: pod-{{ . }} ai.allegro.agent.serial: pod-{{ . }}
{{- end }} {{- end }}
{{- end }} {{- end }}

View File

@ -105,7 +105,7 @@ spec:
--max-pods {{.Values.enterpriseFeatures.maxPods}}{{ if .Values.enterpriseFeatures.enabled }}{{ if .Values.enterpriseFeatures.useOwnerToken }} --use-owner-token{{ end }}{{ end }}" --max-pods {{.Values.enterpriseFeatures.maxPods}}{{ if .Values.enterpriseFeatures.enabled }}{{ if .Values.enterpriseFeatures.useOwnerToken }} --use-owner-token{{ end }}{{ end }}"
{{- end }} {{- end }}
- name: CLEARML_K8S_GLUE_LIMIT_POD_LABEL - name: CLEARML_K8S_GLUE_LIMIT_POD_LABEL
value: "ai-allegro-agent-serial=pod-{pod_number}" value: "ai.allegro.agent.serial=pod-{pod_number}"
- name: CLEARML_K8S_SECRETS_LIST_FILE - name: CLEARML_K8S_SECRETS_LIST_FILE
value: /root/template/secrets.yaml value: /root/template/secrets.yaml
- name: K8S_DEFAULT_NAMESPACE - name: K8S_DEFAULT_NAMESPACE
@ -157,7 +157,7 @@ spec:
- name: "CLEARML_K8S_GLUE_POD_MIN_RES_FIELD" - name: "CLEARML_K8S_GLUE_POD_MIN_RES_FIELD"
value: {{.Values.enterpriseFeatures.monitoredResources.minResourcesFieldName}} value: {{.Values.enterpriseFeatures.monitoredResources.minResourcesFieldName}}
- name: "CLEARML_K8S_GLUE_MAX_RESOURCES" - name: "CLEARML_K8S_GLUE_MAX_RESOURCES"
value: "{{.Values.agentk8sglue.monitoredResources.maxResources}}" value: "{{.Values.enterpriseFeatures.monitoredResources.maxResources}}"
- name: "CLEARML_K8S_GLUE_POD_MAX_RES_FIELD" - name: "CLEARML_K8S_GLUE_POD_MAX_RES_FIELD"
value: {{.Values.enterpriseFeatures.monitoredResources.maxResourcesFieldName}} value: {{.Values.enterpriseFeatures.monitoredResources.maxResourcesFieldName}}
{{- else }} {{- else }}

View File

@ -219,9 +219,9 @@ enterpriseFeatures:
# -- ClearML queues and related template OVERRIDES used this agent will consume # -- ClearML queues and related template OVERRIDES used this agent will consume
queues: queues:
# -- name of the queue will be used for this template # -- name of the queue will be used for this template
default: # default:
# -- overrides of the base template for this queue (must be declared even if empty!) # -- overrides of the base template for this queue (must be declared even if empty!)
templateOverrides: {} # templateOverrides: {}
## -- name of the queue will be used for this template ## -- name of the queue will be used for this template
# default-gpu: # default-gpu:
# # -- overrides of the base template for this queue # # -- overrides of the base template for this queue

View File

@ -2,7 +2,7 @@ apiVersion: v2
name: clearml name: clearml
description: MLOps platform description: MLOps platform
type: application type: application
version: "5.0.0" version: "5.0.1"
appVersion: "1.9.0" appVersion: "1.9.0"
kubeVersion: ">= 1.21.0-0 < 1.26.0-0" kubeVersion: ">= 1.21.0-0 < 1.26.0-0"
home: https://clear.ml home: https://clear.ml

View File

@ -1,6 +1,6 @@
# ClearML Ecosystem for Kubernetes # ClearML Ecosystem for Kubernetes
![Version: 5.0.0](https://img.shields.io/badge/Version-5.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.9.0](https://img.shields.io/badge/AppVersion-1.9.0-informational?style=flat-square) ![Version: 5.0.1](https://img.shields.io/badge/Version-5.0.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.9.0](https://img.shields.io/badge/AppVersion-1.9.0-informational?style=flat-square)
MLOps platform MLOps platform

View File

@ -65,8 +65,8 @@ spec:
- name: CLEARML_REDIS_SERVICE_PORT - name: CLEARML_REDIS_SERVICE_PORT
value: "{{ include "redis.serviceport" . }}" value: "{{ include "redis.serviceport" . }}"
- name: CLEARML_CONFIG_PATH - name: CLEARML_CONFIG_PATH
value: /opt/clearml/config/default value: /opt/clearml/config
- name: CLEARML__apiserver__default_company - name: CLEARML__apiserver__default_company_name
value: "{{ .Values.clearml.defaultCompany }}" value: "{{ .Values.clearml.defaultCompany }}"
{{- if not (eq .Values.clearml.cookieDomain "") }} {{- if not (eq .Values.clearml.cookieDomain "") }}
- name: CLEARML__APISERVER__AUTH__SESSION_AUTH_COOKIE_NAME - name: CLEARML__APISERVER__AUTH__SESSION_AUTH_COOKIE_NAME
@ -84,26 +84,6 @@ spec:
secretKeyRef: secretKeyRef:
name: clearml-conf name: clearml-conf
key: apiserver_secret key: apiserver_secret
- name: CLEARML__secure__credentials__fileserver__user_key
valueFrom:
secretKeyRef:
name: clearml-conf
key: fileserver_key
- name: CLEARML__secure__credentials__fileserver__user_secret
valueFrom:
secretKeyRef:
name: clearml-conf
key: fileserver_secret
- name: CLEARML__secure__applications__agents_credentials__apps_agent__user_key
valueFrom:
secretKeyRef:
name: clearml-conf
key: apps_agent_key
- name: CLEARML__secure__applications__agents_credentials__apps_agent__user_secret
valueFrom:
secretKeyRef:
name: clearml-conf
key: apps_agent_secret
- name: CLEARML__secure__auth__token_secret - name: CLEARML__secure__auth__token_secret
valueFrom: valueFrom:
secretKeyRef: secretKeyRef:
@ -158,8 +138,28 @@ spec:
value: {{ .Values.apiserver.indexShards | quote }} value: {{ .Values.apiserver.indexShards | quote }}
- name: CLEARML__APISERVER__LOG_CALLS - name: CLEARML__APISERVER__LOG_CALLS
value: "false" value: "false"
- name: CLEARML_ENV - name: ALLEGRO_ENV
value: "onprem_k8s" value: "onprem_k8s"
- name: CLEARML__secure__credentials__fileserver__user_key
valueFrom:
secretKeyRef:
name: clearml-conf
key: fileserver_key
- name: CLEARML__secure__credentials__fileserver__user_secret
valueFrom:
secretKeyRef:
name: clearml-conf
key: fileserver_secret
- name: CLEARML__secure__applications__agents_credentials__apps_agent__user_key
valueFrom:
secretKeyRef:
name: clearml-conf
key: apps_agent_key
- name: CLEARML__secure__applications__agents_credentials__apps_agent__user_secret
valueFrom:
secretKeyRef:
name: clearml-conf
key: apps_agent_secret
{{- else }} {{- else }}
- name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_KEY - name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_KEY
valueFrom: valueFrom:
@ -202,7 +202,11 @@ spec:
{{- if .Values.apiserver.additionalConfigs }} {{- if .Values.apiserver.additionalConfigs }}
volumeMounts: volumeMounts:
- name: apiserver-config - name: apiserver-config
{{- if .Values.enterpriseFeatures.enabled }}
mountPath: /opt/clearml/config/default mountPath: /opt/clearml/config/default
{{- else }}
mountPath: /opt/clearml/config
{{- end }}
{{- end }} {{- end }}
resources: resources:
{{- toYaml .Values.apiserver.resources | nindent 12 }} {{- toYaml .Values.apiserver.resources | nindent 12 }}