mirror of
https://github.com/clearml/clearml-helm-charts
synced 2025-04-17 01:31:13 +00:00
* Allowing auth secrets to be optional * Add value secret.existingSecret for clearml chart. * Add value clearml.existingAgentk8sglueSecret for clearml-agent chart. * Add value clearml.existingClearmlConfigSecret for clearml-agent chart. * Split Secret clearml-agent-conf in clearml-agent chart into two Secrets: clearml-agent-conf (agent.conf file) and clearml-agent-k8sglue (environment variables). * Update helm-docs
This commit is contained in:
parent
fdea0c4a3f
commit
19a6785a03
@ -2,7 +2,7 @@ apiVersion: v2
|
|||||||
name: clearml-agent
|
name: clearml-agent
|
||||||
description: MLOps platform
|
description: MLOps platform
|
||||||
type: application
|
type: application
|
||||||
version: "1.2.3"
|
version: "1.3.0"
|
||||||
appVersion: "1.24"
|
appVersion: "1.24"
|
||||||
kubeVersion: ">= 1.19.0-0 < 1.25.0-0"
|
kubeVersion: ">= 1.19.0-0 < 1.25.0-0"
|
||||||
home: https://clear.ml
|
home: https://clear.ml
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# clearml-agent
|
# clearml-agent
|
||||||
|
|
||||||
  
|
  
|
||||||
|
|
||||||
MLOps platform
|
MLOps platform
|
||||||
|
|
||||||
@ -44,10 +44,12 @@ Kubernetes: `>= 1.19.0-0 < 1.25.0-0`
|
|||||||
| agentk8sglue.replicaCount | int | `1` | Glue Agent number of pods |
|
| agentk8sglue.replicaCount | int | `1` | Glue Agent number of pods |
|
||||||
| agentk8sglue.serviceAccountName | string | `"default"` | serviceAccountName for pods spawned to consume ClearML Task |
|
| agentk8sglue.serviceAccountName | string | `"default"` | serviceAccountName for pods spawned to consume ClearML Task |
|
||||||
| agentk8sglue.webServerUrlReference | string | `"https://app.clear.ml"` | Reference to Web server url |
|
| agentk8sglue.webServerUrlReference | string | `"https://app.clear.ml"` | Reference to Web server url |
|
||||||
| clearml | object | `{"agentk8sglueKey":"ACCESSKEY","agentk8sglueSecret":"SECRETKEY","clearmlConfig":"sdk {\n}"}` | ClearMl generic configurations |
|
| clearml | object | `{"agentk8sglueKey":"ACCESSKEY","agentk8sglueSecret":"SECRETKEY","clearmlConfig":"sdk {\n}","existingAgentk8sglueSecret":"","existingClearmlConfigSecret":""}` | ClearMl generic configurations |
|
||||||
| clearml.agentk8sglueKey | string | `"ACCESSKEY"` | Agent k8s Glue basic auth key |
|
| clearml.agentk8sglueKey | string | `"ACCESSKEY"` | Agent k8s Glue basic auth key |
|
||||||
| clearml.agentk8sglueSecret | string | `"SECRETKEY"` | Agent k8s Glue basic auth secret |
|
| clearml.agentk8sglueSecret | string | `"SECRETKEY"` | Agent k8s Glue basic auth secret |
|
||||||
| 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.existingClearmlConfigSecret | string | `""` | If this is set, chart will not generate a secret but will use what is defined here |
|
||||||
| 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 |
|
||||||
| imageCredentials.email | string | `"someone@host.com"` | Email |
|
| imageCredentials.email | string | `"someone@host.com"` | Email |
|
||||||
| imageCredentials.enabled | bool | `false` | Use private authentication mode |
|
| imageCredentials.enabled | bool | `false` | Use private authentication mode |
|
||||||
|
@ -43,12 +43,20 @@ data:
|
|||||||
- name: CLEARML_API_ACCESS_KEY
|
- name: CLEARML_API_ACCESS_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
{{- if .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-k8sglue
|
||||||
|
{{- end }}
|
||||||
key: agentk8sglue_key
|
key: agentk8sglue_key
|
||||||
- name: CLEARML_API_SECRET_KEY
|
- name: CLEARML_API_SECRET_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
{{- if .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-k8sglue
|
||||||
|
{{- end }}
|
||||||
key: agentk8sglue_secret
|
key: agentk8sglue_secret
|
||||||
{{- if .Values.agentk8sglue.podTemplate.env }}
|
{{- if .Values.agentk8sglue.podTemplate.env }}
|
||||||
{{ toYaml .Values.agentk8sglue.podTemplate.env | nindent 8 }}
|
{{ toYaml .Values.agentk8sglue.podTemplate.env | nindent 8 }}
|
||||||
|
@ -52,7 +52,7 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
- name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
||||||
mountPath: /root/template
|
mountPath: /root/template
|
||||||
{{ if .Values.clearml.clearmlConfig }}
|
{{- if or .Values.clearml.clearmlConfig .Values.clearml.existingClearmlConfigSecret }}
|
||||||
- name: k8sagent-clearml-conf-volume
|
- name: k8sagent-clearml-conf-volume
|
||||||
mountPath: /root/clearml.conf
|
mountPath: /root/clearml.conf
|
||||||
subPath: clearml.conf
|
subPath: clearml.conf
|
||||||
@ -76,12 +76,20 @@ spec:
|
|||||||
- name: CLEARML_API_ACCESS_KEY
|
- name: CLEARML_API_ACCESS_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
{{- if .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-k8sglue
|
||||||
|
{{- end }}
|
||||||
key: agentk8sglue_key
|
key: agentk8sglue_key
|
||||||
- name: CLEARML_API_SECRET_KEY
|
- name: CLEARML_API_SECRET_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
{{- if .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
name: {{ .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
{{- else }}
|
||||||
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-k8sglue
|
||||||
|
{{- end }}
|
||||||
key: agentk8sglue_secret
|
key: agentk8sglue_secret
|
||||||
- name: CLEARML_WORKER_ID
|
- name: CLEARML_WORKER_ID
|
||||||
value: "{{.Values.agentk8sglue.id}}"
|
value: "{{.Values.agentk8sglue.id}}"
|
||||||
@ -98,10 +106,14 @@ spec:
|
|||||||
- name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
- name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
name: {{ include "agentk8sglue.referenceName" . }}-k8sagent-pod-template
|
||||||
{{ if .Values.clearml.clearmlConfig }}
|
{{- if or .Values.clearml.clearmlConfig .Values.clearml.existingClearmlConfigSecret }}
|
||||||
- name: k8sagent-clearml-conf-volume
|
- name: k8sagent-clearml-conf-volume
|
||||||
secret:
|
secret:
|
||||||
|
{{- if .Values.clearml.existingClearmlConfigSecret }}
|
||||||
|
secretName: {{ .Values.clearml.existingClearmlConfigSecret }}
|
||||||
|
{{- else }}
|
||||||
secretName: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
secretName: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
||||||
|
{{- end }}
|
||||||
items:
|
items:
|
||||||
- key: clearml.conf
|
- key: clearml.conf
|
||||||
path: clearml.conf
|
path: clearml.conf
|
||||||
|
@ -1,12 +1,22 @@
|
|||||||
|
{{- if not .Values.clearml.existingAgentk8sglueSecret }}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-k8sglue
|
||||||
|
data:
|
||||||
|
agentk8sglue_key: {{ .Values.clearml.agentk8sglueKey | b64enc }}
|
||||||
|
agentk8sglue_secret: {{ .Values.clearml.agentk8sglueSecret | b64enc }}
|
||||||
|
{{- end }}
|
||||||
|
---
|
||||||
|
{{- if not .Values.clearml.existingClearmlConfigSecret }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
name: {{ include "agentk8sglue.referenceName" . }}-clearml-agent-conf
|
||||||
data:
|
data:
|
||||||
agentk8sglue_key: {{ .Values.clearml.agentk8sglueKey | b64enc }}
|
|
||||||
agentk8sglue_secret: {{ .Values.clearml.agentk8sglueSecret | b64enc }}
|
|
||||||
clearml.conf: {{ .Values.clearml.clearmlConfig | b64enc }}
|
clearml.conf: {{ .Values.clearml.clearmlConfig | b64enc }}
|
||||||
---
|
---
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.imageCredentials.enabled }}
|
{{- if .Values.imageCredentials.enabled }}
|
||||||
{{- if not .Values.imageCredentials.existingSecret }}
|
{{- if not .Values.imageCredentials.existingSecret }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
|
@ -15,10 +15,15 @@ imageCredentials:
|
|||||||
|
|
||||||
# -- ClearMl generic configurations
|
# -- ClearMl generic configurations
|
||||||
clearml:
|
clearml:
|
||||||
|
# -- If this is set, chart will not generate a secret but will use what is defined here
|
||||||
|
existingAgentk8sglueSecret: ""
|
||||||
# -- Agent k8s Glue basic auth key
|
# -- Agent k8s Glue basic auth key
|
||||||
agentk8sglueKey: "ACCESSKEY"
|
agentk8sglueKey: "ACCESSKEY"
|
||||||
# -- Agent k8s Glue basic auth secret
|
# -- Agent k8s Glue basic auth secret
|
||||||
agentk8sglueSecret: "SECRETKEY"
|
agentk8sglueSecret: "SECRETKEY"
|
||||||
|
|
||||||
|
# -- If this is set, chart will not generate a secret but will use what is defined here
|
||||||
|
existingClearmlConfigSecret: ""
|
||||||
# -- ClearML configuration file
|
# -- ClearML configuration file
|
||||||
clearmlConfig: |-
|
clearmlConfig: |-
|
||||||
sdk {
|
sdk {
|
||||||
|
@ -2,7 +2,7 @@ apiVersion: v2
|
|||||||
name: clearml
|
name: clearml
|
||||||
description: MLOps platform
|
description: MLOps platform
|
||||||
type: application
|
type: application
|
||||||
version: "4.1.3"
|
version: "4.2.0"
|
||||||
appVersion: "1.6.0"
|
appVersion: "1.6.0"
|
||||||
home: https://clear.ml
|
home: https://clear.ml
|
||||||
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
|
icon: https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# ClearML Ecosystem for Kubernetes
|
# ClearML Ecosystem for Kubernetes
|
||||||
|
|
||||||
  
|
  
|
||||||
|
|
||||||
MLOps platform
|
MLOps platform
|
||||||
|
|
||||||
@ -256,6 +256,7 @@ For detailed instructions, see the [Optional Configuration](https://github.com/a
|
|||||||
| secret.credentials.apiserver.secretKey | string | `"BxapIRo9ZINi8x25CRxz8Wdmr2pQjzuWVB4PNASZqCtTyWgWVQ"` | Set for apiserver_secret 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.accessKey | string | `"ENP39EQM4SLACGD5FXB7"` | Set for tests_user_key field |
|
||||||
| secret.credentials.tests.secretKey | string | `"lPcm0imbcBZ8mwgO7tpadutiS3gnJD05x9j7afwXPS35IKbpiQ"` | Set for tests_user_secret field |
|
| secret.credentials.tests.secretKey | string | `"lPcm0imbcBZ8mwgO7tpadutiS3gnJD05x9j7afwXPS35IKbpiQ"` | Set for tests_user_secret field |
|
||||||
|
| secret.existingSecret | string | `""` | If this is set, chart will not generate a secret but will use what is defined here |
|
||||||
| secret.httpSession | string | `"9Tw20RbhJ1bLBiHEOWXvhplKGUbTgLzAtwFN2oLQvWwS0uRpD5"` | Set for http_session field |
|
| secret.httpSession | string | `"9Tw20RbhJ1bLBiHEOWXvhplKGUbTgLzAtwFN2oLQvWwS0uRpD5"` | Set for http_session field |
|
||||||
| webserver.additionalConfigs | object | `{}` | |
|
| webserver.additionalConfigs | object | `{}` | |
|
||||||
| webserver.affinity | object | `{}` | |
|
| webserver.affinity | object | `{}` | |
|
||||||
|
@ -87,32 +87,32 @@ spec:
|
|||||||
- name: CLEARML__SECURE__HTTP__SESSION_SECRET__APISERVER
|
- name: CLEARML__SECURE__HTTP__SESSION_SECRET__APISERVER
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: clearml-conf
|
name: {{ default "clearml-conf" .Values.secret.existingSecret }}
|
||||||
key: http_session
|
key: http_session
|
||||||
- name: CLEARML__SECURE__AUTH__TOKEN_SECRET
|
- name: CLEARML__SECURE__AUTH__TOKEN_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: clearml-conf
|
name: {{ default "clearml-conf" .Values.secret.existingSecret }}
|
||||||
key: auth_token
|
key: auth_token
|
||||||
- name: CLEARML__SECURE__CREDENTIALS__APISERVER__USER_KEY
|
- name: CLEARML__SECURE__CREDENTIALS__APISERVER__USER_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: clearml-conf
|
name: {{ default "clearml-conf" .Values.secret.existingSecret }}
|
||||||
key: apiserver_key
|
key: apiserver_key
|
||||||
- name: CLEARML__SECURE__CREDENTIALS__APISERVER__USER_SECRET
|
- name: CLEARML__SECURE__CREDENTIALS__APISERVER__USER_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: clearml-conf
|
name: {{ default "clearml-conf" .Values.secret.existingSecret }}
|
||||||
key: apiserver_secret
|
key: apiserver_secret
|
||||||
- name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_KEY
|
- name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: clearml-conf
|
name: {{ default "clearml-conf" .Values.secret.existingSecret }}
|
||||||
key: tests_user_key
|
key: tests_user_key
|
||||||
- name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_SECRET
|
- name: CLEARML__SECURE__CREDENTIALS__TESTS__USER_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: clearml-conf
|
name: {{ default "clearml-conf" .Values.secret.existingSecret }}
|
||||||
key: tests_user_secret
|
key: tests_user_secret
|
||||||
{{- if .Values.apiserver.extraEnvs }}
|
{{- if .Values.apiserver.extraEnvs }}
|
||||||
{{ toYaml .Values.apiserver.extraEnvs | nindent 10 }}
|
{{ toYaml .Values.apiserver.extraEnvs | nindent 10 }}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
{{- if not .Values.secret.existingSecret }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
@ -9,3 +10,4 @@ stringData:
|
|||||||
auth_token: {{ .Values.secret.authToken }}
|
auth_token: {{ .Values.secret.authToken }}
|
||||||
tests_user_key: {{ .Values.secret.credentials.tests.accessKey }}
|
tests_user_key: {{ .Values.secret.credentials.tests.accessKey }}
|
||||||
tests_user_secret: {{ .Values.secret.credentials.tests.secretKey }}
|
tests_user_secret: {{ .Values.secret.credentials.tests.secretKey }}
|
||||||
|
{{- end }}
|
||||||
|
@ -39,6 +39,9 @@ ingress:
|
|||||||
path: "/"
|
path: "/"
|
||||||
|
|
||||||
secret:
|
secret:
|
||||||
|
# -- If this is set, chart will not generate a secret but will use what is defined here
|
||||||
|
existingSecret: ""
|
||||||
|
|
||||||
# -- Set for http_session field
|
# -- Set for http_session field
|
||||||
httpSession: "9Tw20RbhJ1bLBiHEOWXvhplKGUbTgLzAtwFN2oLQvWwS0uRpD5"
|
httpSession: "9Tw20RbhJ1bLBiHEOWXvhplKGUbTgLzAtwFN2oLQvWwS0uRpD5"
|
||||||
# -- Set for auth_token field
|
# -- Set for auth_token field
|
||||||
|
Loading…
Reference in New Issue
Block a user