# Default values for zabbix. # This is a YAML-formatted file. # Declare variables to be passed into your templates. # -- Zabbix components (server, agent, web frontend, ...) image tag to use. #This helm chart is compatible with non-LTS version of Zabbix, that include important changes and functionalities. #But by default this helm chart will install the latest LTS version (example: 6.0.x). #See more info in [Zabbix Life Cycle & Release Policy](https://www.zabbix.com/life_cycle_and_release_policy) page #When you want use a non-LTS version (example: 6.2.x), you have to set this yourself. You can change version #here or overwrite in each component (example: zabbixserver.image.tag, etc). zabbixImageTag: ubuntu-6.0.20 # **Zabbix Postgresql access / credentials** configurations # with this dict, you can set unified PostgreSQL access credentials, IP and so on for both Zabbix Server and Zabbix web frontend # you can either chose from having all this in one named (preexisting) secret or setting the values one by one with vars # whatever set here overrides the credential settings within the "zabbixServer" and "zabbixWeb" sections. postgresAccess: # under this section you can configure PostgreSQL access and credentials centrally for the entire helm chart. # All relevant components installed by this chart will respect it: zabbixServer, zabbixWeb and postgresql (if enabled) # # USING ONE SECRET CONTAINING ALL DB RELEVANT SETTINGS # PostgreSQL access details all in one existing secret (matches the structure of secrets the CrunchyData pgo operator generates) # if this option is chosen the below listed settings are being ignored # the secret must contain the following keys: # * host # * port # * user # * password # * database # -- Whether to use the unified PostgreSQL access secret useUnifiedSecret: false # -- Name of one secret for unified configuration of PostgreSQL access unifiedSecretName: zabbixdb-pguser-zabbix # -- automatically create secret if not already present (works only in combination with postgresql.enabled=true) unifiedSecretAutoCreate: true # # If you do NOT want to use one unified secret for all settings, you can still set the credentials manually here. # These settings will be used for all components of this chart where it makes sense (zabbix server, postgresql, # web frontend, ...) # -- Address of database host - ignored if postgresql.enabled=true host: "postgres14.postgres" # -- Port of database host - ignored if postgresql.enabled=true port: "5432" # -- User of database user: "zabbix" # -- Name of a secret used for Postgres Password, if set, it overrules the POSTGRES_PASSWORD value #passwordSecret: mysecret # -- Key of the secret used for Postgres Password, requires POSTGRES_PASSWORD_SECRET, defaults to password #passwordSecretKey: "password" # -- Password of database - ignored if passwordSecret is set password: "zabbix" # -- Name of database database: "zabbix" # **Zabbix Server** configurations zabbixServer: # -- Enables use of **Zabbix Server** enabled: true # -- Number of replicas of ``zabbixServer`` module replicaCount: 1 # -- set permissive podAntiAffinity to spread replicas over cluster nodes if replicaCount>1 podAntiAffinity: true # -- optional set true open a port direct on node where Zabbix Server runs hostPort: false # -- optional set hostIP different from 0.0.0.0 to open port only on this IP hostIP: 0.0.0.0 # -- Requests and limits of pod resources. See: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers) resources: {} image: # -- Zabbix Server Docker image name repository: zabbix/zabbix-server-pgsql # -- Zabbix Server Docker image tag, if you want to override zabbixImageTag tag: null # -- Pull policy of Docker image pullPolicy: IfNotPresent # -- List of dockerconfig secrets names to use when pulling images pullSecrets: [] # -- automatically clean orphaned ha nodes from ha_nodes db table haNodesAutoClean: enabled: true image: # -- Postgresql Docker image name: chose one of "postgres" or "timescale/timescaledb" repository: postgres # -- Tag of Docker image of Postgresql server, choice "15" for postgres "2.10.3-pg15" for timescaledb # (Zabbix supports TimescaleDB 2.0.1-2.10.x. More info: https://www.zabbix.com/documentation/6.0/en/manual/installation/requirements) # Added support for PostgreSQL versions 15.x since Zabbix 6.0.10 tag: 15 pullPolicy: IfNotPresent pullSecrets: [] schedule: "0 1 * * *" deleteOlderThanSeconds: 3600 # -- Extra environment variables. A list of additional environment variables. extraEnv: [] # -- additional volumeMounts to the cronjob hanodes autoclean extraVolumeMounts: [] # -- additional containers to start within the cronjob hanodes autoclean extraContainers: [] # -- additional init containers to start within the cronjob hanodes autoclean extraInitContainers: [] # -- additional volumes to make available to the cronjob hanodes autoclean extraVolumes: [] # -- additional specifications to the cronjob hanodes autoclean extraPodSpecs: {} service: # -- Type of service in Kubernetes cluster type: ClusterIP # -- Cluster IP for Zabbix Server # -- externalTrafficPolicy for Zabbix Server. "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, depending on your network settings. #externalTrafficPolicy: Local # -- IPs if use service type LoadBalancer" externalIPs: [] loadBalancerIP: "" clusterIP: # -- Port of service in Kubernetes cluster port: 10051 # -- NodePort of service on each node nodePort: 31051 # -- Annotations for the zabbix-server service annotations: {} # metallb.universe.tf/address-pool: production-public-ips # -- Extra environment variables. A list of additional environment variables. List can be extended with other environment variables listed here: https://github.com/zabbix/zabbix-docker/tree/6.0/Dockerfiles/server-pgsql/alpine#environment-variables. See example: https://github.com/zabbix-community/helm-zabbix/blob/master/charts/zabbix/docs/example/kind/values.yaml extraEnv: [] #- name: ENABLE_TIMESCALEDB # value: "true" # -- annotations to add to the deployment deploymentAnnotations: {} # -- annotations to add to the containers containerAnnotations: {} # -- additional volumeMounts to the Zabbix Server container extraVolumeMounts: [] # -- additional containers to start within the Zabbix Server pod extraContainers: [] # -- additional init containers to start within the Zabbix Server pod extraInitContainers: [] # -- additional volumes to make available to the Zabbix Server pod extraVolumes: [] # -- additional specifications to the Zabbix Server pod extraPodSpecs: {} # **PostgreSQL** configurations postgresql: # -- Create a database using Postgresql enabled: false image: # -- Postgresql Docker image name: chose one of "postgres" or "timescale/timescaledb" repository: postgres # -- Tag of Docker image of Postgresql server, choice "15" for postgres "2.11.1-pg15" for timescaledb # (Zabbix supports TimescaleDB 2.0.1-2.11.x. More info: https://www.zabbix.com/documentation/6.0/en/manual/installation/requirements) # Added support for PostgreSQL versions 15.x since Zabbix 6.0.10 tag: 15 # -- Pull policy of Docker image pullPolicy: IfNotPresent # -- List of dockerconfig secrets names to use when pulling images pullSecrets: [] persistence: # -- whether to enable persistent storage for the postgres container or not enabled: false # -- existing persistent volume claim name to be used to store posgres data existingClaimName: false # -- size of the PVC to be automatically generated storageSize: 5Gi # -- storage PVC storageclass to use #storageClass: my-storage-class service: # -- Type of service in Kubernetes cluster type: ClusterIP # -- Cluster IP for Zabbix Server clusterIP: # -- Port of service in Kubernetes cluster port: 5432 # -- Annotations for the zabbix-server service annotations: {} # metallb.universe.tf/address-pool: production-public-ips # -- Extra Postgresql runtime parameters ("-c" options) extraRuntimeParameters: max_connections: 50 # -- Extra environment variables. A list of additional environment variables. extraEnv: [] # -- annotations to add to the statefulset statefulSetAnnotations: {} # -- annotations to add to the containers containerAnnotations: {} # -- additional volumeMounts to the postgresql container extraVolumeMounts: [] # -- additional containers to start within the postgresql pod extraContainers: [] # -- additional init containers to start within the postgresql pod extraInitContainers: [] # -- additional volumes to make available to the postgresql pod extraVolumes: [] # -- additional specifications to the postgresql pod extraPodSpecs: {} # **Zabbix Proxy** configurations zabbixProxy: # -- Enables use of **Zabbix Proxy** enabled: false # -- Number of replicas of ``zabbixProxy`` module replicaCount: 1 # -- Requests and limits of pod resources. See: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers) resources: {} image: # -- Zabbix Proxy Docker image name repository: zabbix/zabbix-proxy-sqlite3 # -- Zabbix Proxy Docker image tag, if you want to override zabbixImageTag tag: null # -- Pull policy of Docker image pullPolicy: IfNotPresent # -- List of dockerconfig secrets names to use when pulling images pullSecrets: [] # -- The variable allows to switch Zabbix Proxy mode. Bu default, value is 0 - active proxy. Allowed values are 0 and 1. ZBX_PROXYMODE: 0 # -- Zabbix Proxy hostname # Case sensitive hostname ZBX_HOSTNAME: zabbix-proxy # This variable is unique, case sensitive hostname. # -- Zabbix Server host ZBX_SERVER_HOST: zabbix-zabbix-server # -- Zabbix Server port ZBX_SERVER_PORT: 10051 # ZBX_LOADMODULE: dummy1.so,dummy2.so # The variable is list of comma separated loadable Zabbix modules. It works with volume /var/lib/zabbix/modules. # The variable is used to specify debug level, from 0 to 5 ZBX_DEBUGLEVEL: 4 # The variable is used to specify timeout for processing checks. By default, value is 4. ZBX_TIMEOUT: 4 # -- The variable enable communication with Zabbix Java Gateway to collect Java related checks. By default, value is false. ZBX_JAVAGATEWAY_ENABLE: false # -- Cache size ZBX_VMWARECACHESIZE: 128M service: # -- Type of service for Zabbix Proxy type: ClusterIP # -- Cluster IP for Zabbix Proxy clusterIP: # -- Port to expose service port: 10051 # -- Annotations for the zabbix-proxy service annotations: {} # metallb.universe.tf/address-pool: production-public-ips # -- Extra environment variables. A list of additional environment variables. List can be extended with other environment variables listed here: https://github.com/zabbix/zabbix-docker/tree/6.0/Dockerfiles/proxy-sqlite3/alpine#environment-variables. See example: https://github.com/zabbix-community/helm-zabbix/blob/master/charts/zabbix/docs/example/kind/values.yaml extraEnv: [] # -- annotations to add to the statefulset statefulSetAnnotations: {} # -- annotations to add to the containers containerAnnotations: {} # -- additional volumeMounts to the Zabbix Proxy container extraVolumeMounts: [] # -- additional containers to start within the Zabbix Proxy pod extraContainers: [] # -- additional init containers to start within the Zabbix Proxy pod extraInitContainers: [] # -- additional volumes to make available to the Zabbix Proxy pod extraVolumes: [] # -- additional specifications to the Zabbix Proxy pod extraPodSpecs: {} # -- extra volumeClaimTemplate for zabbixProxy statefulset extraVolumeClaimTemplate: [] # **Zabbix Agent** configurations zabbixAgent: # -- Enables use of **Zabbix Agent** enabled: true # -- Its is a default mode. Zabbix-agent will run as sidecar in zabbix-server and zabbix-proxy pods. Disable this mode if you want to run zabbix-agent as daemonSet runAsSidecar: true # -- Enable this mode if you want to run zabbix-agent as daemonSet. The 'zabbixAgent.runAsSidecar' option must be false. runAsDaemonSet: false # -- Requests and limits of pod resources. See: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers) resources: {} image: # -- Zabbix Agent Docker image name. Can use zabbix/zabbix-agent or zabbix/zabbix-agent2 repository: zabbix/zabbix-agent2 # -- Zabbix Agent Docker image tag, if you want to override zabbixImageTag tag: null # -- Pull policy of Docker image pullPolicy: IfNotPresent # -- List of dockerconfig secrets names to use when pulling images pullSecrets: [] # -- Zabbix Server host ZBX_SERVER_HOST: 0.0.0.0/0 # -- Zabbix Server port ZBX_SERVER_PORT: 10051 # -- This variable is boolean (true or false) and enables or disables feature of passive checks. By default, value is true ZBX_PASSIVE_ALLOW: true # -- The variable is comma separated list of allowed Zabbix Server or proxy hosts for connections to Zabbix Agent container. Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com #ZBX_PASSIVESERVERS: '' # -- This variable is boolean (true or false) and enables or disables feature of active checks ZBX_ACTIVE_ALLOW: false # -- The variable is comma separated list of allowed Zabbix Server or proxy hosts for connections to Zabbix Agent container. You may specify port. #ZBX_ACTIVESERVERS: '' # -- The variable is list of comma separated loadable Zabbix modules. It works with volume /var/lib/zabbix/modules. #ZBX_LOADMODULE: dummy1.so,dummy2.so # -- The variable is used to specify debug level, from 0 to 5 ZBX_DEBUGLEVEL: 3 # -- The variable is used to specify timeout for processing checks. By default, value is 4. ZBX_TIMEOUT: 4 service: # -- Type of service for Zabbix Agent type: ClusterIP # -- Cluster IP for Zabbix Agent clusterIP: # -- Port to expose service port: 10050 # -- externalTrafficPolicy for Zabbix Agent service. "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, depending on your network settings. #externalTrafficPolicy: Local listenOnAllInterfaces: true # -- NodePort port to allocate (only if service.type = NodePort) #nodePort: 31050 # -- Annotations for the zabbix-agent service annotations: {} # metallb.universe.tf/address-pool: production-public-ips # -- If true, agent pods mounts host / at /host/root hostRootFsMount: true # -- Extra environment variables. A list of additional environment variables. List can be extended with other environment variables listed here: https://github.com/zabbix/zabbix-docker/tree/6.0/Dockerfiles/agent2/alpine#environment-variables. See example: https://github.com/zabbix-community/helm-zabbix/blob/master/charts/zabbix/docs/example/kind/values.yaml extraEnv: [] # -- additional volumeMounts to the zabbix Agent container extraVolumeMounts: [] # -- annotations to add to the daemonSet daemonSetAnnotations: {} # -- annotations to add to the containers containerAnnotations: {} # -- additional containers to start within the Zabbix Agent pod extraContainers: [] # -- additional init containers to start within the Zabbix Agent pod extraInitContainers: [] # -- additional volumes to make available to the Zabbix Agent pod extraVolumes: [] # -- additional specifications to the Zabbix Agent pod extraPodSpecs: {} # **Zabbix Web** configurations zabbixWeb: # -- Enables use of **Zabbix Web** enabled: true # -- Number of replicas of ``zabbixWeb`` module replicaCount: 1 # -- set permissive podAntiAffinity to spread replicas over cluster nodes if replicaCount>1 podAntiAffinity: true # -- Requests and limits of pod resources. See: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers) resources: {} image: # -- Zabbix Web Docker image name repository: zabbix/zabbix-web-nginx-pgsql # -- Zabbix Web Docker image tag, if you want to override zabbixImageTag tag: null # -- Pull policy of Docker image pullPolicy: IfNotPresent # -- List of dockerconfig secrets names to use when pulling images pullSecrets: [] # -- Certificate containing certificates for SAML configuration #samlCertsSecretName: zabbix-web-samlcerts service: # -- Type of service for Zabbix Web type: ClusterIP # -- externalTrafficPolicy for Zabbix Web. "Local" to preserve sender's IP address. Please note that this might not work on multi-node clusters, depending on your network settings. #externalTrafficPolicy: Local # -- IPs if use service type LoadBalancer" externalIPs: [] loadBalancerIP: "" # -- Cluster IP for Zabbix Web clusterIP: # -- Port to expose service port: 80 # -- NodePort port to allocate (only if service.type = NodePort) #nodePort: 31080 # -- Annotations for the Zabbix Web annotations: {} # metallb.universe.tf/address-pool: production-public-ips # -- Extra environment variables. A list of additional environment variables. List can be extended with other environment variables listed here: https://github.com/zabbix/zabbix-docker/tree/6.0/Dockerfiles/web-apache-pgsql/alpine#environment-variables. See example: https://github.com/zabbix-community/helm-zabbix/blob/master/charts/zabbix/docs/example/kind/values.yaml extraEnv: [] #- name: ZBX_SSO_SETTINGS # value: '{"baseurl": "https://zabbix.example.com"}' #- name: ZBX_SERVER_NAME # value: Demo Zabbix # -- annotations to add to the deployment deploymentAnnotations: {} # -- annotations to add to the containers containerAnnotations: {} # -- additional volumeMounts to the Zabbix Web container extraVolumeMounts: [] # -- additional containers to start within the Zabbix Web pod extraContainers: [] # -- additional init containers to start within the Zabbix Web pod extraInitContainers: [] # -- additional volumes to make available to the Zabbix Web pod extraVolumes: [] # -- additional specifications to the Zabbix Web pod extraPodSpecs: {} livenessProbe: # -- Path of health check of application path: / # -- Number of seconds after the container has started before liveness initialDelaySeconds: 30 # -- Specifies that the kubelet should perform a liveness probe every N seconds periodSeconds: 10 # -- Number of seconds after which the probe times out timeoutSeconds: 5 # -- When a probe fails, Kubernetes will try failureThreshold times before giving up. Giving up in case of liveness probe means restarting the container. In case of readiness probe the Pod will be marked Unready failureThreshold: 6 # -- Minimum consecutive successes for the probe to be considered successful after having failed successThreshold: 1 readinessProbe: # -- Path of health check of application path: / # -- Number of seconds after the container has started before readiness initialDelaySeconds: 5 # -- Specifies that the kubelet should perform a readiness probe every N seconds periodSeconds: 10 # -- Number of seconds after which the probe times out timeoutSeconds: 5 # -- When a probe fails, Kubernetes will try failureThreshold times before giving up. Giving up in case of liveness probe means restarting the container. In case of readiness probe the Pod will be marked Unready failureThreshold: 6 # -- Minimum consecutive successes for the probe to be considered successful after having failed successThreshold: 1 # **Zabbix Web Service** configurations zabbixWebService: # -- Enables use of **Zabbix Web Service** enabled: true # -- Number of replicas of ``zabbixWebService`` module replicaCount: 1 # -- set permissive podAntiAffinity to spread replicas over cluster nodes if replicaCount>1 podAntiAffinity: true # -- Requests and limits of pod resources. See: [https://kubernetes.io/docs/concepts/configuration/manage-resources-containers](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers) resources: {} image: # -- Zabbix Webservice Docker image name repository: zabbix/zabbix-web-service # -- Zabbix Webservice Docker image tag, if you want to override zabbixImageTag tag: null # -- Pull policy of Docker image pullPolicy: IfNotPresent # -- List of dockerconfig secrets names to use when pulling images pullSecrets: [] # -- set the IgnoreURLCertErrors configuration setting of Zabbix Web Service #ignoreURLCertErrors=1 service: # -- Type of service for Zabbix Web type: ClusterIP # -- Cluster IP for Zabbix Web clusterIP: # -- Port to expose service port: 10053 # -- Annotations for the Zabbix Web Service annotations: {} # metallb.universe.tf/address-pool: production-public-ips # -- Extra environment variables. A list of additional environment variables. List can be extended with other environment variables listed here: https://github.com/zabbix/zabbix-docker/tree/6.0/Dockerfiles/web-service/alpine#environment-variables. See example: https://github.com/zabbix-community/helm-zabbix/blob/master/charts/zabbix/docs/example/kind/values.yaml extraEnv: [] # -- annotations to add to the deployment deploymentAnnotations: {} # -- annotations to add to the containers containerAnnotations: {} # -- additional volumeMounts to the Zabbix Web Service container extraVolumeMounts: [] # -- additional containers to start within the Zabbix Web Service pod extraContainers: [] # -- additional init containers to start within the Zabbix Web Service pod extraInitContainers: [] # -- additional volumes to make available to the Zabbix Web Service pod extraVolumes: [] # -- additional specifications to the Zabbix Web Service pod extraPodSpecs: {} # Ingress configurations ingress: # -- Enables Ingress enabled: false # -- Ingress annotations annotations: {} # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: "true" # -- Ingress hosts hosts: - host: chart-example.local paths: - path: / pathType: ImplementationSpecific # -- Ingress TLS configuration tls: [] # - secretName: chart-example-tls # hosts: # - chart-example.local # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress # ingressClassName: nginx # -- pathType is only for k8s >= 1.1= pathType: Prefix # Ingress CRD object for the Traefik Ingresscontroller ingressRoute: # -- Enables Traefik IngressRoute enabled: false # -- IngressRoute annotations annotations: {} # -- Ingressroute entrypoints entryPoints: - websecure # -- Ingressroute host name hostName: chart-example.local # -- IngressRoute TLS configuration #tls: # certResolver: myresolver route: # -- Enables Route object for Openshift enabled: false # -- Host Name for the route. Can be left empty hostName: chart-example.local # -- Openshift Route wildcardPolicy #wildcardPolicy: # -- Openshift Route TLS settings tls: termination: edge #insecureEdgeTerminationPolicy: Redirect # -- Openshift Route extra annotations annotations: {} # -- nodeSelector configurations. Reference: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ nodeSelector: {} # -- Tolerations configurations. Reference: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ tolerations: [] # -- Affinity configurations. Reference: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ affinity: {} # -- Security Context configurations. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: {} karpenter: # -- Enables support provisioner of Karpenter. Reference: https://karpenter.sh/. Tested only using EKS cluster 1.23 in AWS with Karpenter 0.19.2. enabled: false # -- Name of cluster. Change the term CHANGE_HERE by EKS cluster name if you want to use Karpenter. clusterName: "CHANGE_HERE" # -- Tag of discovery with name of cluster used by Karpenter. Change the term CHANGE_HERE by EKS cluster name if you want to use Karpenter. The cluster name, security group and subnets must have this tag. tag: "karpenter.sh/discovery/CHANGE_HERE: CHANGE_HERE" # -- Resource limits constrain the total size of the cluster. Limits prevent Karpenter from creating new instances once the limit is exceeded. limits: resources: cpu: "1000" memory: 1000Gi