image:
  repository: tccr.io/truecharts/zabbix-server
  tag: v6.2.0@sha256:a7e2b86edb2f25b2352c3b5aed0209333b7e5d51d2e83a7eec7211a9e2d28210
  pullPolicy: IfNotPresent

frontImage:
  repository: tccr.io/truecharts/zabbix-web
  tag: v6.2.0@sha256:e28770d6d06854be7326caaf6a23d1de7a19980eb9b6da414c4b465873c3af90
  pullPolicy: IfNotPresent

snmptrapsImage:
  repository: tccr.io/truecharts/zabbix-snmptraps
  tag: v6.2.0@sha256:7963008476173734b111b0a3652b659768fa66a5d91b686aa72bb9ca74eff28a
  pullPolicy: IfNotPresent

tty: true

securityContext:
  readOnlyRootFilesystem: false
  runAsNonRoot: false

podSecurityContext:
  runAsUser: 0
  runAsGroup: 0

env:
  DB_SERVER_PORT: 5432
  POSTGRES_USER: "{{ .Values.postgresql.postgresqlUsername }}"
  POSTGRES_DB: "{{ .Values.postgresql.postgresqlDatabase }}"
  ZBX_WEBSERVICEURL: "http://localhost:8080/report"
  ZBX_ENABLE_SNMP_TRAPS: true
  # User Defined
  ZBX_LOADMODULE: ""
  ZBX_TIMEOUT: 4
  POSTGRES_PASSWORD:
    secretKeyRef:
      name: dbcreds
      key: postgresql-password
  DB_SERVER_HOST:
    secretKeyRef:
      name: dbcreds
      key: plainhost

service:
  main:
    ports:
      main:
        port: 10211
        targetPort: 8080
  server:
    enabled: true
    ports:
      server:
        enabled: true
        port: 10212
        targetPort: 10051
  snmptraps:
    enabled: true
    ports:
      snmptraps:
        protocol: UDP
        enabled: true
        port: 162
        targetPort: 1162

probes:
  liveness:
    custom: true
    spec:
      exec:
        command:
          - /bin/bash
          - -ec
          - "until zabbix_server -R ha_status; do sleep 2; done"
  readiness:
    custom: true
    spec:
      exec:
        command:
          - /bin/bash
          - -ec
          - "until zabbix_server -R ha_status; do sleep 2; done"
  startup:
    custom: true
    spec:
      exec:
        command:
          - /bin/bash
          - -ec
          - "until zabbix_server -R ha_status; do sleep 2; done"

frontendConfig:
  ZBX_SERVER_NAME: "My Zabbix Instance"
  ZBX_MAXEXECUTIONTIME: 300
  ZBX_MEMORYLIMIT: "128M"
  ZBX_POSTMAXSIZE: "16M"
  ZBX_UPLOADMAXFILESIZE: "2M"
  ZBX_MAXINPUTTIME: 300
  ZBX_DENY_GUI_ACCESS: false
  ZBX_GUI_ACCESS_IP_RANGE: ""
  ZBX_GUI_WARNING_MSG: "My Zabbix instance is currently in maintenance"

additionalContainers:
#   agent:
#     name: agent
#     image: "{{ .Values.agentImage.repository }}:{{ .Values.agentImage.tag }}"
#     env:
#       - name: ZBX_HOSTNAME
#         value: "{{ .Release.Name }}-{{ randAlphaNum 5 }}"
#       - name: ZBX_SERVER_HOST
#         value: "localhost"
#       - name: ZBX_SERVER_PORT
#         value: "{{ .Values.service.server.ports.server.targetPort }}"
  snmptraps:
    name: snmptraps
    image: "{{ .Values.snmptrapsImage.repository }}:{{ .Values.snmptrapsImage.tag }}"
    volumeMounts:
    - name: snmptraps
      mountPath: "/var/lib/zabbix/snmptraps"
  front:
    name: front
    image: "{{ .Values.frontImage.repository }}:{{ .Values.frontImage.tag }}"
    ports:
      - containerPort: 8080
        name: main
    livenessProbe:
      httpGet:
        path: "/"
        port: 8080
    readinessProbe:
      httpGet:
        path: "/"
        port: 8080
    startupProbe:
      httpGet:
        path: "/"
        port: 8080
    env:
      - name: ZBX_SERVER_HOST
        value: "localhost"
      - name: ZBX_SERVER_PORT
        value: "{{ .Values.service.server.ports.server.targetPort }}"
      - name: POSTGRES_DB
        value: "{{ .Values.postgresql.postgresqlDatabase }}"
      - name: POSTGRES_USER
        value: "{{ .Values.postgresql.postgresqlUsername }}"
      - name: DB_SERVER_PORT
        value: "{{ .Values.env.DB_SERVER_PORT }}"
      - name: PHP_TZ
        value: "{{ .Values.TZ }}"
      # History storage HTTP[S] URL. This parameter is used for Elasticsearch setup.
      # - name: ZBX_HISTORYSTORAGEURL
      #   value: "ELASTICSEARCHURL"
      # Array of value types to be sent to the history storage. An example: ['uint', 'dbl']. This parameter is used for Elasticsearch setup.
      # - name: ZBX_HISTORYSTORAGETYPES
      #   value: "['uint', 'dbl']"
      - name: DB_SERVER_HOST
        valueFrom:
          secretKeyRef:
            name: dbcreds
            key: plainhost
      - name: POSTGRES_PASSWORD
        valueFrom:
          secretKeyRef:
            name: dbcreds
            key: postgresql-password
      # User Defined
      - name: ZBX_SERVER_NAME
        value: "{{ .Values.frontendConfig.ZBX_SERVER_NAME }}"
      - name: ZBX_MAXEXECUTIONTIME
        value: "{{ .Values.frontendConfig.ZBX_MAXEXECUTIONTIME }}"
      - name: ZBX_MEMORYLIMIT
        value: "{{ .Values.frontendConfig.ZBX_MEMORYLIMIT }}"
      - name: ZBX_POSTMAXSIZE
        value: "{{ .Values.frontendConfig.ZBX_POSTMAXSIZE }}"
      - name: ZBX_UPLOADMAXFILESIZE
        value: "{{ .Values.frontendConfig.ZBX_UPLOADMAXFILESIZE }}"
      - name: ZBX_MAXINPUTTIME
        value: "{{ .Values.frontendConfig.ZBX_MAXINPUTTIME }}"
      - name: ZBX_DENY_GUI_ACCESS
        value: "{{ .Values.frontendConfig.ZBX_DENY_GUI_ACCESS }}"
      - name: ZBX_GUI_ACCESS_IP_RANGE
        value: "{{ .Values.frontendConfig.ZBX_GUI_ACCESS_IP_RANGE }}"
      - name: ZBX_GUI_WARNING_MSG
        value: "{{ .Values.frontendConfig.ZBX_GUI_WARNING_MSG }}"

persistence:
  # Shared
  snmptraps:
    enabled: true
    mountPath: "/var/lib/zabbix/snmptraps"
  # Server
  # alertscripts:
  #   enabled: true
  #   mountPath: "/usr/lib/zabbix/alertscripts"
  # externalscripts:
  #   enabled: true
  #   mountPath: "/usr/lib/zabbix/externalscripts"
  # modules:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/modules"
  # enc:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/enc"
  # ssh_keys:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/ssh_keys"
  # sslcerts:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/ssl/certs"
  # sslkeys:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/ssl/keys"
  # sslca:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/ssl/ssl_ca"
  # mibs:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/mibs"
  # export:
  #   enabled: true
  #   mountPath: "/var/lib/zabbix/export"
  # SNMP-Traps
  # snmp-mibs:
  #     enabled: true
  #     mountPath: "/var/lib/zabbix/mibs"

postgresql:
  enabled: true
  existingSecret: "dbcreds"
  postgresqlUsername: zabbix
  postgresqlDatabase: zabbix
