Helm Chart Configuration¶
When installing Determined on Kubernetes
via Helm, the deployment should be configured by editing the
values.yaml
and Chart.yaml
files in the Determined
Helm Chart
.
Chart.yaml
Settings¶
appVersion
: Configures which version of Determined to install. Users can specify a release version (e.g.,0.13.0
) or specify any commit hash from the upstream Determined repo (e.g.,b13461ed06f2fad339e179af8028d4575db71a81
). Users are encouraged to use a released version.
Note
If using a non-release branch of the Determined repository,
appVersion
is going to be set to X.Y.Z.dev0
. This is not an
official release version and deploying this version result in a
ImagePullBackOff
error. Users should remove .dev0
to get the
latest released version, or they can specify a specific commit hash
instead.
values.yaml
Settings¶
masterPort
: The port at which the Determined master listens for connections on. (Required)useNodePortForMaster
: When set to false (default), a LoadBalancer service is deployed to make the Determined master reachable from outside the cluster. When set to true, the master will instead be exposed behind a NodePort service. When using a NodePort service users will typically have to configure an Ingress to make the Determined master reachable from outside the cluster. NodePort service is recommended when configuring TLS termination in a load-balancer.tlsSecret
: enables TLS encryption for all communication with the Determined master (TLS termination is performed in the Determined master). This includes communication between the Determined master and the task containers it launches, but does not include communication between the task containers (distributed training). The specified Secret of type tls must already exist in the same namespace in which Determined is being installed.db
: Specifies the configuration of the database.name
: The database name to use. (Required)user
: The database user to use when logging in the database. (Required)password
: The password to use when logging in the database. (Required)port
: The database port to use. (Required)hostAddress
: Optional configuration to indicate the address of a user provisioned database If configured, the Determined helm chart will not deploy a database.storageSize
: Only used whenhostAddress
is left blank. Configures the size of the PersistentVolumeClaim for the Determined deployed database.cpuRequest
: The CPU requirements for the Determined database.memRequest
: The memory requirements for the Determined database.useNodePortForDB
: Optional configuration that configures whether ClusterIP or NodePort service type is used for the Determined database. By default ClusterIP is used.storageClassName
: Optional configuration to indicate StorageClass that should be used by the PersistentVolumeClaim for the Determined deployed database. This can be left blank if a default storage class is specified in the cluster. If dynamic provisioning of PersistentVolumes is disabled, users must manually create a PersistentVolume that will match the PersistentVolumeClaim.
checkpointStorage
: Specifies where model checkpoints will be stored. This can be overridden on a per-experiment basis in the Experiment Configuration. A checkpoint contains the architecture and weights of the model being trained. Determined currently supports three kinds of checkpoint storage,gcs
,s3
, andshared_fs
, identified by thetype
subfield.type: gcs
: Checkpoints are stored on Google Cloud Storage (GCS). Authentication is done using GCP’s “Application Default Credentials” approach. When using Determined inside Google Kubernetes Engine (GCE), the simplest approach is to ensure that the nodes used by Determined are running in a service account that has the “Storage Object Admin” role on the GCS bucket being used for checkpoints. As an alternative (or when running outside of GKE), you can add the appropriate service account credentials to your container (e.g., via a bind-mount), and then set theGOOGLE_APPLICATION_CREDENTIALS
environment variable to the container path where the credentials are located. See Environment Variables for more information on how to set environment variables in trial environments.bucket
: The GCS bucket name to use.
type: s3
: Checkpoints are stored in Amazon S3.bucket
: The S3 bucket name to use.accessKey
: The AWS access key to use.secretKey
: The AWS secret key to use.endpointUrl
: The optional endpoint to use for S3 clones, e.g., http://127.0.0.1:8080/.
type: shared_fs
: Checkpoints are written to ahostPath Volume
. Users are strongly discouraged from usingshared_fs
for storage beyond initial testing as most Kubernetes cluster nodes do not have a shared file system.hostPath
: The file system path on each node to use. This directory will be mounted to/determined_shared_fs
inside the trial pod.
When an experiment finishes, the system will optionally delete some checkpoints to reclaim space. The
saveExperimentBest
,saveTrialBest
andsaveTrialLatest
parameters specify which checkpoints to save. See Checkpoint Garbage Collection for more details.
maxSlotsPerPod
: Specifies number of GPUs there are per machine. Determined uses this information when scheduling multi-GPU tasks. Each multi-GPU (distributed training) task will be scheduled as a set ofslotsPerTask / maxSlotsPerPod
separate pods, with each pod assigned up tomaxSlotsPerPod
GPUs. Distibuted tasks with sizes that are not divisible bymaxSlotsPerPod
are never scheduled. If you have a cluster of different size nodes, set themaxSlotsPerPod
to greatest common divisor of all the sizes. For example, if you have some nodes with 4 GPUs and other nodes with 8 GPUs, setmaxSlotsPerPod
to4
so that all distributed experiments will launch with 4 GPUs per pod (with two pods on 8-GPU nodes). (Required)masterCpuRequest
: The CPU requirements for the Determined master.masterMemRequest
: The memory requirements for the Determined master.taskContainerDefaults
: Specifies Docker defaults for all task containers. A task represents a single schedulable unit, such as a trial, command, or tensorboard.networkMode
: The Docker network to use for the Determined task containers. If this is set to “host”, Docker host-mode networking will be used instead. Defaults to “bridge”.dtrainNetworkInterface
: The network interface to use during Distributed Training. If not set, Determined automatically determines the network interface. When training a model with multiple machines, the host network interface used by each machine must have the same interface name across machines. This is usually determined automatically, but there may be issues if there is an interface name common to all machines but it is not routable between machines. Determined already filters out common interfaces likelo
anddocker0
, but agent machines may have others. If interface detection is not finding the appropriate interface, thedtrainNetworkInterface
option can be used to set it explicitly (e.g.,eth11
).ncclPortRange
: The range of ports that nccl is permitted to use during distributed training. A valid port range is in the format ofMIN:MAX
.glooPortRange
: The range of ports that gloo is permitted to use during distributed training. A valid port range is in the format ofMIN:MAX
.forcePullImage
: Defines the default policy for forcibly pulling images from the docker registry and bypassing the docker cache. If a pull policy is specified in the experiment config this default is overriden. Please note that as of November 1st, 2020 unauthenticated users will be capped at 100 pulls from Docker per 6 hours. Defaults tofalse
.cpuPodSpec
: Sets the default pod spec for all non-gpu tasks. See Specifying Custom Pod Specs for details.gpuPodSpec
: Sets the default pod spec for all ngpu tasks. See Specifying Custom Pod Specs for details.cpuImage
: Sets the default docker image for all non-gpu tasks. If a docker image is specified in the experiment config this default is overriden. Defaults to:determinedai/environments:py-3.6.9-pytorch-1.4-tf-1.15-cpu-0.8.0
.gpuImage
: Sets the default docker image for all gpu tasks. If a docker image is specified in the experiment config this default is overriden. Defaults to:determinedai/environments:cuda-10.0-pytorch-1.4-tf-1.15-gpu-0.8.0
.
enterpriseEdition
: Specifies whether to use Determined enterprise edition.imagePullSecretName
: Specifies the image pull secret for pulling the Determined master image. Required when using the enterprise edition.telemetry
: Specifies whether we collect anonymous information about the usage of Determined.enabled
: Whether collection is enabled. Defaults totrue
.
defaultPassword
: Specifies a string containing the default password for the admin and determined user accounts.logging
: Configures where trial logs are stored. This section takes the same shape as the logging configuration in the cluster configuration, except that names are changed to camel case to match Helm conventions (e.g.,skip_verify
would beskipVerify
here).logging.security.tls.certificate
: Contains the contents of an expected TLS certificate for the Elasticsearch cluster, rather than a path as it does in the cluster configuration. This can be conveniently set at the command line usinghelm install --set-file logging.security.tls.certificate=<path>
.