diff --git a/charts/clearml/Chart.yaml b/charts/clearml/Chart.yaml index e75fd2d..d58a9ea 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: "7.11.3" +version: "7.11.4" appVersion: "1.16" kubeVersion: ">= 1.21.0-0 < 1.31.0-0" home: https://clear.ml @@ -33,4 +33,4 @@ dependencies: annotations: artifacthub.io/changes: | - kind: changed - description: Updated version to 1.16.2 + description: Added PDB, topologySpreadConstraints and deployment strategy diff --git a/charts/clearml/README.md b/charts/clearml/README.md index 7624fe2..9d6d706 100644 --- a/charts/clearml/README.md +++ b/charts/clearml/README.md @@ -153,7 +153,7 @@ Kubernetes: `>= 1.21.0-0 < 1.31.0-0` | Key | Type | Default | Description | |-----|------|---------|-------------| -| 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 | 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":{},"pdb":{"enabled":false,"maxUnavailable":1,"minAvailable":1},"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","strategy":{"type":"RollingUpdate"},"tolerations":[],"topologySpreadConstraints":[]}` | 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. | @@ -174,6 +174,10 @@ Kubernetes: `>= 1.21.0-0 < 1.31.0-0` | apiserver.ingress.tlsSecretName | string | `""` | Reference to secret containing TLS certificate. If set, it enables HTTPS on ingress rule. | | apiserver.initContainers | object | `{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}}` | Api Server resources per initContainers pod | | apiserver.nodeSelector | object | `{}` | Api Server nodeselector | +| apiserver.pdb | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Specifies PodDisruptionBudget settings | +| apiserver.pdb.enabled | bool | `false` | If set to false no PDB is created | +| apiserver.pdb.maxUnavailable | int | `1` | Specifies maxUnavailable for PDB. | +| apiserver.pdb.minAvailable | int | `1` | Specifies minAvailable for PDB. | | apiserver.podAnnotations | object | `{}` | specific annotation for Api Server pods | | apiserver.podSecurityContext | object | `{}` | Api Server pod security context | | apiserver.prepopulateEnabled | bool | `true` | Enable/Disable example data load | @@ -188,7 +192,9 @@ Kubernetes: `>= 1.21.0-0 < 1.31.0-0` | apiserver.service.annotations | object | `{}` | specific annotation for Api Server service | | 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.serviceAccountName | string | `"clearml"` | The default serviceAccountName to be used | +| apiserver.strategy | object | `{"type":"RollingUpdate"}` | Api Server deployment strategy | | apiserver.tolerations | list | `[]` | Api Server tolerations setup | +| apiserver.topologySpreadConstraints | list | `[]` | Specifies topologySpreadConstraints settings | | clearml | object | `{"apiserverKey":"GGS9F4M6XB2DXJ5AFT9F","apiserverSecret":"2oGujVFhPfaozhpuz2GzQfA5OyxmMsR3WVJpsCR5hrgHFs20PO","clientConfigurationApiUrl":"","clientConfigurationFilesUrl":"","cookieDomain":"","cookieName":"clearml-token-k8s","defaultCompany":"d1bd92a3b039400cbafc60a7a5b1e52b","existingSecret":"","fileserverKey":"XXCRJ123CEE2KSQ068WO","fileserverSecret":"YIy8EVAC7QCT4FtgitxAQGyW7xRHDZ4jpYlTE7HKiscpORl1hG","readinessprobeKey":"GK4PRTVT3706T25K6BA1","readinessprobeSecret":"ymLh1ok5k5xNUQfS944Xdx9xjf0wueokqKM2dMZfHuH9ayItG2","secureAuthTokenSecret":"ymLh1ok5k5xNUQfS944Xdx9xjf0wueokqKM2dMZfHuH9ayItG2","testUserKey":"ENP39EQM4SLACGD5FXB7","testUserSecret":"lPcm0imbcBZ8mwgO7tpadutiS3gnJD05x9j7afwXPS35IKbpiQ"}` | ClearMl generic configurations | | clearml.apiserverKey | string | `"GGS9F4M6XB2DXJ5AFT9F"` | Api Server basic auth key | | clearml.apiserverSecret | string | `"2oGujVFhPfaozhpuz2GzQfA5OyxmMsR3WVJpsCR5hrgHFs20PO"` | Api Server basic auth secret | @@ -212,7 +218,7 @@ Kubernetes: `>= 1.21.0-0 < 1.31.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 | `{"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 | 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":{},"pdb":{"enabled":false,"maxUnavailable":1,"minAvailable":1},"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},"strategy":{"type":"RollingUpdate"},"tolerations":[],"topologySpreadConstraints":[]}` | 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 | @@ -230,6 +236,10 @@ Kubernetes: `>= 1.21.0-0 < 1.31.0-0` | fileserver.ingress.tlsSecretName | string | `""` | Reference to secret containing TLS certificate. If set, it enables HTTPS on ingress rule. | | fileserver.initContainers | object | `{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}}` | File Server resources per initContainers pod | | fileserver.nodeSelector | object | `{}` | File Server nodeselector | +| fileserver.pdb | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Specifies PodDisruptionBudget settings | +| fileserver.pdb.enabled | bool | `false` | If set to false no PDB is created | +| fileserver.pdb.maxUnavailable | int | `1` | Specifies maxUnavailable for PDB. | +| fileserver.pdb.minAvailable | int | `1` | Specifies minAvailable for PDB. | | fileserver.podAnnotations | object | `{}` | specific annotation for File Server pods | | fileserver.podSecurityContext | object | `{}` | File Server pod security context | | fileserver.replicaCount | int | `1` | File Server number of pods | @@ -243,7 +253,9 @@ Kubernetes: `>= 1.21.0-0 < 1.31.0-0` | fileserver.storage.data.class | string | `""` | Storage class (use default if empty) | | fileserver.storage.data.existingPVC | string | `""` | If set, it uses an already existing PVC instead of dynamic provisioning | | fileserver.storage.enabled | bool | `true` | If set to false no PVC is created and emptyDir is used | +| fileserver.strategy | object | `{"type":"RollingUpdate"}` | File Server deployment strategy | | fileserver.tolerations | list | `[]` | File Server tolerations setup | +| fileserver.topologySpreadConstraints | list | `[]` | Specifies topologySpreadConstraints settings | | global | object | `{"imageRegistry":"docker.io"}` | Global parameters section | | global.imageRegistry | string | `"docker.io"` | Images registry | | imageCredentials | object | `{"email":"someone@host.com","enabled":false,"existingSecret":"","password":"pwd","registry":"docker.io","username":"someone"}` | Container registry configuration | @@ -255,7 +267,7 @@ Kubernetes: `>= 1.21.0-0 < 1.31.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":{},"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 | 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":{},"pdb":{"enabled":false,"maxUnavailable":1,"minAvailable":1},"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","strategy":{"type":"RollingUpdate"},"tolerations":[],"topologySpreadConstraints":[]}` | 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. | @@ -274,6 +286,10 @@ Kubernetes: `>= 1.21.0-0 < 1.31.0-0` | webserver.ingress.tlsSecretName | string | `""` | Reference to secret containing TLS certificate. If set, it enables HTTPS on ingress rule. | | webserver.initContainers | object | `{"resources":{"limits":{"cpu":"10m","memory":"64Mi"},"requests":{"cpu":"10m","memory":"64Mi"}}}` | Web Server resources per initContainers pod | | webserver.nodeSelector | object | `{}` | Web Server nodeselector | +| webserver.pdb | object | `{"enabled":false,"maxUnavailable":1,"minAvailable":1}` | Specifies PodDisruptionBudget settings | +| webserver.pdb.enabled | bool | `false` | If set to false no PDB is created | +| webserver.pdb.maxUnavailable | int | `1` | Specifies maxUnavailable for PDB. | +| webserver.pdb.minAvailable | int | `1` | Specifies minAvailable for PDB. | | webserver.podAnnotations | object | `{}` | specific annotation for Web Server pods | | webserver.podSecurityContext | object | `{}` | Web Server pod security context | | webserver.replicaCount | int | `1` | Web Server number of pods | @@ -282,4 +298,6 @@ Kubernetes: `>= 1.21.0-0 < 1.31.0-0` | webserver.service.annotations | object | `{}` | specific annotation for Web Server service | | 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.serviceAccountName | string | `"clearml"` | The default serviceAccountName to be used | +| webserver.strategy | object | `{"type":"RollingUpdate"}` | Web Server deployment strategy | | webserver.tolerations | list | `[]` | Web Server tolerations setup | +| webserver.topologySpreadConstraints | list | `[]` | Specifies topologySpreadConstraints settings | diff --git a/charts/clearml/templates/apiserver-deployment.yaml b/charts/clearml/templates/apiserver-deployment.yaml index 29bc0ae..c6897fc 100644 --- a/charts/clearml/templates/apiserver-deployment.yaml +++ b/charts/clearml/templates/apiserver-deployment.yaml @@ -11,6 +11,8 @@ metadata: {{- end }} spec: replicas: {{ .Values.apiserver.replicaCount }} + strategy: + type: {{ .Values.apiserver.strategy.type }} selector: matchLabels: {{- include "apiserver.selectorLabels" . | nindent 6 }} @@ -201,4 +203,8 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + {{- with .Values.apiserver.topologySpreadConstraints }} + topologySpreadConstraints: + {{- toYaml . | nindent 8 }} + {{- end }} {{- end }} diff --git a/charts/clearml/templates/apiserver-pdb.yaml b/charts/clearml/templates/apiserver-pdb.yaml new file mode 100644 index 0000000..85de13d --- /dev/null +++ b/charts/clearml/templates/apiserver-pdb.yaml @@ -0,0 +1,14 @@ +{{- if and .Values.apiserver.enabled .Values.apiserver.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ include "apiserver.referenceName" . }}-pdb + labels: + {{- include "clearml.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "apiserver.selectorLabels" . | nindent 6 }} + maxUnavailable: {{ .Values.apiserver.pdb.maxUnavailable }} + minAvailable: {{ .Values.apiserver.pdb.minAvailable }} +{{- end }} \ No newline at end of file diff --git a/charts/clearml/templates/fileserver-deployment.yaml b/charts/clearml/templates/fileserver-deployment.yaml index 68870c4..b1aa73c 100644 --- a/charts/clearml/templates/fileserver-deployment.yaml +++ b/charts/clearml/templates/fileserver-deployment.yaml @@ -11,6 +11,8 @@ metadata: {{- end }} spec: replicas: {{ .Values.fileserver.replicaCount }} + strategy: + type: {{ .Values.fileserver.strategy.type }} selector: matchLabels: {{- include "fileserver.selectorLabels" . | nindent 6 }} @@ -136,4 +138,8 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + {{- with .Values.fileserver.topologySpreadConstraints }} + topologySpreadConstraints: + {{- toYaml . | nindent 8 }} + {{- end }} {{- end }} diff --git a/charts/clearml/templates/fileserver-pdb.yaml b/charts/clearml/templates/fileserver-pdb.yaml new file mode 100644 index 0000000..3ba5fdb --- /dev/null +++ b/charts/clearml/templates/fileserver-pdb.yaml @@ -0,0 +1,14 @@ +{{- if and .Values.fileserver.enabled .Values.fileserver.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ include "fileserver.referenceName" . }}-pdb + labels: + {{- include "clearml.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "fileserver.selectorLabels" . | nindent 6 }} + maxUnavailable: {{ .Values.fileserver.pdb.maxUnavailable }} + minAvailable: {{ .Values.fileserver.pdb.minAvailable }} +{{- end }} \ No newline at end of file diff --git a/charts/clearml/templates/webserver-deployment.yaml b/charts/clearml/templates/webserver-deployment.yaml index 93f6337..b4c5ad1 100644 --- a/charts/clearml/templates/webserver-deployment.yaml +++ b/charts/clearml/templates/webserver-deployment.yaml @@ -11,6 +11,8 @@ metadata: {{- end }} spec: replicas: {{ .Values.webserver.replicaCount }} + strategy: + type: {{ .Values.webserver.strategy.type }} selector: matchLabels: {{- include "webserver.selectorLabels" . | nindent 6 }} @@ -113,4 +115,8 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + {{- with .Values.webserver.topologySpreadConstraints }} + topologySpreadConstraints: + {{- toYaml . | nindent 8 }} + {{- end }} {{- end }} diff --git a/charts/clearml/templates/webserver-pdb.yaml b/charts/clearml/templates/webserver-pdb.yaml new file mode 100644 index 0000000..af05924 --- /dev/null +++ b/charts/clearml/templates/webserver-pdb.yaml @@ -0,0 +1,14 @@ +{{- if and .Values.webserver.enabled .Values.webserver.pdb.enabled }} +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: {{ include "webserver.referenceName" . }}-pdb + labels: + {{- include "clearml.labels" . | nindent 4 }} +spec: + selector: + matchLabels: + {{- include "webserver.selectorLabels" . | nindent 6 }} + maxUnavailable: {{ .Values.webserver.pdb.maxUnavailable }} + minAvailable: {{ .Values.webserver.pdb.minAvailable }} +{{- end }} \ No newline at end of file diff --git a/charts/clearml/values.yaml b/charts/clearml/values.yaml index e431353..ce90153 100644 --- a/charts/clearml/values.yaml +++ b/charts/clearml/values.yaml @@ -79,6 +79,9 @@ apiserver: nodePort: 30008 # -- Api Server number of pods replicaCount: 1 + # -- Api Server deployment strategy + strategy: + type: RollingUpdate # -- Api Server resources per initContainers pod initContainers: resources: @@ -181,6 +184,22 @@ apiserver: additionalVolumeMounts: {} # - mountPath: /dev/shm # name: ramdisk + # -- Specifies PodDisruptionBudget settings + pdb: + # -- If set to false no PDB is created + enabled: false + # -- Specifies maxUnavailable for PDB. + maxUnavailable: 1 + # -- Specifies minAvailable for PDB. + minAvailable: 1 + # -- Specifies topologySpreadConstraints settings + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: "topology.kubernetes.io/zone" + # whenUnsatisfiable: DoNotSchedule + # labelSelector: + # matchLabels: + # app.kubernetes.io/instance=clearml-apiserver # -- File Server configurations fileserver: @@ -207,6 +226,9 @@ fileserver: nodePort: 30081 # -- File Server number of pods replicaCount: 1 + # -- File Server deployment strategy + strategy: + type: RollingUpdate # -- File Server resources per initContainers pod initContainers: resources: @@ -277,6 +299,22 @@ fileserver: additionalVolumeMounts: {} # - mountPath: /dev/shm # name: ramdisk + # -- Specifies PodDisruptionBudget settings + pdb: + # -- If set to false no PDB is created + enabled: false + # -- Specifies maxUnavailable for PDB. + maxUnavailable: 1 + # -- Specifies minAvailable for PDB. + minAvailable: 1 + # -- Specifies topologySpreadConstraints settings + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: "topology.kubernetes.io/zone" + # whenUnsatisfiable: DoNotSchedule + # labelSelector: + # matchLabels: + # app.kubernetes.io/instance=clearml-fileserver # -- Web Server configurations webserver: @@ -303,6 +341,9 @@ webserver: nodePort: 30080 # -- Web Server number of pods replicaCount: 1 + # -- Web Server deployment strategy + strategy: + type: RollingUpdate # -- Web Server resources per initContainers pod initContainers: resources: @@ -363,6 +404,22 @@ webserver: additionalVolumeMounts: {} # - mountPath: /dev/shm # name: ramdisk + # -- Specifies PodDisruptionBudget settings + pdb: + # -- If set to false no PDB is created + enabled: false + # -- Specifies maxUnavailable for PDB. + maxUnavailable: 1 + # -- Specifies minAvailable for PDB. + minAvailable: 1 + # -- Specifies topologySpreadConstraints settings + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: "topology.kubernetes.io/zone" + # whenUnsatisfiable: DoNotSchedule + # labelSelector: + # matchLabels: + # app.kubernetes.io/instance=clearml-webserver # -- Definition of external services to use if not enabled as dependency charts here externalServices: