image:
  repository: tccr.io/truecharts/zigbee2mqtt
  tag: v1.30.4@sha256:65d64fbba69f496df34ea877fc1b69626a428ca68a5408bda7ec6dd49f7eabd6
  pullPolicy: IfNotPresent
service:
  main:
    ports:
      main:
        port: 10103
persistence:
  data:
    enabled: true
    mountPath: "/data"
    targetSelectAll: true

portal:
  open:
    enabled: true
securityContext:
  container:
    runAsNonRoot: false
    readOnlyRootFilesystem: false
    runAsUser: 0
    runAsGroup: 0
workload:
  main:
    podSpec:
      initContainers:
        init-config:
          enabled: true
          imageSelector: image
          type: init
          env:
            ZIGBEE2MQTT_CONFIG_FRONTEND_PORT: "{{ .Values.service.main.ports.main.port }}"
            ZIGBEE2MQTT_CONFIG_EXPIRIMENTAL_NEW_API: "{{ .Values.workload.main.podSpec.containers.main.env.ZIGBEE2MQTT_CONFIG_EXPIRIMENTAL_NEW_API }}"
            ZIGBEE2MQTT_CONFIG_PERMIT_JOIN: "{{ .Values.workload.main.podSpec.containers.main.env.ZIGBEE2MQTT_CONFIG_PERMIT_JOIN }}"
            ZIGBEE2MQTT_CONFIG_MQTT_SERVER: "{{ .Values.workload.main.podSpec.containers.main.env.ZIGBEE2MQTT_CONFIG_MQTT_SERVER }}"
            ZIGBEE2MQTT_CONFIG_MQTT_USER: "{{ .Values.secret.ZIGBEE2MQTT_CONFIG_MQTT_USER }}"
            ZIGBEE2MQTT_CONFIG_MQTT_PASSWORD: "{{ .Values.secret.ZIGBEE2MQTT_CONFIG_MQTT_PASSWORD }}"
            ZIGBEE2MQTT_CONFIG_MQTT_BASE_TOPIC: "{{ .Values.workload.main.podSpec.containers.main.env.ZIGBEE2MQTT_CONFIG_MQTT_BASE_TOPIC }}"
            ZIGBEE2MQTT_CONFIG_SERIAL_PORT: "{{ .Values.workload.main.podSpec.containers.main.env.ZIGBEE2MQTT_CONFIG_SERIAL_PORT }}"
            ZIGBEE2MQTT_CONFIG_SERIAL_ADAPTER: "{{ .Values.workload.main.podSpec.containers.main.env.ZIGBEE2MQTT_CONFIG_SERIAL_ADAPTER }}"
            USE_CUSTOM_CONFIG_FILE: "{{ .Values.workload.main.podSpec.containers.main.env.USE_CUSTOM_CONFIG_FILE }}"
          command: ["/bin/sh", "-c"]
          args:
            - >
              if [ -f /data/configuration.yaml ] || [ ${USE_CUSTOM_CONFIG_FILE} == true ]; then

                echo "Initial configuration exists or User selected to use custom configuration file. Skipping...";
              else

                echo "Creating initial configuration";
                touch /data/configuration.yaml;
                echo "# Configuration bellow will be always be overridden" >> /data/configuration.yaml;
                echo "# from environment settings on the Scale Apps UI." >> /data/configuration.yaml;
                echo "# You however will not see this values change in the file." >> /data/configuration.yaml;
                echo "# It's a generated file based on the values provided on initial install." >> /data/configuration.yaml;
                echo "##########################################################" >> /data/configuration.yaml;
                echo "experimental:" >> /data/configuration.yaml;
                echo "  new_api: $ZIGBEE2MQTT_CONFIG_EXPIRIMENTAL_NEW_API" >> /data/configuration.yaml;
                echo "frontend:" >> /data/configuration.yaml;
                echo "  port: $ZIGBEE2MQTT_CONFIG_FRONTEND_PORT" >> /data/configuration.yaml;
                echo "permit_join: $ZIGBEE2MQTT_CONFIG_PERMIT_JOIN" >> /data/configuration.yaml;
                echo "mqtt:" >> /data/configuration.yaml;
                echo "  server: $ZIGBEE2MQTT_CONFIG_MQTT_SERVER" >> /data/configuration.yaml;
                echo "  base_topic: $ZIGBEE2MQTT_CONFIG_MQTT_BASE_TOPIC" >> /data/configuration.yaml;
                if [ ! -z "$ZIGBEE2MQTT_CONFIG_MQTT_USER" ];
                then
                  echo "  user: $ZIGBEE2MQTT_CONFIG_MQTT_USER" >> /data/configuration.yaml;
                fi;
                if [ ! -z "$ZIGBEE2MQTT_CONFIG_MQTT_PASSWORD" ];
                then
                  echo "  password: $ZIGBEE2MQTT_CONFIG_MQTT_PASSWORD" >> /data/configuration.yaml;
                fi;
                echo "serial:" >> /data/configuration.yaml;
                echo "  port: $ZIGBEE2MQTT_CONFIG_SERIAL_PORT" >> /data/configuration.yaml;
                echo "  adapter: $ZIGBEE2MQTT_CONFIG_SERIAL_ADAPTER" >> /data/configuration.yaml;
                echo "##########################################################" >> /data/configuration.yaml;
                echo 'Initial configuration file created at "/data/configuration.yaml"';
              fi;
      containers:
        main:
          env:
            ZIGBEE2MQTT_DATA: "/data"
            ZIGBEE2MQTT_CONFIG_FRONTEND_PORT: "{{ .Values.service.main.ports.main.port }}"
            # User defined
            USE_CUSTOM_CONFIG_FILE: false
            # This values are required for the autogenerated file to work.
            # ZIGBEE2MQTT_CONFIG_EXPIRIMENTAL_NEW_API: true
            # ZIGBEE2MQTT_CONFIG_PERMIT_JOIN: true
            # ZIGBEE2MQTT_CONFIG_MQTT_SERVER: "mqtt://localhost"
            # ZIGBEE2MQTT_CONFIG_MQTT_BASE_TOPIC: "zigbee2mqtt"
            # ZIGBEE2MQTT_CONFIG_SERIAL_PORT: "/dev/ttyUSB0"
            # ZIGBEE2MQTT_CONFIG_SERIAL_ADAPTER: "auto"

            ZIGBEE2MQTT_CONFIG_MQTT_USER: ""
            ZIGBEE2MQTT_CONFIG_MQTT_PASSWORD: ""
