{ "title": "Chart Values", "type": "object", "properties": { "global": { "type": "object", "properties": { "imageRegistry": { "type": "string", "description": "Global Docker image registry", "default": "" }, "imagePullSecrets": { "type": "array", "description": "Global Docker registry secret names as an array", "default": [], "items": {} }, "storageClass": { "type": "string", "description": "Global StorageClass for Persistent Volume(s)", "default": "" } } }, "kubeVersion": { "type": "string", "description": "Override Kubernetes version", "default": "" }, "nameOverride": { "type": "string", "description": "String to partially override common.names.fullname", "default": "" }, "fullnameOverride": { "type": "string", "description": "String to fully override common.names.fullname", "default": "" }, "commonLabels": { "type": "object", "description": "Labels to add to all deployed objects", "default": {} }, "commonAnnotations": { "type": "object", "description": "Annotations to add to all deployed objects", "default": {} }, "clusterDomain": { "type": "string", "description": "Kubernetes cluster domain name", "default": "cluster.local" }, "extraDeploy": { "type": "array", "description": "Array of extra objects to deploy with the release", "default": [], "items": {} }, "diagnosticMode": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable diagnostic mode (all probes will be disabled and the command will be overridden)", "default": false }, "command": { "type": "array", "description": "Command to override all containers in the deployments/statefulsets", "default": [ "sleep" ], "items": { "type": "string" } }, "args": { "type": "array", "description": "Args to override all containers in the deployments/statefulsets", "default": [ "infinity" ], "items": { "type": "string" } } } }, "image": { "type": "object", "properties": { "registry": { "type": "string", "description": "Deepspeed image registry", "default": "docker.io" }, "repository": { "type": "string", "description": "Deepspeed image repository", "default": "bitnami/deepspeed" }, "tag": { "type": "string", "description": "Deepspeed image tag (immutable tags are recommended)", "default": "0.10.0-debian-11-r17" }, "digest": { "type": "string", "description": "Deepspeed image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag", "default": "" }, "pullPolicy": { "type": "string", "description": "Deepspeed image pull policy", "default": "IfNotPresent" }, "pullSecrets": { "type": "array", "description": "Specify docker-registry secret names as an array", "default": [], "items": {} } } }, "source": { "type": "object", "properties": { "type": { "type": "string", "description": "Where the source comes from: Possible values: configmap, git, custom", "default": "configmap" }, "launchCommand": { "type": "string", "description": "deepspeed command to run over the project", "default": "" }, "configMap": { "type": "object", "description": "List of files of the project", "default": {} }, "existingConfigMap": { "type": "string", "description": "Name of a configmap containing the files of the project", "default": "" }, "git": { "type": "object", "properties": { "repository": { "type": "string", "description": "Repository that holds the files", "default": "" }, "revision": { "type": "string", "description": "Revision from the repository to checkout", "default": "" }, "extraVolumeMounts": { "type": "array", "description": "Add extra volume mounts for the Git container", "default": [], "items": {} } } } } }, "config": { "type": "object", "properties": { "defaultHostFile": { "type": "string", "description": "Host file generated by default (only edit if you know what you are doing)", "default": "{{- $workers := $.Values.worker.replicaCount | int }}\n{{- range $i, $e := until $workers }}\n{{ include \"deepspeed.v0.worker.fullname\" $ }}-{{ $i }}.{{ printf \"%s-headless\" (include \"deepspeed.v0.worker.fullname\" $) }} slots={{ $.Values.worker.slotsPerNode }}\n{{- end }}\n" }, "overrideHostFile": { "type": "string", "description": "Override default host file with the content in this value", "default": "" }, "existingHostFileConfigMap": { "type": "string", "description": "Name of a ConfigMap containing the hostfile", "default": "" }, "defaultSSHClient": { "type": "string", "description": "Default SSH client configuration for the client node (only edit if you know what you are doing)", "default": "{{- $workers := $.Values.worker.replicaCount | int }}\n{{- range $i, $e := until $workers }}\nHost {{ include \"deepspeed.v0.worker.fullname\" $ }}-{{ $i }}.{{ printf \"%s-headless\" (include \"deepspeed.v0.worker.fullname\" $) }}\n Port {{ $.Values.worker.containerPorts.ssh }}\n IdentityFile /bitnami/ssh/client-private-key/id_rsa\n StrictHostKeyChecking no\n{{- end }}\n" }, "overrideSSHClient": { "type": "string", "description": "Override default SSH cliient configuration with the content in this value", "default": "" }, "existingSSHClientConfigMap": { "type": "string", "description": "Name of a ConfigMap containing the SSH client configuration", "default": "" }, "defaultSSHServer": { "type": "string", "description": "Default SSH Server configuration for the worker nodes (only edit if you know what you are doing)", "default": "Port {{ .Values.worker.containerPorts.ssh }}\nPasswordAuthentication no\nUsePAM no\nPermitUserEnvironment yes\n" }, "overrideSSHServer": { "type": "string", "description": "Overidde SSH Server configuration with the content in this value", "default": "" }, "existingSSHServerConfigMap": { "type": "string", "description": "Name of a ConfigMap with with the SSH Server configuration", "default": "" }, "sshPrivateKey": { "type": "string", "description": "Private key for the client node to connect to the worker nodes", "default": "" }, "existingSSHKeySecret": { "type": "string", "description": "Name of a secret containing the ssh private key", "default": "" } } }, "client": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable Client deployment", "default": true }, "useJob": { "type": "boolean", "description": "Deploy as job", "default": false }, "backoffLimit": { "type": "number", "description": "set backoff limit of the job", "default": 10 }, "extraEnvVars": { "type": "array", "description": "Array with extra environment variables to add to client nodes", "default": [], "items": {} }, "extraEnvVarsCM": { "type": "string", "description": "Name of existing ConfigMap containing extra env vars for client nodes", "default": "" }, "extraEnvVarsSecret": { "type": "string", "description": "Name of existing Secret containing extra env vars for client nodes", "default": "" }, "annotations": { "type": "object", "description": "Annotations for the client deployment", "default": {} }, "command": { "type": "array", "description": "Override default container command (useful when using custom images)", "default": [], "items": {} }, "args": { "type": "array", "description": "Override default container args (useful when using custom images)", "default": [], "items": {} }, "terminationGracePeriodSeconds": { "type": "string", "description": "Client termination grace period (in seconds)", "default": "" }, "livenessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable livenessProbe on Client nodes", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for livenessProbe", "default": 5 }, "periodSeconds": { "type": "number", "description": "Period seconds for livenessProbe", "default": 30 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for livenessProbe", "default": 20 }, "failureThreshold": { "type": "number", "description": "Failure threshold for livenessProbe", "default": 5 }, "successThreshold": { "type": "number", "description": "Success threshold for livenessProbe", "default": 1 } } }, "readinessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable readinessProbe on Client nodes", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for readinessProbe", "default": 5 }, "periodSeconds": { "type": "number", "description": "Period seconds for readinessProbe", "default": 30 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for readinessProbe", "default": 20 }, "failureThreshold": { "type": "number", "description": "Failure threshold for readinessProbe", "default": 5 }, "successThreshold": { "type": "number", "description": "Success threshold for readinessProbe", "default": 1 } } }, "startupProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable startupProbe on Client containers", "default": false }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for startupProbe", "default": 5 }, "periodSeconds": { "type": "number", "description": "Period seconds for startupProbe", "default": 30 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for startupProbe", "default": 5 }, "failureThreshold": { "type": "number", "description": "Failure threshold for startupProbe", "default": 5 }, "successThreshold": { "type": "number", "description": "Success threshold for startupProbe", "default": 1 } } }, "customLivenessProbe": { "type": "object", "description": "Custom livenessProbe that overrides the default one", "default": {} }, "customReadinessProbe": { "type": "object", "description": "Custom readinessProbe that overrides the default one", "default": {} }, "customStartupProbe": { "type": "object", "description": "Custom startupProbe that overrides the default one", "default": {} }, "resources": { "type": "object", "properties": { "limits": { "type": "object", "description": "The resources limits for the client containers", "default": {} }, "requests": { "type": "object", "description": "The requested resources for the client containers", "default": {} } } }, "podSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled Client pods' Security Context", "default": true }, "fsGroup": { "type": "number", "description": "Set Client pod's Security Context fsGroup", "default": 1001 }, "seccompProfile": { "type": "object", "properties": { "type": { "type": "string", "description": "Set Client container's Security Context seccomp profile", "default": "RuntimeDefault" } } } } }, "containerSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled Client containers' Security Context", "default": true }, "runAsUser": { "type": "number", "description": "Set Client containers' Security Context runAsUser", "default": 1001 }, "runAsGroup": { "type": "number", "description": "Set Client containers' Security Context runAsGroup", "default": 1001 }, "runAsNonRoot": { "type": "boolean", "description": "Set Client containers' Security Context runAsNonRoot", "default": true }, "readOnlyRootFilesystem": { "type": "boolean", "description": "Set Client containers' Security Context runAsNonRoot", "default": true }, "allowPrivilegeEscalation": { "type": "boolean", "description": "Set Client container's privilege escalation", "default": false }, "capabilities": { "type": "object", "properties": { "drop": { "type": "array", "description": "Set Client container's Security Context runAsNonRoot", "default": [ "ALL" ], "items": { "type": "string" } } } } } }, "lifecycleHooks": { "type": "object", "description": "for the client container(s) to automate configuration before or after startup", "default": {} }, "runtimeClassName": { "type": "string", "description": "Name of the runtime class to be used by pod(s)", "default": "" }, "hostAliases": { "type": "array", "description": "client pods host aliases", "default": [], "items": {} }, "labels": { "type": "object", "description": "Extra labels for the client deployment", "default": {} }, "podLabels": { "type": "object", "description": "Extra labels for client pods", "default": {} }, "podAnnotations": { "type": "object", "description": "Annotations for client pods", "default": {} }, "podAffinityPreset": { "type": "string", "description": "Pod affinity preset. Ignored if `client.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "podAntiAffinityPreset": { "type": "string", "description": "Pod anti-affinity preset. Ignored if `client.affinity` is set. Allowed values: `soft` or `hard`", "default": "soft" }, "nodeAffinityPreset": { "type": "object", "properties": { "type": { "type": "string", "description": "Node affinity preset type. Ignored if `client.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "key": { "type": "string", "description": "Node label key to match. Ignored if `client.affinity` is set", "default": "" }, "values": { "type": "array", "description": "Node label values to match. Ignored if `client.affinity` is set", "default": [], "items": {} } } }, "affinity": { "type": "object", "description": "Affinity for Client pods assignment", "default": {} }, "nodeSelector": { "type": "object", "description": "Node labels for Client pods assignment", "default": {} }, "tolerations": { "type": "array", "description": "Tolerations for Client pods assignment", "default": [], "items": {} }, "topologySpreadConstraints": { "type": "array", "description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains", "default": [], "items": {} }, "priorityClassName": { "type": "string", "description": "Client pods' priorityClassName", "default": "" }, "schedulerName": { "type": "string", "description": "Kubernetes pod scheduler registry", "default": "" }, "updateStrategy": { "type": "object", "properties": { "type": { "type": "string", "description": "Client statefulset strategy type", "default": "RollingUpdate" }, "rollingUpdate": { "type": "object", "description": "Client statefulset rolling update configuration parameters", "default": {} } } }, "extraVolumes": { "type": "array", "description": "Optionally specify extra list of additional volumes for the Client pod(s)", "default": [], "items": {} }, "extraVolumeMounts": { "type": "array", "description": "Optionally specify extra list of additional volumeMounts for the Client container(s)", "default": [], "items": {} }, "sidecars": { "type": "array", "description": "Add additional sidecar containers to the Client pod(s)", "default": [], "items": {} }, "enableDefaultInitContainers": { "type": "boolean", "description": "Deploy default init containers", "default": true }, "initContainers": { "type": "array", "description": "Add additional init containers to the Client pod(s)", "default": [], "items": {} }, "networkPolicy": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable creation of NetworkPolicy resources", "default": false }, "extraIngress": { "type": "array", "description": "Add extra ingress rules to the NetworkPolicy", "default": [], "items": {} }, "extraEgress": { "type": "array", "description": "Add extra ingress rules to the NetworkPolicy", "default": [], "items": {} } } }, "serviceAccount": { "type": "object", "properties": { "create": { "type": "boolean", "description": "Enable creation of ServiceAccount for Client pods", "default": false }, "name": { "type": "string", "description": "The name of the ServiceAccount to use", "default": "" }, "automountServiceAccountToken": { "type": "boolean", "description": "Allows auto mount of ServiceAccountToken on the serviceAccount created", "default": false }, "annotations": { "type": "object", "description": "Additional custom annotations for the ServiceAccount", "default": {} } } }, "persistence": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Use a PVC to persist data", "default": false }, "storageClass": { "type": "string", "description": "discourse & sidekiq data Persistent Volume Storage Class", "default": "" }, "existingClaim": { "type": "string", "description": "Use a existing PVC which must be created manually before bound", "default": "" }, "mountPath": { "type": "string", "description": "Path to mount the volume at", "default": "/bitnami/deepspeed/data" }, "accessModes": { "type": "array", "description": "Persistent Volume Access Mode", "default": [ "ReadWriteOnce" ], "items": { "type": "string" } }, "dataSource": { "type": "object", "description": "Custom PVC data source", "default": {} }, "selector": { "type": "object", "description": "Selector to match an existing Persistent Volume for the client data PVC", "default": {} }, "size": { "type": "string", "description": "Size of data volume", "default": "8Gi" }, "labels": { "type": "object", "description": "Persistent Volume labels", "default": {} }, "annotations": { "type": "object", "description": "Persistent Volume annotations", "default": {} } } } } }, "worker": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable Worker deployment", "default": true }, "slotsPerNode": { "type": "number", "description": "Number of slots available per worker node", "default": 1 }, "extraEnvVars": { "type": "array", "description": "Array with extra environment variables to add to client nodes", "default": [], "items": {} }, "extraEnvVarsCM": { "type": "string", "description": "Name of existing ConfigMap containing extra env vars for client nodes", "default": "" }, "extraEnvVarsSecret": { "type": "string", "description": "Name of existing Secret containing extra env vars for client nodes", "default": "" }, "command": { "type": "array", "description": "Override default container command (useful when using custom images)", "default": [], "items": {} }, "args": { "type": "array", "description": "Override default container args (useful when using custom images)", "default": [], "items": {} }, "replicaCount": { "type": "number", "description": "Number of Worker replicas to deploy", "default": 3 }, "terminationGracePeriodSeconds": { "type": "string", "description": "Worker termination grace period (in seconds)", "default": "" }, "containerPorts": { "type": "object", "properties": { "ssh": { "type": "number", "description": "SSH port for Worker", "default": 2222 } } }, "livenessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable livenessProbe on Worker nodes", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for livenessProbe", "default": 5 }, "periodSeconds": { "type": "number", "description": "Period seconds for livenessProbe", "default": 30 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for livenessProbe", "default": 5 }, "failureThreshold": { "type": "number", "description": "Failure threshold for livenessProbe", "default": 5 }, "successThreshold": { "type": "number", "description": "Success threshold for livenessProbe", "default": 1 } } }, "readinessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable readinessProbe on Worker nodes", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for readinessProbe", "default": 5 }, "periodSeconds": { "type": "number", "description": "Period seconds for readinessProbe", "default": 30 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for readinessProbe", "default": 5 }, "failureThreshold": { "type": "number", "description": "Failure threshold for readinessProbe", "default": 5 }, "successThreshold": { "type": "number", "description": "Success threshold for readinessProbe", "default": 1 } } }, "startupProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable startupProbe on Worker containers", "default": false }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for startupProbe", "default": 5 }, "periodSeconds": { "type": "number", "description": "Period seconds for startupProbe", "default": 30 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for startupProbe", "default": 5 }, "failureThreshold": { "type": "number", "description": "Failure threshold for startupProbe", "default": 5 }, "successThreshold": { "type": "number", "description": "Success threshold for startupProbe", "default": 1 } } }, "customLivenessProbe": { "type": "object", "description": "Custom livenessProbe that overrides the default one", "default": {} }, "customReadinessProbe": { "type": "object", "description": "Custom readinessProbe that overrides the default one", "default": {} }, "customStartupProbe": { "type": "object", "description": "Custom startupProbe that overrides the default one", "default": {} }, "resources": { "type": "object", "properties": { "limits": { "type": "object", "description": "The resources limits for the client containers", "default": {} }, "requests": { "type": "object", "description": "The requested resources for the client containers", "default": {} } } }, "podSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled Worker pods' Security Context", "default": true }, "fsGroup": { "type": "number", "description": "Set Worker pod's Security Context fsGroup", "default": 1001 }, "seccompProfile": { "type": "object", "properties": { "type": { "type": "string", "description": "Set Worker container's Security Context seccomp profile", "default": "RuntimeDefault" } } } } }, "containerSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled Worker containers' Security Context", "default": true }, "runAsUser": { "type": "number", "description": "Set Worker containers' Security Context runAsUser", "default": 1001 }, "runAsGroup": { "type": "number", "description": "Set Worker containers' Security Context runAsGroup", "default": 1001 }, "runAsNonRoot": { "type": "boolean", "description": "Set Worker containers' Security Context runAsNonRoot", "default": true }, "readOnlyRootFilesystem": { "type": "boolean", "description": "Set Worker containers' Security Context runAsNonRoot", "default": true }, "allowPrivilegeEscalation": { "type": "boolean", "description": "Set Worker container's privilege escalation", "default": false }, "capabilities": { "type": "object", "properties": { "drop": { "type": "array", "description": "Set Worker container's Security Context runAsNonRoot", "default": [ "ALL" ], "items": { "type": "string" } } } } } }, "lifecycleHooks": { "type": "object", "description": "for the client container(s) to automate configuration before or after startup", "default": {} }, "runtimeClassName": { "type": "string", "description": "Name of the runtime class to be used by pod(s)", "default": "" }, "hostAliases": { "type": "array", "description": "client pods host aliases", "default": [], "items": {} }, "labels": { "type": "object", "description": "Labels for the worker deployment", "default": {} }, "annotations": { "type": "object", "description": "Annotations for the worker deployment", "default": {} }, "podLabels": { "type": "object", "description": "Extra labels for client pods", "default": {} }, "podAnnotations": { "type": "object", "description": "Annotations for client pods", "default": {} }, "podAffinityPreset": { "type": "string", "description": "Pod affinity preset. Ignored if `client.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "podAntiAffinityPreset": { "type": "string", "description": "Pod anti-affinity preset. Ignored if `client.affinity` is set. Allowed values: `soft` or `hard`", "default": "soft" }, "nodeAffinityPreset": { "type": "object", "properties": { "type": { "type": "string", "description": "Node affinity preset type. Ignored if `client.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "key": { "type": "string", "description": "Node label key to match. Ignored if `client.affinity` is set", "default": "" }, "values": { "type": "array", "description": "Node label values to match. Ignored if `client.affinity` is set", "default": [], "items": {} } } }, "affinity": { "type": "object", "description": "Affinity for Worker pods assignment", "default": {} }, "nodeSelector": { "type": "object", "description": "Node labels for Worker pods assignment", "default": {} }, "tolerations": { "type": "array", "description": "Tolerations for Worker pods assignment", "default": [], "items": {} }, "topologySpreadConstraints": { "type": "array", "description": "Topology Spread Constraints for pod assignment spread across your cluster among failure-domains", "default": [], "items": {} }, "podManagementPolicy": { "type": "string", "description": "Statefulset Pod management policy, it needs to be Parallel to be able to complete the cluster join", "default": "Parallel" }, "priorityClassName": { "type": "string", "description": "Worker pods' priorityClassName", "default": "" }, "schedulerName": { "type": "string", "description": "Kubernetes pod scheduler registry", "default": "" }, "updateStrategy": { "type": "object", "properties": { "type": { "type": "string", "description": "Worker statefulset strategy type", "default": "RollingUpdate" }, "rollingUpdate": { "type": "object", "description": "Worker statefulset rolling update configuration parameters", "default": {} } } }, "extraVolumes": { "type": "array", "description": "Optionally specify extra list of additional volumes for the Worker pod(s)", "default": [], "items": {} }, "extraVolumeMounts": { "type": "array", "description": "Optionally specify extra list of additional volumeMounts for the Worker container(s)", "default": [], "items": {} }, "sidecars": { "type": "array", "description": "Add additional sidecar containers to the Worker pod(s)", "default": [], "items": {} }, "enableDefaultInitContainers": { "type": "boolean", "description": "Deploy default init containers", "default": true }, "initContainers": { "type": "array", "description": "Add additional init containers to the Worker pod(s)", "default": [], "items": {} }, "headlessServiceAnnotations": { "type": "object", "description": "Annotations for the headless service", "default": {} }, "externalAccess": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Create a service per worker node", "default": false }, "service": { "type": "object", "properties": { "type": { "type": "string", "description": "Worker service type", "default": "ClusterIP" }, "loadBalancerIPs": { "type": "array", "description": "Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount", "default": [], "items": {} }, "externalIPs": { "type": "array", "description": "Use distinct service host IPs to configure Kafka external listener when service type is NodePort. Length must be the same as replicaCount", "default": [], "items": {} }, "loadBalancerAnnotations": { "type": "array", "description": "Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount", "default": [], "items": {} }, "publishNotReadyAddresses": { "type": "boolean", "description": "Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready", "default": false }, "ports": { "type": "object", "properties": { "ssh": { "type": "number", "description": "Worker GRPC service port", "default": 22 } } }, "nodePorts": { "type": "array", "description": "Array of node ports used for each Kafka broker. Length must be the same as replicaCount", "default": [], "items": {} }, "sessionAffinityConfig": { "type": "object", "description": "Additional settings for the sessionAffinity", "default": {} }, "sessionAffinity": { "type": "string", "description": "Control where client requests go, to the same pod or round-robin", "default": "None" }, "loadBalancerSourceRanges": { "type": "array", "description": "Worker service Load Balancer sources", "default": [], "items": {} }, "externalTrafficPolicy": { "type": "string", "description": "Worker service external traffic policy", "default": "Cluster" }, "labels": { "type": "object", "description": "Additional custom labels for Worker service", "default": {} }, "annotations": { "type": "object", "description": "Additional custom annotations for Worker service", "default": {} }, "extraPorts": { "type": "array", "description": "Extra ports to expose in the Worker service", "default": [], "items": {} } } } } }, "serviceAccount": { "type": "object", "properties": { "create": { "type": "boolean", "description": "Enable creation of ServiceAccount for Data Coordinator pods", "default": false }, "name": { "type": "string", "description": "The name of the ServiceAccount to use", "default": "" }, "automountServiceAccountToken": { "type": "boolean", "description": "Allows auto mount of ServiceAccountToken on the serviceAccount created", "default": false }, "annotations": { "type": "object", "description": "Additional custom annotations for the ServiceAccount", "default": {} } } }, "networkPolicy": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable creation of NetworkPolicy resources", "default": false }, "allowExternal": { "type": "boolean", "description": "The Policy model to apply", "default": true }, "extraIngress": { "type": "array", "description": "Add extra ingress rules to the NetworkPolicy", "default": [], "items": {} }, "extraEgress": { "type": "array", "description": "Add extra ingress rules to the NetworkPolicy", "default": [], "items": {} } } }, "persistence": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Use a PVC to persist data", "default": false }, "storageClass": { "type": "string", "description": "discourse & sidekiq data Persistent Volume Storage Class", "default": "" }, "existingClaim": { "type": "string", "description": "Use a existing PVC which must be created manually before bound", "default": "" }, "mountPath": { "type": "string", "description": "Path to mount the volume at", "default": "/bitnami/deepspeed/data" }, "accessModes": { "type": "array", "description": "Persistent Volume Access Mode", "default": [ "ReadWriteOnce" ], "items": { "type": "string" } }, "selector": { "type": "object", "description": "Selector to match an existing Persistent Volume for the worker data PVC", "default": {} }, "dataSource": { "type": "object", "description": "Custom PVC data source", "default": {} }, "size": { "type": "string", "description": "Size of data volume", "default": "8Gi" }, "labels": { "type": "object", "description": "Persistent Volume labels", "default": {} }, "annotations": { "type": "object", "description": "Persistent Volume annotations", "default": {} } } } } }, "gitImage": { "type": "object", "properties": { "registry": { "type": "string", "description": "Git image registry", "default": "docker.io" }, "repository": { "type": "string", "description": "Git image repository", "default": "bitnami/git" }, "tag": { "type": "string", "description": "Git image tag (immutable tags are recommended)", "default": "2.41.0-debian-11-r16" }, "digest": { "type": "string", "description": "Git image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag", "default": "" }, "pullPolicy": { "type": "string", "description": "Git image pull policy", "default": "IfNotPresent" }, "pullSecrets": { "type": "array", "description": "Specify docker-registry secret names as an array", "default": [], "items": {} } } }, "volumePermissions": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable init container that changes volume permissions in the data directory", "default": false }, "image": { "type": "object", "properties": { "registry": { "type": "string", "description": "Init container volume-permissions image registry", "default": "docker.io" }, "repository": { "type": "string", "description": "Init container volume-permissions image repository", "default": "bitnami/os-shell" }, "tag": { "type": "string", "description": "Init container volume-permissions image tag (immutable tags are recommended)", "default": "11-debian-11-r16" }, "digest": { "type": "string", "description": "Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag", "default": "" }, "pullPolicy": { "type": "string", "description": "Init container volume-permissions image pull policy", "default": "IfNotPresent" }, "pullSecrets": { "type": "array", "description": "Specify docker-registry secret names as an array", "default": [], "items": {} } } }, "resources": { "type": "object", "properties": { "limits": { "type": "object", "description": "The resources limits for the container", "default": {} }, "requests": { "type": "object", "description": "The requested resources for the container", "default": {} } } } } } } }