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 <../../index.html>`__. Installing the Chart ~~~~~~~~~~~~~~~~~~~~ To install the chart with the release name ``my-release``: .. code-block:: bash :substitutions: helm install my-release ./enterprise-steam-|version|.tgz Alternatively, a YAML file that specifies the values can be provided while installing the chart. .. code-block:: bash :substitutions: helm install my-release -f values.yaml ./enterprise-steam-|version|.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: .. code-block:: bash :substitutions: 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: .. code-block:: bash :substitutions: helm install my-release ./enterprise-steam-1.7.3.tgz \ --namespace h2o Set custom Enterprise Steam docker image name and tag: .. code-block:: bash :substitutions: 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: .. code-block:: bash :substitutions: helm install my-release ./enterprise-steam-1.7.3.tgz \ --set persistentVolume.size=256Gi Set custom Enterprise Steam resources: .. code-block:: bash :substitutions: 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: .. code-block:: bash :substitutions: 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 :ref:`login` section for more information. Values ~~~~~~ This is the list of all available values and their description and default values. .. code-block:: | 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. |