[home-assistant] deprecate appdaemon and configurator sidecars (#327)

This commit is contained in:
ᗪєνιη ᗷυнʟ 2020-12-09 16:25:28 -05:00 committed by GitHub
parent 1aa31e3bd9
commit 61dbea3bad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 44 additions and 499 deletions

View File

@ -19,5 +19,6 @@
.project .project
.idea/ .idea/
*.tmproj *.tmproj
.vscode/
# OWNERS file for Kubernetes # OWNERS file for Kubernetes
OWNERS OWNERS

View File

@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [4.0.0]
### Changed
- Bumped bitnami/mariadb to 9.1.2 in chart deps
### Removed
- Appdaemon sidecar was removed and replaced by it's own chart at [charts/appdaemon](https://github.com/k8s-at-home/charts/tree/master/charts/appdaemon)
- Configurator sidecar was removed in favor of the `code-server` sidecar. One configure sidecar to rule them all!
## [3.1.0] ## [3.1.0]
### Changed ### Changed
@ -37,6 +48,8 @@ Any pre-existing StatefulSet will have to be removed before upgrading due to a n
This is the last version before starting this changelog. All sorts of cool stuff was changed, but only `git log` remembers what that was :slightly_frowning_face: This is the last version before starting this changelog. All sorts of cool stuff was changed, but only `git log` remembers what that was :slightly_frowning_face:
[4.0.0]: https://github.com/k8s-at-home/charts/tree/home-assistant-4.0.0/charts/home-assistant
[3.1.0]: https://github.com/k8s-at-home/charts/tree/home-assistant-3.1.0/charts/home-assistant [3.1.0]: https://github.com/k8s-at-home/charts/tree/home-assistant-3.1.0/charts/home-assistant
[3.0.0]: https://github.com/k8s-at-home/charts/tree/home-assistant-3.0.0/charts/home-assistant [3.0.0]: https://github.com/k8s-at-home/charts/tree/home-assistant-3.0.0/charts/home-assistant

View File

@ -2,7 +2,7 @@ apiVersion: v2
appVersion: 0.118.3 appVersion: 0.118.3
description: Home Assistant description: Home Assistant
name: home-assistant name: home-assistant
version: 3.4.0 version: 4.0.0
keywords: keywords:
- home-assistant - home-assistant
- hass - hass
@ -25,7 +25,7 @@ dependencies:
repository: https://charts.bitnami.com/bitnami repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled condition: postgresql.enabled
- name: mariadb - name: mariadb
version: 9.0.1 version: 9.1.2
repository: https://charts.bitnami.com/bitnami repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled condition: mariadb.enabled
- name: influxdb - name: influxdb

View File

@ -42,7 +42,7 @@ The command removes all the Kubernetes components associated with the chart and
The following tables lists the configurable parameters of the Home Assistant chart and their default values. The following tables lists the configurable parameters of the Home Assistant chart and their default values.
| Parameter | Description | Default | | Parameter | Description | Default |
| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | |-------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
| `image.repository` | Image repository | `homeassistant/home-assistant` | | `image.repository` | Image repository | `homeassistant/home-assistant` |
| `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/homeassistant/home-assistant/tags/). | `0.118.3` | | `image.tag` | Image tag. Possible values listed [here](https://hub.docker.com/r/homeassistant/home-assistant/tags/). | `0.118.3` |
| `image.pullPolicy` | Image pull policy | `IfNotPresent` | | `image.pullPolicy` | Image pull policy | `IfNotPresent` |
@ -103,37 +103,6 @@ The following tables lists the configurable parameters of the Home Assistant cha
| `hostMounts.type` | The type to mount (optional, i.e., `Directory`) | `nil` | | `hostMounts.type` | The type to mount (optional, i.e., `Directory`) | `nil` |
| `extraEnv` | Extra ENV vars to pass to the home-assistant container | `{}` | | `extraEnv` | Extra ENV vars to pass to the home-assistant container | `{}` |
| `extraEnvSecrets` | Extra env vars to pass to the home-assistant container from k8s secrets - see `values.yaml` for an example | `{}` | | `extraEnvSecrets` | Extra env vars to pass to the home-assistant container from k8s secrets - see `values.yaml` for an example | `{}` |
| `configurator.enabled` | Enable the optional [configuration UI](https://github.com/danielperna84/hass-configurator) | `false` |
| `configurator.image.repository` | Image repository | `k8s-at-home/hass-configurator-docker` |
| `configurator.image.tag` | Image tag | `0.3.5-x86_64` |
| `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.username` | If this and password (below) are set, will require basic auth to access the configurator UI | `` |
| `configurator.password` | If this and username (above) are set, will require basic auth to access the configurator UI. password is in the format of a sha256 hash (e.g. "test" would be "{sha256}9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08") | `` |
| `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.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` | Loadbalancer IP for the configurator UI | `` |
| `configurator.service.loadBalancerSourceRanges` | Loadbalancer client IP restriction range for the configurator UI | `[]` |
| `vscode.enabled` | Enable the optional [VS Code Server Sidecar](https://github.com/cdr/code-server) | `false` | | `vscode.enabled` | Enable the optional [VS Code Server Sidecar](https://github.com/cdr/code-server) | `false` |
| `vscode.image.repository` | Image repository | `codercom/code-server` | | `vscode.image.repository` | Image repository | `codercom/code-server` |
| `vscode.image.tag` | Image tag | `3.7.2` | | `vscode.image.tag` | Image tag | `3.7.2` |
@ -158,29 +127,6 @@ The following tables lists the configurable parameters of the Home Assistant cha
| `vscode.service.externalIPs` | External IPs for the VS Code UI | `[]` | | `vscode.service.externalIPs` | External IPs for the VS Code UI | `[]` |
| `vscode.service.loadBalancerIP` | Loadbalancer IP for the VS Code UI | `` | | `vscode.service.loadBalancerIP` | Loadbalancer IP for the VS Code UI | `` |
| `vscode.service.loadBalancerSourceRanges` | Loadbalancer client IP restriction range for the VS Code UI | `[]` | | `vscode.service.loadBalancerSourceRanges` | Loadbalancer client IP restriction range for the VS Code UI | `[]` |
| `appdaemon.enabled` | Enable the optional [Appdaemon Sidecar](https://appdaemon.readthedocs.io/en/latest/) | `false` |
| `appdaemon.image.repository` | Image repository | `acockburn/appdaemon` |
| `appdaemon.image.tag` | Image tag | `3.0.5` |
| `appdaemon.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `appdaemon.haToken` | Home Assistant API token - you need to generate it in your Home Assistant profile and then copy here | `` |
| `appdaemon.env` | Extra ENV vars to pass to the AppDaemon container | `{}` |
| `appdaemon.envFrom` | Extra ENV vars from configMap or secret to pass to the AppDaemon container | `{}` |
| `appdaemon.configSubPath` | An optional subPath for the AppDaemon container's config volume mount | `appdaemon` |
| `appdaemon.ingress.enabled` | Enables Ingress for the AppDaemon UI | `false` |
| `appdaemon.ingress.annotations` | Ingress annotations for the AppDaemon UI | `{}` |
| `appdaemon.ingress.hosts` | Ingress accepted hostnames for the AppDaemonUI | `appdaemon.local` |
| `appdaemon.ingress.tls` | Ingress TLS configuration for the AppDaemon UI | `[]` |
| `appdaemon.resources` | CPU/Memory resource requests/limits for the AppDaemon | `{}` |
| `appdaemon.securityContext` | Security context to be added to hass-appdaemon container | `{}` |
| `appdaemon.service.type` | Kubernetes service type for the AppDaemon UI | `ClusterIP` |
| `appdaemon.service.port` | Kubernetes port where the AppDaemon UI is exposed | `5050` |
| `appdaemon.service.nodePort` | nodePort to listen on for the AppDaemon UI | `` |
| `appdaemon.service.annotations` | Service annotations for the AppDaemon UI | `{}` |
| `appdaemon.service.labels` | Service labels to use for the AppDaemon UI | `{}` |
| `appdaemon.service.clusterIP` | Cluster IP for the AppDaemon UI | `` |
| `appdaemon.service.externalIPs` | External IPs for the AppDaemon UI | `[]` |
| `appdaemon.service.loadBalancerIP` | Loadbalancer IP for the AppDaemon UI | `` |
| `appdaemon.service.loadBalancerSourceRanges` | Loadbalancer client IP restriction range for the VS Code UI | `[]` |
| `mariadb.enabled` | Enable the optional [Mariadb](https://github.com/bitnami/charts) deployment | `false` | | `mariadb.enabled` | Enable the optional [Mariadb](https://github.com/bitnami/charts) deployment | `false` |
| `postgresql.enabled` | Enable the optional [Postgres](https://github.com/bitnami/charts) deployment | `false` | | `postgresql.enabled` | Enable the optional [Postgres](https://github.com/bitnami/charts) deployment | `false` |
| `influxdb.enabled` | Enable the optional [Influxdb](https://github.com/bitnami/charts) deployment | `false` | | `influxdb.enabled` | Enable the optional [Influxdb](https://github.com/bitnami/charts) deployment | `false` |
@ -220,18 +166,10 @@ Read through the [values.yaml](values.yaml) file. It has several commented out s
Much of the home assistant configuration occurs inside the various files persisted to the `/config` directory. This will require external access to the persistent storage location where the home assistant configuration data is stored. Because this may be a limitation, there are two options built-in to this chart: Much of the home assistant configuration occurs inside the various files persisted to the `/config` directory. This will require external access to the persistent storage location where the home assistant configuration data is stored. Because this may be a limitation, there are two options built-in to this chart:
### Configurator UI
[Home Assistant Configurator UI](https://github.com/danielperna84/hass-configurator) is added as an optional sidecar container to Home Assistant with access to the home assistant configuration for easy in-browser editing and manipulation of Home Assistant.
### VS Code Server ### VS Code Server
[VS Code Server](https://github.com/cdr/code-server) is added as an optional sidecar container to Home Assistant with access to the home assistant configuration for easy in-browser editing and manipulation of Home Assistant. If using this, it is possible to manually install the [Home Assistant Config Helper Extension](https://github.com/keesschollaart81/vscode-home-assistant) in order to have a deeper integration with Home Assistant within VS Code while editing the configuration files. [VS Code Server](https://github.com/cdr/code-server) is added as an optional sidecar container to Home Assistant with access to the home assistant configuration for easy in-browser editing and manipulation of Home Assistant. If using this, it is possible to manually install the [Home Assistant Config Helper Extension](https://github.com/keesschollaart81/vscode-home-assistant) in order to have a deeper integration with Home Assistant within VS Code while editing the configuration files.
### AppDaemon
[AppDaemon](https://www.home-assistant.io/docs/ecosystem/appdaemon/) is added as an optional sidecar container to Home Assistant with access to the home assistant configuration `/config/appdaemon`. This allows downloading apps with [HACS](https://github.com/hacs/integration)
[Home Assistant Configurator UI](https://github.com/danielperna84/hass-configurator) is added as an optional sidecar container to Home Assistant with access to the home assistant configuration for easy in-browser editing and manipulation of Home Assistant.
## Git sync secret ## Git sync secret
In order to sync the home assistant from a git repo, you can optionally store an ssh key as a kubernetes git secret: In order to sync the home assistant from a git repo, you can optionally store an ssh key as a kubernetes git secret:

View File

@ -1,39 +0,0 @@
{{- if and (.Values.appdaemon.enabled) (.Values.appdaemon.ingress.enabled) }}
{{- $fullName := include "home-assistant.fullname" . -}}
{{- $servicePort := .Values.appdaemon.service.port -}}
{{- $ingressPath := .Values.appdaemon.ingress.path -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}-appdaemon
labels:
app.kubernetes.io/name: {{ include "home-assistant.name" . }}
helm.sh/chart: {{ include "home-assistant.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.appdaemon.ingress.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
{{- if .Values.appdaemon.ingress.tls }}
tls:
{{- range .Values.appdaemon.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.appdaemon.ingress.hosts }}
- host: {{ . }}
http:
paths:
- path: {{ $ingressPath }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $servicePort }}
{{- end }}
{{- end }}

View File

@ -1,39 +0,0 @@
{{- if and (.Values.configurator.enabled) (.Values.configurator.ingress.enabled) }}
{{- $fullName := include "home-assistant.fullname" . -}}
{{- $servicePort := .Values.configurator.service.port -}}
{{- $ingressPath := .Values.configurator.ingress.path -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}-configurator
labels:
app.kubernetes.io/name: {{ include "home-assistant.name" . }}
helm.sh/chart: {{ include "home-assistant.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.configurator.ingress.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
{{- if .Values.configurator.ingress.tls }}
tls:
{{- range .Values.configurator.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.configurator.ingress.hosts }}
- host: {{ . }}
http:
paths:
- path: {{ $ingressPath }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $servicePort }}
{{- end }}
{{- end }}

View File

@ -188,90 +188,6 @@ spec:
privileged: true privileged: true
allowPrivilegeEscalation: true allowPrivilegeEscalation: true
{{- end }} {{- end }}
{{- if .Values.configurator.enabled }}
- name: configurator
image: "{{ .Values.configurator.image.repository }}:{{ .Values.configurator.image.tag }}"
imagePullPolicy: {{ .Values.configurator.image.pullPolicy }}
ports:
- name: configurator
containerPort: {{ .Values.configurator.service.port }}
protocol: TCP
env:
{{- if .Values.configurator.hassApiPassword }}
- name: HC_HASS_API_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "home-assistant.fullname" . }}-configurator
key: hass-api-password
{{- end }}
{{- if and (.Values.configurator.username) (.Values.configurator.password) }}
- name: HC_USERNAME
valueFrom:
secretKeyRef:
name: {{ template "home-assistant.fullname" . }}-configurator
key: username
- name: HC_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "home-assistant.fullname" . }}-configurator
key: password
{{- end }}
{{- if .Values.configurator.hassApiUrl }}
- name: HC_HASS_API
value: "{{ .Values.configurator.hassApiUrl }}"
{{- else }}
- name: HC_HASS_API
value: "http://127.0.0.1:8123/api/"
{{- end }}
{{- if .Values.configurator.basepath }}
- name: HC_BASEPATH
value: "{{ .Values.configurator.basepath }}"
{{- end }}
{{- if .Values.configurator.enforceBasepath }}
- name: HC_ENFORCE_BASEPATH
value: "{{ .Values.configurator.enforceBasepath }}"
{{- end }}
{{- if .Values.git.enabled }}
- name: HC_GIT
value: "true"
{{ end }}
{{- if and (.Values.git.enabled) (.Values.git.user.name) }}
- name: GIT_AUTHOR_NAME
value: {{ .Values.git.user.name }}
- name: GIT_COMMITTER_NAME
value: {{ .Values.git.user.name }}
{{ end }}
{{- if and (.Values.git.enabled) (.Values.git.user.email) }}
- name: GIT_AUTHOR_EMAIL
value: {{ .Values.git.user.email }}
- name: GIT_COMMITTER_EMAIL
value: {{ .Values.git.user.email }}
{{ end }}
{{- range $key, $value := .Values.configurator.extraEnv }}
- name: {{ $key }}
value: {{ $value | quote }}
{{- end }}
volumeMounts:
- mountPath: /config
name: config
subPath: {{ default "" .Values.persistence.configSubPath }}
{{- if .Values.git.enabled }}
- mountPath: {{ .Values.git.keyPath }}
name: git-secret
{{- end }}
{{- if .Values.extraVolumeMounts }}{{ toYaml .Values.extraVolumeMounts | trim | nindent 10 }}{{ end }}
{{- if .Values.usePodSecurityContext }}
securityContext:
runAsUser: {{ default 0 .Values.runAsUser }}
{{- if and (.Values.runAsUser) (.Values.fsGroup) }}
{{- if not (eq .Values.runAsUser 0.0) }}
fsGroup: {{ .Values.fsGroup }}
{{- end }}
{{- end }}
{{- end }}
resources:
{{ toYaml .Values.configurator.resources | indent 12 }}
{{- end }}
{{- if .Values.vscode.enabled }} {{- if .Values.vscode.enabled }}
- name: vscode - name: vscode
image: "{{ .Values.vscode.image.repository }}:{{ .Values.vscode.image.tag }}" image: "{{ .Values.vscode.image.repository }}:{{ .Values.vscode.image.tag }}"
@ -330,68 +246,6 @@ spec:
resources: resources:
{{ toYaml .Values.vscode.resources | indent 12 }} {{ toYaml .Values.vscode.resources | indent 12 }}
{{- end }} {{- end }}
{{- if .Values.appdaemon.enabled }}
- name: appdaemon
image: "{{ .Values.appdaemon.image.repository }}:{{ .Values.appdaemon.image.tag }}"
imagePullPolicy: {{ .Values.appdaemon.image.pullPolicy }}
ports:
- name: appdaemon
containerPort: {{ .Values.appdaemon.service.port }}
protocol: TCP
{{- with .Values.appdaemon.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.appdaemon.env }}
env:
{{- toYaml . | nindent 12 }}
{{- end }}
- name: HA_URL
value: "http://localhost:{{ .Values.service.port }}"
{{- if .Values.appdaemon.ingress.enabled }}
- name: DASH_URL
#value: http{{ if .Values.appdaemon.ingress.tls }}s{{ end }}://{{ index .Values.appdaemon.ingress.hosts 0 }}
value: http://0.0.0.0:{{ .Values.appdaemon.service.port }}
{{- end }}
{{- if .Values.appdaemon.haToken }}
- name: TOKEN
valueFrom:
secretKeyRef:
name: {{ template "home-assistant.fullname" . }}-appdaemon
key: token
{{- end }}
{{- if and (.Values.git.enabled) (.Values.git.user.name) }}
- name: GIT_AUTHOR_NAME
value: {{ .Values.git.user.name }}
- name: GIT_COMMITTER_NAME
value: {{ .Values.git.user.name }}
{{ end }}
{{- if and (.Values.git.enabled) (.Values.git.user.email) }}
- name: GIT_AUTHOR_EMAIL
value: {{ .Values.git.user.email }}
- name: GIT_COMMITTER_EMAIL
value: {{ .Values.git.user.email }}
{{ end }}
volumeMounts:
- mountPath: /ha-conf
name: config
subPath: {{ default "" .Values.persistence.configSubPath }}
- mountPath: /conf
subPath: {{ default "appdaemon" .Values.appdaemon.configSubPath }}
name: config
{{- if .Values.extraVolumeMounts }}{{ toYaml .Values.extraVolumeMounts | trim | nindent 10 }}{{ end }}
{{- if .Values.usePodSecurityContext }}
securityContext:
runAsUser: {{ default 0 .Values.runAsUser }}
{{- if and (.Values.runAsUser) (.Values.fsGroup) }}
{{- if not (eq .Values.runAsUser 0.0) }}
fsGroup: {{ .Values.fsGroup }}
{{- end }}
{{- end }}
{{- end }}
resources:
{{ toYaml .Values.appdaemon.resources | indent 12 }}
{{- end }}
volumes: volumes:
- name: config - name: config
{{- if .Values.persistence.enabled }} {{- if .Values.persistence.enabled }}

View File

@ -1,27 +1,3 @@
{{- if .Values.configurator.enabled }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "home-assistant.fullname" . }}-configurator
labels:
app.kubernetes.io/name: {{ include "home-assistant.name" . }}
helm.sh/chart: {{ include "home-assistant.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
type: Opaque
data:
{{- if .Values.configurator.hassApiPassword }}
hass-api-password: {{ .Values.configurator.hassApiPassword | b64enc | quote }}
{{- end }}
{{- if .Values.configurator.username }}
username: {{ .Values.configurator.username | b64enc | quote }}
{{- end }}
{{- if .Values.configurator.password }}
password: {{ .Values.configurator.password | b64enc | quote }}
{{- end }}
{{- end }}
{{- if .Values.vscode.enabled }} {{- if .Values.vscode.enabled }}
--- ---
apiVersion: v1 apiVersion: v1
@ -39,21 +15,3 @@ data:
password: {{ .Values.vscode.password | b64enc | quote }} password: {{ .Values.vscode.password | b64enc | quote }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- if .Values.appdaemon.enabled }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ template "home-assistant.fullname" . }}-appdaemon
labels:
app.kubernetes.io/name: {{ include "home-assistant.name" . }}
helm.sh/chart: {{ include "home-assistant.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
type: Opaque
data:
{{- if .Values.appdaemon.haToken }}
token: {{ .Values.appdaemon.haToken | b64enc | quote }}
{{- end }}
{{- end }}

View File

@ -48,15 +48,6 @@ spec:
{{ if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} {{ if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }}
nodePort: {{.Values.service.nodePort}} nodePort: {{.Values.service.nodePort}}
{{ end }} {{ end }}
{{- if .Values.configurator.enabled }}
- name: configurator
port: {{ .Values.configurator.service.port }}
protocol: TCP
targetPort: 3218
{{ if (and (eq .Values.configurator.service.type "NodePort") (not (empty .Values.configurator.service.nodePort))) }}
nodePort: {{.Values.configurator.service.nodePort}}
{{ end }}
{{- end }}
{{- if .Values.vscode.enabled }} {{- if .Values.vscode.enabled }}
- name: vscode - name: vscode
port: {{ .Values.vscode.service.port }} port: {{ .Values.vscode.service.port }}
@ -66,15 +57,6 @@ spec:
nodePort: {{.Values.vscode.service.nodePort}} nodePort: {{.Values.vscode.service.nodePort}}
{{ end }} {{ end }}
{{- end }} {{- end }}
{{- if .Values.appdaemon.enabled }}
- name: appdaemon
port: {{ .Values.appdaemon.service.port }}
protocol: TCP
targetPort: 5050
{{ if (and (eq .Values.appdaemon.service.type "NodePort") (not (empty .Values.appdaemon.service.nodePort))) }}
nodePort: {{.Values.appdaemon.service.nodePort}}
{{ end }}
{{- end }}
{{- if .Values.service.additionalPorts }} {{- if .Values.service.additionalPorts }}
{{- .Values.service.additionalPorts | toYaml | indent 4 }} {{- .Values.service.additionalPorts | toYaml | indent 4 }}
{{- end }} {{- end }}

View File

@ -30,6 +30,7 @@ probes:
scheme: HTTP scheme: HTTP
failureThreshold: 30 failureThreshold: 30
periodSeconds: 10 periodSeconds: 10
service: service:
type: ClusterIP type: ClusterIP
port: 8123 port: 8123
@ -157,63 +158,6 @@ hostMounts: []
# - name: zha # - name: zha
# hostPath: /dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_6120245D-if01-port0 # hostPath: /dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_6120245D-if01-port0
configurator:
enabled: false
## hass-configurator container image
##
image:
repository: causticlab/hass-configurator-docker
tag: 0.3.5-x86_64
pullPolicy: IfNotPresent
## URL for the home assistant API endpoint
# hassApiUrl: http://home-assistant:8123/api/
## home assistant API password
# hassApiPassword:
## path where the home assistant configuration is stored
basepath: /config
## don't allow switching out of the base path
enforceBasepath: true
## username for basic auth for accessing the configurator
# username:
## password (sha256-hash) for basic auth for accessing the configurator
## For example "test" would be "{sha256}9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08"
# password:
## Additional hass-configurator container environment variable
## For instance to add a http_proxy
##
extraEnv: {}
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- home-assistant.local
tls: []
# - secretName: home-assistant-tls
# hosts:
# - home-assistant.local
service:
type: ClusterIP
port: 3218
annotations: {}
labels: {}
clusterIP: ""
## List of IP addresses at which the hass-configurator service is available
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
externalIPs: []
loadBalancerIP: ""
loadBalancerSourceRanges: []
# externalTrafficPolicy: Local
# nodePort: 30000
## Add support for Prometheus ## Add support for Prometheus
# settings has to be enabled in configuration.yaml # settings has to be enabled in configuration.yaml
# https://www.home-assistant.io/components/prometheus/ # https://www.home-assistant.io/components/prometheus/
@ -300,71 +244,37 @@ vscode:
loadBalancerSourceRanges: [] loadBalancerSourceRanges: []
# nodePort: 30000 # nodePort: 30000
appdaemon: resources: {}
enabled: false # We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
## code-server container image nodeSelector: {}
##
image:
repository: acockburn/appdaemon
tag: 3.0.5
pullPolicy: IfNotPresent
## Home Assistant API token tolerations: []
# haToken:
# Environment variables to be passed to appdaemon container affinity: {}
env: []
# - name: SOME_VAR
# value: some-var-value
# - name: SOME_VAR_FROM_CONFIG_MAP
# valueFrom:
# configMapRef:
# name: configmap-name
# key: config-key
# - name: SOME_SECRET
# valueFrom:
# secretKeyRef:
# name: secret-name
# key: secret-key
envFrom: [] podAnnotations: {}
# - configMapRef:
# name: config-map-name
# - secretRef:
# name: secret-name
# If you use an existingClaim for the config volume then it is sometimes useful to specify a subPath # Any extra volumes to define for the pod
# within the volume to mount instead of mounting the root. extraVolumes: []
# This allows several charts to share a common volume. For example for configurations. # - name: example-name
# configSubPath: configs/hass/appdaemon # hostPath:
# path: /path/on/host
# type: DirectoryOrCreate
ingress: # Any extra volume mounts to define for the containers
enabled: false extraVolumeMounts: []
annotations: {} # - name: example-name
# kubernetes.io/ingress.class: nginx # mountPath: /path/in/container
# kubernetes.io/tls-acme: "true"
path: /
hosts:
- appdaemon.local
tls: []
# - secretName: appdaemon-tls
# hosts:
# - appdaemon.local
service:
type: ClusterIP
port: 5050
annotations: {}
labels: {}
clusterIP: ""
## List of IP addresses at which the hass-appdaemon service is available
## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips
##
externalIPs: []
loadBalancerIP: ""
loadBalancerSourceRanges: []
# nodePort: 30000
# Enabled mariadb # Enabled mariadb
# ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb # ... for more options see https://github.com/bitnami/charts/tree/master/bitnami/mariadb
@ -403,36 +313,3 @@ influxdb:
enabled: false enabled: false
# storageClass: "" # storageClass: ""
# size: 8Gi # size: 8Gi
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
podAnnotations: {}
# Any extra volumes to define for the pod
extraVolumes: []
# - name: example-name
# hostPath:
# path: /path/on/host
# type: DirectoryOrCreate
# Any extra volume mounts to define for the containers
extraVolumeMounts: []
# - name: example-name
# mountPath: /path/in/container