image:
  repository: tccr.io/truecharts/home-assistant
  pullPolicy: IfNotPresent
  tag: v2022.7.3@sha256:9ff85d8e4a4c044e8daef3284a1ec14ea9185e40bef48745d02694debead6919

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

postgresql:
  enabled: true
  postgresqlUsername: home-assistant
  postgresqlDatabase: home-assistant
  existingSecret: "dbcreds"

influxdb:
  enabled: false
  architecture: standalone
  database: home_assistant
  authEnabled: false
  persistence:
    enabled: false
    # storageClass: ""
    #
