diff --git a/charts/clearml/Chart.yaml b/charts/clearml/Chart.yaml index 25270bb..0cffa95 100644 --- a/charts/clearml/Chart.yaml +++ b/charts/clearml/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: clearml description: MLOps platform type: application -version: "5.5.3" +version: "5.6.0" appVersion: "1.9.2" kubeVersion: ">= 1.21.0-0 < 1.27.0-0" home: https://clear.ml @@ -32,5 +32,5 @@ dependencies: condition: elasticsearch.enabled annotations: artifacthub.io/changes: | - - kind: fixed - description: typo on existingSecret references + - kind: added + description: multi host external elasticsearch support diff --git a/charts/clearml/README.md b/charts/clearml/README.md index 6bcec8e..7be6c9b 100644 --- a/charts/clearml/README.md +++ b/charts/clearml/README.md @@ -1,6 +1,6 @@ # ClearML Ecosystem for Kubernetes -![Version: 5.5.3](https://img.shields.io/badge/Version-5.5.3-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.9.2](https://img.shields.io/badge/AppVersion-1.9.2-informational?style=flat-square) +![Version: 5.6.0](https://img.shields.io/badge/Version-5.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.9.2](https://img.shields.io/badge/AppVersion-1.9.2-informational?style=flat-square) MLOps platform @@ -216,9 +216,8 @@ Kubernetes: `>= 1.21.0-0 < 1.27.0-0` | enterpriseFeatures.overrideReferenceApiUrl | string | `""` | set this value AND overrideReferenceFileUrl if external endpoint exposure is in place (like a LoadBalancer) example: "https://api.clearml.local" | | enterpriseFeatures.overrideReferenceFileUrl | string | `""` | set this value AND overrideReferenceAPIUrl if external endpoint exposure is in place (like a LoadBalancer) example: "https://files.clearml.local" | | enterpriseFeatures.webserverImageTagOverride | string | `"3.15.3-801"` | Image tag override for webserver enterprise version | -| externalServices | object | `{"elasticsearchHost":"","elasticsearchPort":9200,"mongodbConnectionStringAuth":"","mongodbConnectionStringBackend":"","redisHost":"","redisPort":6379}` | Definition of external services to use if not enabled as dependency charts here | -| 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 | object | `{"elasticsearchConnectionString":"","mongodbConnectionStringAuth":"","mongodbConnectionStringBackend":"","redisHost":"","redisPort":6379}` | Definition of external services to use if not enabled as dependency charts here | +| externalServices.elasticsearchConnectionString | string | `""` | Existing ElasticSearch connectionstring if elasticsearch.enabled is false (example in values.yaml) | | externalServices.mongodbConnectionStringAuth | string | `""` | Existing MongoDB connection string for BACKEND to use if mongodb.enabled is false | | externalServices.mongodbConnectionStringBackend | string | `""` | Existing MongoDB connection string for AUTH to use if mongodb.enabled is false | | externalServices.redisHost | string | `""` | Existing Redis Hostname to use if redis.enabled is false | diff --git a/charts/clearml/templates/_helpers.tpl b/charts/clearml/templates/_helpers.tpl index 4f1eddb..d3204eb 100644 --- a/charts/clearml/templates/_helpers.tpl +++ b/charts/clearml/templates/_helpers.tpl @@ -141,21 +141,24 @@ Create readiness probe auth token Elasticsearch Service name */}} {{- define "elasticsearch.servicename" -}} -{{- if .Values.elasticsearch.enabled }} {{- .Values.elasticsearch.clusterName }}-master -{{- else }} -{{- .Values.externalServices.elasticsearchHost }} -{{- end }} {{- end }} {{/* Elasticsearch Service port */}} {{- define "elasticsearch.serviceport" -}} -{{- if .Values.elasticsearch.enabled }} {{- .Values.elasticsearch.httpPort }} +{{- end }} + +{{/* +Elasticsearch Comnnection string +*/}} +{{- define "elasticsearch.connectionstring" -}} +{{- if .Values.elasticsearch.enabled }} +{{- printf "[{\"host\":\"%s\",\"port\":%s}]" (include "elasticsearch.servicename" .) (include "elasticsearch.serviceport" .) | quote }} {{- else }} -{{- .Values.externalServices.elasticsearchPort }} +{{- .Values.externalServices.elasticsearchConnectionString | quote }} {{- end }} {{- end }} diff --git a/charts/clearml/templates/apiserver-deployment.yaml b/charts/clearml/templates/apiserver-deployment.yaml index 1b34b65..44ad8d2 100644 --- a/charts/clearml/templates/apiserver-deployment.yaml +++ b/charts/clearml/templates/apiserver-deployment.yaml @@ -85,10 +85,14 @@ spec: containerPort: 8008 protocol: TCP env: - - name: CLEARML_ELASTIC_SERVICE_HOST - value: {{ include "elasticsearch.servicename" . }} - - name: CLEARML_ELASTIC_SERVICE_PORT - value: "{{ include "elasticsearch.serviceport" . }}" + - 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" . }} {{- if .Values.mongodb.enabled }} - name: CLEARML_MONGODB_SERVICE_CONNECTION_STRING value: {{ include "mongodb.connectionstring" . | quote }} @@ -138,8 +142,6 @@ spec: value: "{{ .Values.enterpriseFeatures.defaultCompanyGuid }}" - name: APPLY_ES_MAPPINGS value: "false" - - name: CLEARML__HOSTS__ELASTIC__LOGS__HOSTS - value: "[\"http://{{ include "elasticsearch.servicename" . }}:{{ include "elasticsearch.serviceport" . }}\"]" - name: NUMBER_OF_GUNICORN_WORKERS value: "{{ .Values.apiserver.processes.count }}" - name: GUNICORN_TIMEOUT diff --git a/charts/clearml/values.yaml b/charts/clearml/values.yaml index b172a29..0a73c7c 100644 --- a/charts/clearml/values.yaml +++ b/charts/clearml/values.yaml @@ -276,10 +276,9 @@ webserver: # -- Definition of external services to use if not enabled as dependency charts here 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 ElasticSearch connectionstring if elasticsearch.enabled is false (example in values.yaml) + elasticsearchConnectionString: "" + # [{"host":"hostname1","port":9200},{"host":"hostname2","port":9200},{"host":"hostname3","port":9200}] # -- Existing MongoDB connection string for BACKEND to use if mongodb.enabled is false mongodbConnectionStringAuth: "" # -- Existing MongoDB connection string for AUTH to use if mongodb.enabled is false