charts/charts/esphome
Jeff Billimek bed22d6551
mass-rename of chart repo (#3)
* mass-rename of chart repo

* update all Chart.yaml files to replace references from old repo to new
repo
* update all Chart.yaml files to set apiVersion to v2 where necessary
* update all README.md files to replace references from old repo to new
repo

* fix teslamate dependencies for v2

Signed-off-by: Jeff Billimek <jeff@billimek.com>
2020-08-29 11:22:37 -04:00
..
templates [esphome] Bug fix for extraEnv (#298) 2020-07-29 00:16:51 -04:00
.helmignore [esphome] add chart (#269) 2020-07-07 15:09:55 -04:00
Chart.yaml mass-rename of chart repo (#3) 2020-08-29 11:22:37 -04:00
OWNERS [esphome] add chart (#269) 2020-07-07 15:09:55 -04:00
README.md mass-rename of chart repo (#3) 2020-08-29 11:22:37 -04:00
values.yaml [esphome] add chart (#269) 2020-07-07 15:09:55 -04:00

ESPHome

This is a helm chart for ESPHome

TL;DR;

helm repo add k8s-at-home https://k8s-at-home.com/charts/
helm install k8s-at-home/esphome

Introduction

This code is adapted for the official esphome docker image

Installing the Chart

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

helm install --name my-release k8s-at-home/esphome

Uninstalling the Chart

To uninstall/delete the my-release deployment:

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 ESPHome chart and their default values.

Parameter Description Default
image.repository Image repository esphome/esphome
image.tag Image tag. Possible values listed here. 0.14.5
image.pullPolicy Image pull policy IfNotPresent
image.pullSecrets Secrets to use when pulling the image []
strategyType Specifies the strategy used to replace old Pods by new ones Recreate
probes.liveness.enabled Use the livenessProbe? true
probes.liveness.scheme Specify liveness scheme parameter for the deployment HTTP
probes.liveness.initialDelaySeconds Specify liveness initialDelaySeconds parameter for the deployment 60
probes.liveness.failureThreshold Specify liveness failureThreshold parameter for the deployment 5
probes.liveness.timeoutSeconds Specify liveness timeoutSeconds parameter for the deployment 10
probes.readiness.enabled Use the readinessProbe? true
probes.readiness.scheme Specify readiness scheme parameter for the deployment HTTP
probes.readiness.initialDelaySeconds Specify readiness initialDelaySeconds parameter for the deployment 60
probes.readiness.failureThreshold Specify readiness failureThreshold parameter for the deployment 5
probes.readiness.timeoutSeconds Specify readiness timeoutSeconds parameter for the deployment 10
probes.startup.enabled Use the startupProbe? (new in kubernetes 1.16) false
probes.startup.scheme Specify startup scheme parameter for the deployment HTTP
probes.startup.failureThreshold Specify startup failureThreshold parameter for the deployment 5
probes.startup.periodSeconds Specify startup periodSeconds parameter for the deployment 10
service.type Kubernetes service type for the esphome GUI ClusterIP
service.port Kubernetes port where the esphome GUI is exposed 6052
service.portName Kubernetes port name where the esphome GUI is exposed api
service.additionalPorts Add additional ports exposed by the esphome container integrations. Example homematic needs to expose a proxy port {}
service.annotations Service annotations for the esphome GUI {}
service.clusterIP Cluster IP for the esphom GUI ``
service.externalIPs External IPs for the esphome GUI []
service.loadBalancerIP Loadbalancer IP for the esphome GUI ``
service.loadBalancerSourceRanges Loadbalancer client IP restriction range for the esphome GUI []
service.publishNotReadyAddresses Set to true if the notReadyAddresses should be published false
service.externalTrafficPolicy Loadbalancer externalTrafficPolicy ``
hostNetwork Enable hostNetwork - might be needed for discovery to work  false
service.nodePort nodePort to listen on for the esphome 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.hostPath The path to the config directory on the host, instead of a PVC nil
persistence.storageClass Type of persistent volume claim -
persistence.accessMode Persistence access modes ReadWriteMany
hostMounts Array of host directories to mount; can be used for devices []
hostMounts.name Name of the volume nil
hostMounts.hostPath The path on the host machine nil
hostMounts.mountPath The path at which to mount (optional; assumed same as hostPath) nil
hostMounts.type The type to mount (optional, i.e., Directory) nil
extraEnv Extra ENV vars to pass to the esphome container {}
extraEnvSecrets Extra env vars to pass to the esphome container from k8s secrets - see values.yaml for an example {}
resources CPU/Memory resource requests/limits or the esphome GUI {}
nodeSelector Node labels for pod assignment or the esphome GUI {}
tolerations Toleration labels for pod assignment or the esphome GUI []
affinity Affinity settings for pod assignment or the esphome GUI {}
podAnnotations Key-value pairs to add as pod annotations {}
extraVolumes Any extra volumes to define for the pod {}
extraVolumeMounts Any extra volumes mounts to define for each container of the pod {}

Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,

helm install --name my-release \
  --set image.tag=latest \
    k8s-at-home/esphome

Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example,

helm install --name my-release -f values.yaml k8s-at-home/esphome

Read through the values.yaml file. It has several commented out suggested values.