image: repository: tccr.io/truecharts/home-assistant pullPolicy: IfNotPresent tag: v2022.6.4@sha256:e4ee181f95839c3ea5e8fa14aeafb4c38ddec352d4954bea45108499fe7261fe securityContext: readOnlyRootFilesystem: false runAsNonRoot: false podSecurityContext: runAsUser: 0 runAsGroup: 0 service: main: ports: main: port: 8123 targetPort: 8123 initContainers: init: image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" command: ["/config/init/init.sh"] volumeMounts: - name: init mountPath: "/config/init" - name: config mountPath: "/config" # # Enable devices to be discoverable # hostNetwork: true # # When hostNetwork is true set dnsPolicy to ClusterFirstWithHostNet # dnsPolicy: ClusterFirstWithHostNet # Enable a prometheus-operator servicemonitor prometheus: serviceMonitor: enabled: false # interval: 1m # additionalLabels: {} persistence: config: enabled: true mountPath: "/config" init: enabled: "true" mountPath: "/config/init" readOnly: true type: "custom" volumeSpec: configMap: name: '{{ include "tc.common.names.fullname" . }}-init' defaultMode: 0777 configmap: init: enabled: true data: init.sh: |- #!/bin/sh if test -f "/config/configuration.yaml"; then echo "configuration.yaml exists." if grep -q recorder: "/config/configuration.yaml"; then echo "configuration.yaml already contains recorder" else cat /config/init/recorder.default >> /config/configuration.yaml fi if grep -q http: "/config/configuration.yaml"; then echo "configuration.yaml already contains http section" else cat /config/init/http.default >> /config/configuration.yaml fi else echo "configuration.yaml does NOT exist." cp /config/init/configuration.yaml.default /config/configuration.yaml cat /config/init/recorder.default >> /config/configuration.yaml cat /config/init/http.default >> /config/configuration.yaml fi echo "Creating include files..." for include_file in groups.yaml automations.yaml scripts.yaml scenes.yaml; do if test -f "/config/$include_file"; then echo "$include_file exists." else echo "$include_file does NOT exist." touch "/config/$include_file" fi done cd "/config" || echo "Could not change path to /config" echo "Creating custom_components directory..." mkdir "/config/custom_components" || echo "custom_components directory already exists" echo "Changing to the custom_components directory..." cd "/config/custom_components" || echo "Could not change path to /config/custom_components" echo "Downloading HACS" wget "https://github.com/hacs/integration/releases/latest/download/hacs.zip" || exit 0 if [ -d "/config/custom_components/hacs" ]; then echo "HACS directory already exist, cleaning up..." rm -R "/config/custom_components/hacs" fi echo "Creating HACS directory..." mkdir "/config/custom_components/hacs" echo "Unpacking HACS..." unzip "/config/custom_components/hacs.zip" -d "/config/custom_components/hacs" >/dev/null 2>&1 echo "Removing HACS zip file..." rm "/config/custom_components/hacs.zip" echo "Installation complete." configuration.yaml.default: |- # Configure a default setup of Home Assistant (frontend, api, etc) default_config: # Text to speech tts: - platform: google_translate group: !include groups.yaml automation: !include automations.yaml script: !include scripts.yaml scene: !include scenes.yaml recorder.default: |- recorder: purge_keep_days: 30 commit_interval: 3 db_url: {{ ( printf "%s?client_encoding=utf8" ( .Values.postgresql.url.complete | trimAll "\"" ) ) | quote }} http.default: |- http: use_x_forwarded_for: true trusted_proxies: - 172.16.0.0/16 # -- Enable and configure postgresql database subchart under this key. # For more options see [postgresql chart documentation](https://github.com/tccr.io/truecharts/charts/tree/master/tccr.io/truecharts/postgresql) # @default -- See values.yaml postgresql: enabled: true postgresqlUsername: home-assistant postgresqlDatabase: home-assistant existingSecret: "dbcreds" # Enable influxdb # ... for more options see https://github.com/tccr.io/truecharts/charts/tree/master/tccr.io/truecharts/influxdb influxdb: enabled: false architecture: standalone database: home_assistant authEnabled: false persistence: enabled: false # storageClass: "" #