Kubernetes Helm installation

Enterprise Steam can be installed into the Kubernetes environment where it can manage Driverless AI. Provided Helm charts automates the installation.

Requirements

  • Kubernetes 1.10+

  • Helm 2.11+

  • PV provisioner support in the underlying infrastructure

Downloading the chart

Latest version of the chart is always available on the Enterprise Steam download page.

Installing the Chart

To install the chart with the release name my-release:

helm install my-release ./enterprise-steam-1.7.4.tgz

Alternatively, a YAML file that specifies the values can be provided while installing the chart.

helm install my-release -f values.yaml ./enterprise-steam-1.7.4.tgz

The command deploys Enterprise Steam on the Kubernetes cluster in the default configuration. The Values section lists the values that can be configured during installation.

Uninstalling the Chart

To uninstall/delete the my-release deployment:

helm delete my-release

Common configuration

Here is a list of common configurations. Feel free to combine them and see the full list of values below.

Install Enterprise Steam into h2o namespace:

helm install my-release ./enterprise-steam-1.7.3.tgz \
  --namespace h2o

Set custom Enterprise Steam docker image name and tag:

helm install my-release ./enterprise-steam-1.7.3.tgz \
  --set image.repository=myrepo/enterprise-steam \
  --set image.tag=1.7.3

Set custom Enterprise Steam storage:

helm install my-release ./enterprise-steam-1.7.3.tgz \
  --set persistentVolume.size=256Gi

Set custom Enterprise Steam resources:

helm install my-release ./enterprise-steam-1.7.3.tgz \
  --set resources={"limits":{"cpu":4,"memory":"32Gi"},"requests":{"cpu":4,"memory":"32Gi"}}

Spawn a Load Balancer for Enterprise Steam:

helm install my-release ./enterprise-steam-1.7.3.tgz \
  --set service.type=LoadBalancer

After installation

Follow the instructions listed after you run helm install. Continue with the Logging-in section for more information.

Values

This is the list of all available values and their description and default values.

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | Deployment affinity. |
| fullnameOverride | string | `""` | If you need override the fully qualified app name. |
| image.pullPolicy | string | `"IfNotPresent"` | Docker image pull policy. |
| image.repository | string | `"h2oai/enterprise-steam"` | Application Docker repository. |
| image.tag | string | `""` | Application Docker tag / version. Defaults to the chart appVersion. |
| ingress.annotations | object | `{}` | Ingress annotations. |
| ingress.enabled | bool | `false` | Ingress enabled. |
| ingress.hosts | list | `[{"host":"enterprise-steam.cluster.local","paths":["/"]}]` | Set Ingress host and paths. |
| ingress.tls | list | `[]` | Ingress TLS setting. Optionally enable TLS for Ingress. |
| nameOverride | string | `""` | If you need to override the name of the chart from 'enterprise-steam' to something else. |
| nodeSelector | object | `{}` | Deployment node selector. |
| persistentVolume.accessModes | list | `["ReadWriteOnce"]` | PersistentVolume access modes. Must match those of existing PV or dynamic provisioner. |
| persistentVolume.annotations | object | `{}` | PersistentVolumeClaim annotations. |
| persistentVolume.existingClaim | string | `""` | Set to use an existing PersistentVolumeClaim. If left empty, a new PersistentVolumeClaim will be created. |
| persistentVolume.size | string | `"64Gi"` | PersistentVolume Size. |
| persistentVolume.storageClassName | string | `""` | StorageClass name. If left empty, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS & OpenStack). |
| podAnnotations | object | `{}` | Deployment Pod annotations. |
| podSecurityContext | object | `{}` | Pod security context. |
| replicaCount | int | `1` | Number of replicas for Deployment. |
| resources | object | `{"limits":{"cpu":2,"memory":"8Gi"},"requests":{"cpu":2,"memory":"8Gi"}}` | Resources requested for Enterprise Steam Pod. Please adjust them as you like. |
| securityContext | object | `{}` | Deployment security context. |
| service.annotations | object | `{}` | Service annotations. Includes example for use with LoadBalancer service type. |
| service.loadBalancerIP | string | `""` | LoadBalancer IP. Ignored if the type is not LoadBalancer or if the IP is empty string. |
| service.name | string | `""` | Service name is user-configurable for maximum service discovery flexibility. Leave empty for default Service name. |
| service.port | int | `9555` | Service port. |
| service.type | string | `"ClusterIP"` | Service type. |
| serviceAccount.annotations | object | `{}` | Annotations to add to the created ServiceAccount. |
| serviceAccount.create | bool | `true` | Specifies whether a service account should be created. If you choose to provide an existing ServiceAccount make sure it has all necessary roles. |
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated. |
| tolerations | list | `[]` | Deployment tolerations. |