From 6b3df8db365008db1cd0b791815ec08219a634d1 Mon Sep 17 00:00:00 2001 From: Ajayi Dipo Date: Wed, 20 Nov 2024 19:17:50 +0100 Subject: [PATCH] Update image reference (#802) * [CI] Update tfy-agent chart values.yaml * Separate out image reference * Update values.yaml * Update values.yaml * Update README.md with readme-generator-for-helm Signed-off-by: DeeAjayi --------- Signed-off-by: DeeAjayi Co-authored-by: DeeAjayi --- charts/tfy-agent/values.yaml | 13 +- charts/tfy-inferentia-operator/README.md | 19 +-- .../templates/neuron-device-plugin.yaml | 2 +- charts/tfy-inferentia-operator/values.yaml | 7 +- charts/tfy-notebook-controller/README.md | 117 +++++++++--------- .../templates/sds-deployment.yaml | 2 +- charts/tfy-notebook-controller/values.yaml | 7 +- 7 files changed, 87 insertions(+), 80 deletions(-) diff --git a/charts/tfy-agent/values.yaml b/charts/tfy-agent/values.yaml index 87302259..8adaef74 100644 --- a/charts/tfy-agent/values.yaml +++ b/charts/tfy-agent/values.yaml @@ -25,8 +25,7 @@ config: ## @param config.controlPlaneClusterIP ClusterIP of the control plane to connect agent (format: `http://`) ## controlPlaneClusterIP: "http://truefoundry-truefoundry-frontend-app.truefoundry.svc.cluster.local:5000" - - ## @param config.controlPlaneControllerClusterIP ClusterIP of the control plane controller to connect proxy (format: `http://`) + ## @param config.controlPlaneControllerClusterIP ClusterIP of the control plane controller to connect proxy (format: `http://`) ## controlPlaneControllerClusterIP: "http://truefoundry-tfy-controller.truefoundry.svc.cluster.local:8123" @@ -73,8 +72,8 @@ config: # - default # - namespace-1 -## @param imagePullSecrets Secrets to pull images -## + ## @param imagePullSecrets Secrets to pull images + ## imagePullSecrets: [] ## @param nameOverride String to override partial name passed in helm install command @@ -141,7 +140,7 @@ tfyAgent: ## @param tfyAgent.service.port Port for tfyAgent service ## port: 3000 - + ## @param tfyAgent.service.nodePort Port to expose on each node. Only used if service.type is 'NodePort' ## nodePort: "" @@ -447,8 +446,8 @@ tfyAgentProxy: # resources: ["namespaces"] # verbs: ["create"] -## @section resourceQuota Add a ResourceQuota to enable priority class in a namspace. -## + ## @section resourceQuota Add a ResourceQuota to enable priority class in a namspace. + ## resourceQuota: ## @param resourceQuota.enabled Create the ResourceQuota. enabled: true diff --git a/charts/tfy-inferentia-operator/README.md b/charts/tfy-inferentia-operator/README.md index 2a350bbf..f70ceb87 100644 --- a/charts/tfy-inferentia-operator/README.md +++ b/charts/tfy-inferentia-operator/README.md @@ -12,15 +12,16 @@ Refer to, ### Configuration for the device plugin responsible for node feature discovery -| Name | Description | Value | -| ---------------------------------------- | ---------------------------------------------- | ------------------------------------------------------ | -| `devicePlugin.enabled` | Enable device plugin Daemonset. | `true` | -| `devicePlugin.resources.requests.cpu` | CPU request for device plugin Daemonset. | `100m` | -| `devicePlugin.resources.requests.memory` | Memory request for device plugin Daemonset. | `128Mi` | -| `devicePlugin.image` | Image to use for device plugin Daemonset. | `public.ecr.aws/neuron/neuron-device-plugin:2.16.18.0` | -| `imagePullSecrets` | (global) List of image pull secrets | `[]` | -| `devicePlugin.imagePullSecrets` | List of image pull secrets | `[]` | -| `devicePlugin.affinity` | Affinity settings for device plugin Daemonset. | `{}` | +| Name | Description | Value | +| ---------------------------------------- | ---------------------------------------------------- | -------------------------------------------- | +| `devicePlugin.enabled` | Enable device plugin Daemonset. | `true` | +| `devicePlugin.resources.requests.cpu` | CPU request for device plugin Daemonset. | `100m` | +| `devicePlugin.resources.requests.memory` | Memory request for device plugin Daemonset. | `128Mi` | +| `devicePlugin.image.repository` | Image repository to use for device plugin Daemonset. | `public.ecr.aws/neuron/neuron-device-plugin` | +| `devicePlugin.image.tag` | Image tag to use for device plugin Daemonset. | `2.16.18.0` | +| `imagePullSecrets` | (global) List of image pull secrets | `[]` | +| `devicePlugin.imagePullSecrets` | List of image pull secrets | `[]` | +| `devicePlugin.affinity` | Affinity settings for device plugin Daemonset. | `{}` | ### Configuration for the scheduler responsible for scheduling neuron pods diff --git a/charts/tfy-inferentia-operator/templates/neuron-device-plugin.yaml b/charts/tfy-inferentia-operator/templates/neuron-device-plugin.yaml index 203fe327..5091b4e0 100644 --- a/charts/tfy-inferentia-operator/templates/neuron-device-plugin.yaml +++ b/charts/tfy-inferentia-operator/templates/neuron-device-plugin.yaml @@ -88,7 +88,7 @@ spec: affinity: {{- toYaml (index .Values "devicePlugin" "affinity") | nindent 8 }} containers: - - image: {{ .Values.devicePlugin.image }} + - image: {{ .Values.devicePlugin.image.repository }}:{{ .Values.devicePlugin.image.tag }} imagePullPolicy: Always name: neuron-device-plugin resources: diff --git a/charts/tfy-inferentia-operator/values.yaml b/charts/tfy-inferentia-operator/values.yaml index 47cb6fe0..c15ee852 100644 --- a/charts/tfy-inferentia-operator/values.yaml +++ b/charts/tfy-inferentia-operator/values.yaml @@ -2,7 +2,8 @@ ## @param devicePlugin.enabled Enable device plugin Daemonset. ## @param devicePlugin.resources.requests.cpu CPU request for device plugin Daemonset. ## @param devicePlugin.resources.requests.memory Memory request for device plugin Daemonset. -## @param devicePlugin.image Image to use for device plugin Daemonset. +## @param devicePlugin.image.repository Image repository to use for device plugin Daemonset. +## @param devicePlugin.image.tag Image tag to use for device plugin Daemonset. ## @param imagePullSecrets (global) List of image pull secrets ## @param devicePlugin.imagePullSecrets List of image pull secrets ## @param devicePlugin.affinity [object] Affinity settings for device plugin Daemonset. @@ -13,7 +14,9 @@ devicePlugin: requests: cpu: 100m memory: 128Mi - image: public.ecr.aws/neuron/neuron-device-plugin:2.16.18.0 + image: + repository: public.ecr.aws/neuron/neuron-device-plugin + tag: 2.16.18.0 imagePullSecrets: [] tolerations: ## @skip devicePlugin.tolerations[0] diff --git a/charts/tfy-notebook-controller/README.md b/charts/tfy-notebook-controller/README.md index b70a8b1f..ecce3e28 100644 --- a/charts/tfy-notebook-controller/README.md +++ b/charts/tfy-notebook-controller/README.md @@ -6,61 +6,62 @@ This Helm chart package, provided by TrueFoundry, contains configurations and re ### tfy-notebook-controller configurations -| Name | Description | Value | -| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `labels.app` | Label for the application. | `notebook-controller` | -| `labels.kustomize.component` | Label for the Kustomize component. | `notebook-controller` | -| `namespaceOverride` | Namespace override for the notebook controller. | `""` | -| `imagePullSecrets` | Image pull secrets for the notebook controller. | `[]` | -| `istioGateway` | Istio Gateway for the notebook controller. | `istio-system/tfy-wildcard` | -| `image.pullPolicy` | Pull Policy for notebook controller. | `IfNotPresent` | -| `image.repository` | Image repository for the notebook controller. | `tfy.jfrog.io/tfy-images/tfy-notebook-controller` | -| `image.tag` | Image tag for the notebook controller. | `2ea1ddca29998b7b87a86eead70237b21d86f220` | -| `resources.limits.cpu` | CPU limit for the notebook controller. | `100m` | -| `resources.limits.memory` | Memory limit for the notebook controller. | `256Mi` | -| `resources.limits.ephemeral-storage` | Ephemeral storage limit for the notebook controller. | `256Mi` | -| `resources.requests.cpu` | CPU request for the notebook controller. | `50m` | -| `resources.requests.memory` | Memory request for the notebook controller. | `128Mi` | -| `resources.requests.ephemeral-storage` | Ephemeral storage request for the notebook controller. | `128Mi` | -| `tolerations` | list of tolerations | `[]` | -| `affinity` | Affinity for the notebook controller deployment | `{}` | -| `notebookBaseDomainUrl` | Base domain URL for the notebook. | `` | -| `oauth.enabled` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `false` | -| `oauth.type` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `truefoundry` | -| `oauth.clientId` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | -| `oauth.tokenEndpoint` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | -| `oauth.authorizationEndpoint` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | -| `oauth.jwksUri` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | -| `oauth.clientSecret` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | -| `oauth.hmac` | HMAC key used for encoding/decoding tokens in OAuth2. This key is crucial for maintaining token integrity and security. | `""` | -| `oauth.truefoundryExternalAuthorization.enabled` | Enable Truefoundry authorization for notebooks deployed. | `true` | -| `oauth.truefoundryExternalAuthorization.controlPlaneURL` | Control plane URL for TrueFoundry | `""` | -| `oauth.truefoundryExternalAuthorization.image` | Image of Truefoundry external authorization server | `tfy.jfrog.io/tfy-images/ext-authz-server:762b460727a2d2627216b0e5c7b311711a739885` | -| `sdsServer.replicas` | Number of replicas of sds server | `2` | -| `sdsServer.image` | image for sds-server | `tfy.jfrog.io/tfy-images/sds-server:bea4f5dbc0aafad1d3ada37f5a2b22a188318c92` | -| `sdsServer.affinity` | Node affinity for sds-server | `{}` | -| `sdsServer.imagePullSecrets` | Image pull credentials for sds-server | `[]` | -| `sdsServer.command` | Command and arguments to start the sds-server application. | `["/app/sds-server","--port","8000","--file","/secrets/secrets.yaml"]` | -| `sdsServer.readinessProbe.tcpSocket.port` | Port for TCP socket used in readiness probe | `8000` | -| `sdsServer.readinessProbe.initialDelaySeconds` | Initial delay before performing readiness probe | `15` | -| `sdsServer.readinessProbe.periodSeconds` | Frequency of performing readiness probe | `10` | -| `sdsServer.livenessProbe.tcpSocket.port` | Port for TCP socket used in liveness probe | `8000` | -| `sdsServer.livenessProbe.initialDelaySeconds` | Initial delay before performing liveness probe | `15` | -| `sdsServer.livenessProbe.periodSeconds` | Frequency of performing liveness probe | `10` | -| `sdsServer.deploymentStrategy.type` | Type of deployment strategy | `RollingUpdate` | -| `sdsServer.deploymentStrategy.rollingUpdate.maxSurge` | Max pods above desired number | `1` | -| `sdsServer.deploymentStrategy.rollingUpdate.maxUnavailable` | Max pods unavailable during update | `1` | -| `sdsServer.ports[0].containerPort` | The port on which the container is listening. | `8000` | -| `sdsServer.ports[0].name` | The name assigned to this port. | `port-8000` | -| `sdsServer.ports[0].protocol` | The protocol used by this port (TCP/UDP). | `TCP` | -| `sdsServer.resources.limits.cpu` | The maximum CPU resources allocated. | `0.02` | -| `sdsServer.resources.limits.ephemeral-storage` | The maximum ephemeral storage allocated. | `20M` | -| `sdsServer.resources.limits.memory` | The maximum memory resources allocated. | `50M` | -| `sdsServer.resources.requests.cpu` | The minimum CPU resources requested. | `0.01` | -| `sdsServer.resources.requests.ephemeral-storage` | The minimum ephemeral storage requested. | `10M` | -| `sdsServer.resources.requests.memory` | The minimum memory resources requested. | `30M` | -| `sdsServer.tolerations` | Spot tolerations for the notebook controller deployment. | `[]` | -| `sdsServer.topologySpreadConstraints[0].labelSelector.matchLabels.truefoundry.com/component` | Component label for the sds-server. | `{"replicas":2,"image":"tfy.jfrog.io/tfy-images/sds-server:bea4f5dbc0aafad1d3ada37f5a2b22a188318c92","affinity":{},"imagePullSecrets":[],"command":["/app/sds-server","--port","8000","--file","/secrets/secrets.yaml"],"readinessProbe":{"tcpSocket":{"port":8000},"initialDelaySeconds":15,"periodSeconds":10},"livenessProbe":{"tcpSocket":{"port":8000},"initialDelaySeconds":15,"periodSeconds":10},"deploymentStrategy":{"type":"RollingUpdate","rollingUpdate":{"maxSurge":1,"maxUnavailable":1}},"ports":[{"containerPort":8000,"name":"port-8000","protocol":"TCP"}],"resources":{"limits":{"cpu":0.02,"ephemeral-storage":"20M","memory":"50M"},"requests":{"cpu":0.01,"ephemeral-storage":"10M","memory":"30M"}},"tolerations":[{"effect":"NoSchedule","key":"cloud.google.com/gke-spot","operator":"Equal","value":"true"},{"effect":"NoSchedule","key":"kubernetes.azure.com/scalesetpriority","operator":"Equal","value":"spot"}],"topologySpreadConstraints":[{"labelSelector":{"matchLabels":{"truefoundry.com/component":"sds-server"}},"maxSkew":1,"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}]}` | -| `sdsServer.topologySpreadConstraints[0].maxSkew` | Define the maximum skew of pods across topology domains. | `1` | -| `sdsServer.topologySpreadConstraints[0].topologyKey` | The key for the node labels used in determining the topology spread. | `topology.kubernetes.io/zone` | -| `sdsServer.topologySpreadConstraints[0].whenUnsatisfiable` | Behavior policy when spreading constraints cannot be satisfied. | `ScheduleAnyway` | +| Name | Description | Value | +| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `labels.app` | Label for the application. | `notebook-controller` | +| `labels.kustomize.component` | Label for the Kustomize component. | `notebook-controller` | +| `namespaceOverride` | Namespace override for the notebook controller. | `""` | +| `imagePullSecrets` | Image pull secrets for the notebook controller. | `[]` | +| `istioGateway` | Istio Gateway for the notebook controller. | `istio-system/tfy-wildcard` | +| `image.pullPolicy` | Pull Policy for notebook controller. | `IfNotPresent` | +| `image.repository` | Image repository for the notebook controller. | `tfy.jfrog.io/tfy-images/tfy-notebook-controller` | +| `image.tag` | Image tag for the notebook controller. | `2ea1ddca29998b7b87a86eead70237b21d86f220` | +| `resources.limits.cpu` | CPU limit for the notebook controller. | `100m` | +| `resources.limits.memory` | Memory limit for the notebook controller. | `256Mi` | +| `resources.limits.ephemeral-storage` | Ephemeral storage limit for the notebook controller. | `256Mi` | +| `resources.requests.cpu` | CPU request for the notebook controller. | `50m` | +| `resources.requests.memory` | Memory request for the notebook controller. | `128Mi` | +| `resources.requests.ephemeral-storage` | Ephemeral storage request for the notebook controller. | `128Mi` | +| `tolerations` | list of tolerations | `[]` | +| `affinity` | Affinity for the notebook controller deployment | `{}` | +| `notebookBaseDomainUrl` | Base domain URL for the notebook. | `` | +| `oauth.enabled` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `false` | +| `oauth.type` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `truefoundry` | +| `oauth.clientId` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | +| `oauth.tokenEndpoint` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | +| `oauth.authorizationEndpoint` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | +| `oauth.jwksUri` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | +| `oauth.clientSecret` | Secret key used for OAuth2 authentication. This key should be kept confidential. | `""` | +| `oauth.hmac` | HMAC key used for encoding/decoding tokens in OAuth2. This key is crucial for maintaining token integrity and security. | `""` | +| `oauth.truefoundryExternalAuthorization.enabled` | Enable Truefoundry authorization for notebooks deployed. | `true` | +| `oauth.truefoundryExternalAuthorization.controlPlaneURL` | Control plane URL for TrueFoundry | `""` | +| `oauth.truefoundryExternalAuthorization.image` | Image of Truefoundry external authorization server | `tfy.jfrog.io/tfy-images/ext-authz-server:762b460727a2d2627216b0e5c7b311711a739885` | +| `sdsServer.replicas` | Number of replicas of sds server | `2` | +| `sdsServer.image.repository` | Repository for sds-server | `tfy.jfrog.io/tfy-images/sds-server` | +| `sdsServer.image.tag` | Tag for sds-server | `bea4f5dbc0aafad1d3ada37f5a2b22a188318c92` | +| `sdsServer.affinity` | Node affinity for sds-server | `{}` | +| `sdsServer.imagePullSecrets` | Image pull credentials for sds-server | `[]` | +| `sdsServer.command` | Command and arguments to start the sds-server application. | `["/app/sds-server","--port","8000","--file","/secrets/secrets.yaml"]` | +| `sdsServer.readinessProbe.tcpSocket.port` | Port for TCP socket used in readiness probe | `8000` | +| `sdsServer.readinessProbe.initialDelaySeconds` | Initial delay before performing readiness probe | `15` | +| `sdsServer.readinessProbe.periodSeconds` | Frequency of performing readiness probe | `10` | +| `sdsServer.livenessProbe.tcpSocket.port` | Port for TCP socket used in liveness probe | `8000` | +| `sdsServer.livenessProbe.initialDelaySeconds` | Initial delay before performing liveness probe | `15` | +| `sdsServer.livenessProbe.periodSeconds` | Frequency of performing liveness probe | `10` | +| `sdsServer.deploymentStrategy.type` | Type of deployment strategy | `RollingUpdate` | +| `sdsServer.deploymentStrategy.rollingUpdate.maxSurge` | Max pods above desired number | `1` | +| `sdsServer.deploymentStrategy.rollingUpdate.maxUnavailable` | Max pods unavailable during update | `1` | +| `sdsServer.ports[0].containerPort` | The port on which the container is listening. | `8000` | +| `sdsServer.ports[0].name` | The name assigned to this port. | `port-8000` | +| `sdsServer.ports[0].protocol` | The protocol used by this port (TCP/UDP). | `TCP` | +| `sdsServer.resources.limits.cpu` | The maximum CPU resources allocated. | `0.02` | +| `sdsServer.resources.limits.ephemeral-storage` | The maximum ephemeral storage allocated. | `20M` | +| `sdsServer.resources.limits.memory` | The maximum memory resources allocated. | `50M` | +| `sdsServer.resources.requests.cpu` | The minimum CPU resources requested. | `0.01` | +| `sdsServer.resources.requests.ephemeral-storage` | The minimum ephemeral storage requested. | `10M` | +| `sdsServer.resources.requests.memory` | The minimum memory resources requested. | `30M` | +| `sdsServer.tolerations` | Spot tolerations for the notebook controller deployment. | `[]` | +| `sdsServer.topologySpreadConstraints[0].labelSelector.matchLabels.truefoundry.com/component` | Component label for the sds-server. | `{"replicas":2,"image":{"repository":"tfy.jfrog.io/tfy-images/sds-server","tag":"bea4f5dbc0aafad1d3ada37f5a2b22a188318c92"},"affinity":{},"imagePullSecrets":[],"command":["/app/sds-server","--port","8000","--file","/secrets/secrets.yaml"],"readinessProbe":{"tcpSocket":{"port":8000},"initialDelaySeconds":15,"periodSeconds":10},"livenessProbe":{"tcpSocket":{"port":8000},"initialDelaySeconds":15,"periodSeconds":10},"deploymentStrategy":{"type":"RollingUpdate","rollingUpdate":{"maxSurge":1,"maxUnavailable":1}},"ports":[{"containerPort":8000,"name":"port-8000","protocol":"TCP"}],"resources":{"limits":{"cpu":0.02,"ephemeral-storage":"20M","memory":"50M"},"requests":{"cpu":0.01,"ephemeral-storage":"10M","memory":"30M"}},"tolerations":[{"effect":"NoSchedule","key":"cloud.google.com/gke-spot","operator":"Equal","value":"true"},{"effect":"NoSchedule","key":"kubernetes.azure.com/scalesetpriority","operator":"Equal","value":"spot"}],"topologySpreadConstraints":[{"labelSelector":{"matchLabels":{"truefoundry.com/component":"sds-server"}},"maxSkew":1,"topologyKey":"topology.kubernetes.io/zone","whenUnsatisfiable":"ScheduleAnyway"}]}` | +| `sdsServer.topologySpreadConstraints[0].maxSkew` | Define the maximum skew of pods across topology domains. | `1` | +| `sdsServer.topologySpreadConstraints[0].topologyKey` | The key for the node labels used in determining the topology spread. | `topology.kubernetes.io/zone` | +| `sdsServer.topologySpreadConstraints[0].whenUnsatisfiable` | Behavior policy when spreading constraints cannot be satisfied. | `ScheduleAnyway` | diff --git a/charts/tfy-notebook-controller/templates/sds-deployment.yaml b/charts/tfy-notebook-controller/templates/sds-deployment.yaml index 5de0ede0..196f6a5f 100644 --- a/charts/tfy-notebook-controller/templates/sds-deployment.yaml +++ b/charts/tfy-notebook-controller/templates/sds-deployment.yaml @@ -39,7 +39,7 @@ spec: {{- with .Values.sdsServer.command }} {{- toYaml . | nindent 12 }} {{- end }} - image: "{{ .Values.sdsServer.image }}" + image: {{ .Values.sdsServer.image.repository }}:{{ .Values.sdsServer.image.tag }} imagePullPolicy: IfNotPresent name: sds-server readinessProbe: diff --git a/charts/tfy-notebook-controller/values.yaml b/charts/tfy-notebook-controller/values.yaml index 19f2f464..5f81c40a 100644 --- a/charts/tfy-notebook-controller/values.yaml +++ b/charts/tfy-notebook-controller/values.yaml @@ -104,8 +104,11 @@ oauth: sdsServer: ## @param sdsServer.replicas Number of replicas of sds server replicas: 2 - ## @param sdsServer.image image for sds-server - image: "tfy.jfrog.io/tfy-images/sds-server:bea4f5dbc0aafad1d3ada37f5a2b22a188318c92" + image: + ## @param sdsServer.image.repository Repository for sds-server + repository: tfy.jfrog.io/tfy-images/sds-server + ## @param sdsServer.image.tag Tag for sds-server + tag: "bea4f5dbc0aafad1d3ada37f5a2b22a188318c92" ## @param sdsServer.affinity [object] Node affinity for sds-server affinity: {} ## @param sdsServer.imagePullSecrets [array] Image pull credentials for sds-server