2018-07-03 03:50:38 +00:00
# Home Assistant
This is a helm chart for [Home Assistant ](https://www.home-assistant.io/ )
## TL;DR;
```console
$ helm install stable/home-assistant
```
## Introduction
This code is adopted for [the official home assistant docker image ](https://hub.docker.com/r/homeassistant/home-assistant/ )
## Installing the Chart
To install the chart with the release name `my-release` :
```console
$ helm install --name my-release stable/home-assistant
```
## Uninstalling the Chart
To uninstall/delete the `my-release` deployment:
```console
$ helm delete my-release --purge
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
## Configuration
The following tables lists the configurable parameters of the Sentry chart and their default values.
| Parameter | Description | Default |
|----------------------------|-------------------------------------|---------------------------------------------------------|
| `image.repository` | Image repository | `homeassistant/home-assistant` |
| `image.tag` | Image tag. Possible values listed [here ](https://hub.docker.com/r/jacobalberty/home-assistant/tags/ ).| `0.72.1` |
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `name` | Default name | `home-assistant` |
| `service.type` | Kubernetes service type for the home-assistant GUI | `ClusterIP` |
| `service.port` | Kubernetes port where the home-assistant GUI is exposed| `8123` |
| `service.annotations` | Service annotations for the home-assistant GUI | `{}` |
| `service.clusterIP` | Cluster IP for the home-assistant GUI | `` |
| `service.externalIPs` | External IPs for the home-assistant GUI | `[]` |
| `service.loadBalancerIP` | Loadbalance IP for the home-assistant GUI | `` |
| `service.loadBalancerSourceRanges` | Loadbalance client IP restriction range for the home-assistant GUI | `[]` |
| `service.nodePort` | nodePort to listen on for the home-assistant GUI | `` |
| `ingress.enabled` | Enables Ingress | `false` |
| `ingress.annotations` | Ingress annotations | `{}` |
| `ingress.path` | Ingress path | `/` |
| `ingress.hosts` | Ingress accepted hostnames | `chart-example.local` |
| `ingress.tls` | Ingress TLS configuration | `[]` |
| `persistence.enabled` | Use persistent volume to store data | `true` |
| `persistence.size` | Size of persistent volume claim | `5Gi` |
| `persistence.existingClaim` | Use an existing PVC to persist data | `nil` |
| `persistence.storageClass` | Type of persistent volume claim | `-` |
| `persistence.accessMode` | Persistence access modes | `ReadWriteMany` |
| `extraEnv` | Extra ENV vars to pass to the home-assistant container | `{}` |
| `mqttService.enabled` | Enable the mqtt service port for home-assistant | `false` |
| `mqttService.type` | Kubernetes service type for the mqtt service | `NodePort` |
| `mqttService.port` | Kubernetes port where the mqtt service is exposed| `1883` |
| `mqttService.annotations` | Service annotations for the mqtt service | `{}` |
| `mqttService.clusterIP` | Cluster IP for the mqtt service | `` |
| `mqttService.externalIPs` | External IPs for the mqtt service | `[]` |
| `mqttService.loadBalancerIP` | Loadbalance IP for the mqtt service | `` |
| `mqttService.loadBalancerSourceRanges` | Loadbalance client IP restriction range for the mqtt service | `[]` |
| `mqttService.nodePort` | nodePort to listen on for the mqtt service | `` |
2018-07-03 03:55:25 +00:00
| `configurator.enabled` | Enable the optional [configuration UI ](https://github.com/danielperna84/hass-configurator ) | `false` |
2018-07-03 03:50:38 +00:00
| `configurator.name` | Default name for the configurator UI | `configurator` |
| `configurator.image.repository` | Image repository | `billimek/hass-configurator-docker` |
| `configurator.image.tag` | Image tag | `x86_64-0.3.0` |
| `configurator.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `configurator.hassApiUrl` | Home Assistant API URL (e.g. 'http://home-assistant:8123/api/') - will auto-configure to proper URL if not set | ``|
| `configurator.hassApiPassword` | Home Assistant API Password | `` |
| `configurator.basepath` | Base path of the home assistant configuration files | `/config` |
| `configurator.enforceBasepath` | If set to true, will prevent navigation to other directories in the configurator UI | `true` |
| `configurator.credentials` | If set, will require basic auth to access the configurator UI using the format 'username:password' | `` |
| `configurator.extraEnv` | Extra ENV vars to pass to the configuration UI | `{}` |
| `configurator.ingress.enabled` | Enables Ingress for the configurator UI | `false` |
| `configurator.ingress.annotations` | Ingress annotations for the configurator UI | `{}` |
| `configurator.ingress.hosts` | Ingress accepted hostnames for the configurator UI | `chart-example.local` |
| `configurator.ingress.tls` | Ingress TLS configuration for the configurator UI | `[]` |
| `configurator.strategy.type` | hass-configurator Deployment Strategy type | `` |
| `configurator.tolerations` | Toleration labels for pod assignment for the configurator UI | `[]` |
| `configurator.nodeSelector` | Node labels for pod assignment for the configurator UI | `{}` |
| `configurator.schedulerName` | Use an alternate scheduler, e.g. "stork" for the configurator UI | `` |
| `configurator.podAnnotations` | Affinity settings for pod assignment for the configurator UI | `{}` |
| `configurator.replicaCount` | Number of replicas for the configurator UI | `1` |
| `configurator.resources` | CPU/Memory resource requests/limits for the configurator UI | `{}` |
| `configurator.securityContext` | Security context to be added to hass-configurator pods for the configurator UI | `{}` |
| `configurator.service.type` | Kubernetes service type for the configurator UI | `ClusterIP` |
| `configurator.service.port` | Kubernetes port where the configurator UI is exposed| `3218` |
| `configurator.service.nodePort` | nodePort to listen on for the configurator UI | `` |
| `configurator.service.annotations` | Service annotations for the configurator UI | `{}` |
| `configurator.service.labels` | Service labels to use for the configurator UI | `{}` |
| `configurator.service.clusterIP` | Cluster IP for the configurator UI | `` |
| `configurator.service.externalIPs` | External IPs for the configurator UI | `[]` |
| `configurator.service.loadBalancerIP` | Loadbalance IP for the configurator UI | `` |
| `configurator.service.loadBalancerSourceRanges` | Loadbalance client IP restriction range for the configurator UI | `[]` |
| `resources` | CPU/Memory resource requests/limits or the home-assistant GUI | `{}` |
| `nodeSelector` | Node labels for pod assignment or the home-assistant GUI | `{}` |
| `tolerations` | Toleration labels for pod assignment or the home-assistant GUI | `[]` |
| `affinity` | Affinity settings for pod assignment or the home-assistant GUI | `{}` |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install` . For example,
```console
helm install --name my-release \
--set configurator.hassApiPassword="$HASS_API_PASSWORD" \
stable/home-assistant
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,
```console
helm install --name my-release -f values.yaml stable/home-assistant
```
Read through the [values.yaml ](values.yaml ) file. It has several commented out suggested values.
2018-07-03 03:55:25 +00:00
## Regarding configuring home assistnat
Much of the home assistant configuration occurs inside the various files persisted to the `/config` directory. This will require external access to the persistant storage location where the home assistant configuration data is stored.
Because this may be a limitation, the [Home Assistant Configurator UI ](https://github.com/danielperna84/hass-configurator ) is added to the chart as an option to provide a webUI for editing the various configuration files