initial commit

This commit is contained in:
allard
2025-11-23 18:58:51 +01:00
commit 376a944abc
1553 changed files with 314731 additions and 0 deletions

View File

@@ -0,0 +1,540 @@
# 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