Releases: zabbix-community/helm-zabbix
zabbix-6.1.1
When changing the structure of the Helm Chart to allow Zabbix Server HA mode to be disabled, we missed the fact that still the environment variable ZBX_NODEADDRESS has to be set to a proper IP or host name under which the Zabbix Server will be reachable from the web frontend. Only the ZBX_HANODENAME actually switches HA mode on and off by being set or not set. This release fixes this bug.
PRs:
Thanks @fibbs
zabbix-6.1.0
- Updated chart version
- Updated chart documentation
- Updated Zabbix version
- Changed helm version
- Removed support for non-default Kubernetes features and Custom Resource objects: IngressRoute, Route. More info: #123
- Removed support for karpenter due to the more generalistic approach. More info: #121
- Added support to deploy any arbitrary manifests together with this Helm Chart by embedding them in the
.Values.extraManifests
list. More info: #121 - From now on, the keys to use for a
unifiedSecret
to configure postgresql access globally for all relevant components that this Helm Chart deploys, can be configured invalues.yaml
file. It is now possible to use a different Schema other than "public" in Postgresql database, when using an external database. More info: #127
Fixes:
PRs:
Thanks @fibbs @sinux-l5d @angelnu
zabbix-6.0.0
- Updated chart version
- Updated chart documentation
- Updated Zabbix version
- Changed helm version
- Fix bug in volumeMount of Zabbix Agent/Proxy
- Fully support Zabbix 6.0+ Server High Availability (see Support of native Zabbix Server High Availability section)
- No breaking changes in
values.yaml
file, but nevertheless you might want to review your values.yaml'szabbixServer.zabbixServerHA
section
- No breaking changes in
Fixes:
PR:
Thanks @fibbs @crowleym @Elbandi @filicivi @aeciopires
zabbix-5.0.2
- Updated chart version
- Updated chart documentation
- Updated Zabbix version
- Changed helm and helm-docs version
- Fix bug in volumeMount of Zabbix Agent
- Commented unnecessary helm values of example
Fixes:
PR:
Thanks @aeciopires @bonzonkim and @siegy22
zabbix-5.0.1
- Bump chart version
- Updated docs
- Updated helm version in Makefile
Fixes:
PR:
Thanks @aeciopires @mkaspar
zabbix-5.0.0
- Updated documentation
- Bump chart version
- Add to support Zabbix 7, PostgreSQL 16.x and timescaleDB 2.14.2-pg16
- Improvements in extraEnv parameter to support environment variables from configMap and Secrets #93. Thanks @Elbandi
- Updated requirements
Fixes:
PR:
Thanks @aeciopires @Elbandi
Example of using extraEnv for existing secret in Kubernetes cluster:
zabbixServer:
[...]
extraEnv:
- name: "ZBX_EXAMPLE_MY_ENV_1"
value: "true"
- name: "ZBX_EXAMPLE_MY_ENV_2"
value: "false"
- name: "ZBX_EXAMPLE_MY_ENV_3"
value: "100"
- name: MY_USERNAME
valueFrom:
secretKeyRef:
name: my-envs
key: user
- name: MY_PASSWORD
valueFrom:
secretKeyRef:
name: my-envs
key: password
[...]
zabbix-4.4.1
- Added new values
- Updated documentation
- Refactory in all services templates of Zabbix Components
- Bump chart version
Fixes:
- Fixed issues with exposing Zabbix components outside the Kubernetes cluster, related with the topic https://github.com/zabbix-community/helm-zabbix/discussions/27
Thanks @aeciopires
New values:
zabbixServer:
service:
# -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
#More details: https://kubernetes.io/docs/concepts/services-networking/service/
type: ClusterIP
# -- clusterIP is the IP address of the service and is usually assigned randomly.
#If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
clusterIP:
# -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses
#(NodePorts, ExternalIPs, and LoadBalancer IPs). "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
# -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service.
#These IPs are not managed by Kubernetes.
externalIPs: []
# -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying
#the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
loadBalancerIP: ""
# -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer
#will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
loadBalancerSourceRanges: []
# -- loadBalancerClass is the class of the load balancer implementation this Service belongs to.
#If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or
#"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'.
#If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration,
#but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services
#with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field.
#This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed.
#This field will be wiped when a service is updated to a non 'LoadBalancer' type.
loadBalancerClass: ""
# -- Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity.
#Must be ClientIP or None. Defaults to None. More info:
#https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
sessionAffinity: None
# -- Port of service in Kubernetes cluster
port: 10051
# -- NodePort port to allocate on each node (only if service.type = NodePort or Loadbalancer)
nodePort: 31051
# -- Annotations for the zabbix-server service
postgresql:
service:
# -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
# More details: https://kubernetes.io/docs/concepts/services-networking/service/
type: ClusterIP
# -- clusterIP is the IP address of the service and is usually assigned randomly. If an address is specified manually,
#is in-range (as per system configuration), and is not in use, it will be allocated to the service.
clusterIP:
# -- Port of service in Kubernetes cluster
port: 5432
zabbixProxy:
service:
# -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
#More details: https://kubernetes.io/docs/concepts/services-networking/service/
type: ClusterIP
# -- clusterIP is the IP address of the service and is usually assigned randomly.
#If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
clusterIP:
# -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses
#(NodePorts, ExternalIPs, and LoadBalancer IPs). "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
# -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service.
#These IPs are not managed by Kubernetes.
externalIPs: []
# -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying
#the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
loadBalancerIP: ""
# -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer
#will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
loadBalancerSourceRanges: []
# -- loadBalancerClass is the class of the load balancer implementation this Service belongs to.
#If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or
#"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'.
#If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration,
#but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services
#with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field.
#This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed.
#This field will be wiped when a service is updated to a non 'LoadBalancer' type.
loadBalancerClass: ""
# -- Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity.
#Must be ClientIP or None. Defaults to None. More info:
#https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
sessionAffinity: None
# -- Port of service in Kubernetes cluster
port: 10051
# -- NodePort port to allocate on each node (only if service.type = NodePort or Loadbalancer)
nodePort: 31053
zabbixAgent:
service:
# -- Type of service to expose the application. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
#More details: https://kubernetes.io/docs/concepts/services-networking/service/
type: ClusterIP
# -- clusterIP is the IP address of the service and is usually assigned randomly.
#If an address is specified manually, is in-range (as per system configuration), and is not in use, it will be allocated to the service.
clusterIP:
# -- externalTrafficPolicy describes how nodes distribute service traffic they receive on one of the Service's "externally-facing" addresses
#(NodePorts, ExternalIPs, and LoadBalancer IPs). "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
# -- externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service.
#These IPs are not managed by Kubernetes.
externalIPs: []
# -- Only applies to Service Type: LoadBalancer. This feature depends on whether the underlying cloud-provider supports specifying
#the loadBalancerIP when a load balancer is created. This field will be ignored if the cloud-provider does not support the feature.
loadBalancerIP: ""
# -- If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer
#will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature.
loadBalancerSourceRanges: []
# -- loadBalancerClass is the class of the load balancer implementation this Service belongs to.
#If specified, the value of this field must be a label-style identifier, with an optional prefix, e.g. "internal-vip" or
#"example.com/internal-vip". Unprefixed names are reserved for end-users. This field can only be set when the Service type is 'LoadBalancer'.
#If not set, the default load balancer implementation is used, today this is typically done through the cloud provider integration,
#but should apply for any default implementation. If set, it is assumed that a load balancer implementation is watching for Services
#with a matching class. Any default load balancer implementation (e.g. cloud providers) should ignore Services that set this field.
#This field can only be set when creating or updating a Service to type 'LoadBalancer'. Once set, it can not be changed.
#This field will be wiped when a service is u...
zabbix-4.4.0
Fixed bugs and improvements:
- Updated documentation
- Bump chart version
- Upgraded Zabbix tag images to 6.0.30 and 6.4.15
- Added exteranlIPS and loadBalancerIP to zabbix-agent
Fixes:
PRs merged:
Thanks @aeciopires @Elbandi @szpeter80
New values:
zabbixAgent:
# -- externalTrafficPolicy for Zabbix Agent. "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: ""
zabbix-4.3.0
This release contains a small breaking change in values related to the zabbixWeb component:
zabbixWeb.livenessProbe.path -> zabbixWeb.livenessProbe.httpGet.path
zabbixWeb.readinessProbe.path -> zabbixWeb.readinessProbe.httpGet.path
Fixed bugs and improvements:
- Updated documentation
- Bump chart version
- Created clusterrole and clusterrole-binding
- Copied and adapted from: https://git.zabbix.com/projects/ZT/repos/kubernetes-helm/browse/templates/
- Added installation of the Zabbix Java Gateway component (Thanks @mohammed6688)
- Added Tolerations in jobs and cronjobs (Thanks @darkxeno)
- Updated the versions of the binaries
kubectl
,helm
andhelm-docs
- Removed service of the Zabbix Agent in sidecar instalation mode
- Contents of the
artifacthub-pkg.yml
file updated - Removed duplicated labels in
serviceaccount
andservice
templates - Added custom labels and annotations to job-init-db-schema
- Created new values (see the end of this message)
Fixes:
PRs merged:
Thanks @aeciopires @mohammed6688 @darkxeno
New values:
zabbixServer:
jobDBSchema:
# -- Annotations to add to the jobs
jobAnnotations: {}
# -- Labels to add to the jobs
jobLabels: {}
zabbixAgent:
livenessProbe:
tcpSocket:
# -- Port number/alias name of the container
port: zabbix-agent
timeoutSeconds: 3
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
# -- The kubelet uses readiness probes to know when a container is ready to start accepting traffic. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
readinessProbe: {}
# -- The kubelet uses startup probes to know when a container application has started. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
startupProbe:
tcpSocket:
# -- Port number/alias name of the container
port: zabbix-agent
initialDelaySeconds: 15
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 5
successThreshold: 1
zabbixWeb:
livenessProbe:
httpGet:
# -- Path of health check of application
path: /
# -- Port number/alias name of the container
port: zabbix-web
readinessProbe:
httpGet:
# -- Path of health check of application
path: /
# -- Port number/alias name of the container
port: zabbix-web
# -- The kubelet uses startup probes to know when a container application has started. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
startupProbe: {}
# **Zabbix Java Gateway** configurations
zabbixJavaGateway:
# -- Enables use of **Zabbix Java Gateway**
enabled: false
# -- Number of replicas of ``Zabbix Java Gateway`` 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 Java Gateway Docker image name.
repository: zabbix/zabbix-java-gateway
# -- Zabbix Java Gateway Docker image tag, if you want to override zabbixImageTag
tag: null
# -- Pull policy of Docker image
pullPolicy: IfNotPresent
ZBX_TIMEOUT: 3
# -- Additional arguments for Zabbix Java Gateway. Useful to enable additional libraries and features.
# ZABBIX_OPTIONS:
# Java Gateway Service Name
ZBX_JAVAGATEWAY: zabbix-java-gateway
# Java Gateway Service Port
service:
# -- Type of service for Zabbix Java Gateway
type: ClusterIP
# -- Cluster IP for Zabbix Java Gateway
clusterIP:
# -- Port to expose service
port: 10052
# -- ExternalTrafficPolicy for Zabbix Java Gateway 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: 31052
# -- Annotations for the zabbix-java-gateway 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/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 Java Gateway container
extraVolumeMounts: []
# -- Annotations to add to the deployment
deploymentAnnotations: {}
# -- Labels to add to the deployment
deploymentLabels: {}
# -- Annotations to add to the containers
containerAnnotations: {}
# -- Labels to add to the containers
containerLabels: {}
# -- Additional containers to start within the Zabbix Java Gateway pod
extraContainers: []
# -- Additional init containers to start within the Zabbix Java Gateway pod
extraInitContainers: []
# -- Additional volumes to make available to the Zabbix Java Gateway pod
extraVolumes: []
# -- Additional specifications to the Zabbix Java Gateway pod
extraPodSpecs: {}
# -- Security Context configurations. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
securityContext: {}
# -- The kubelet uses liveness probes to know when to restart a container. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
livenessProbe:
tcpSocket:
# -- Port number/alias name of the container
port: zabbix-java-gw
timeoutSeconds: 3
failureThreshold: 3
periodSeconds: 10
successThreshold: 1
# -- The kubelet uses readiness probes to know when a container is ready to start accepting traffic. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
readinessProbe: {}
# -- The kubelet uses startup probes to know when a container application has started. Reference: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
startupProbe:
tcpSocket:
# -- Port number/alias name of the container
port: zabbix-java-gw
initialDelaySeconds: 15
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 5
successThreshold: 1
rbac:
# -- Specifies whether the RBAC resources should be created
create: true
additionalRulesForClusterRole: []
# - apiGroups: [ "" ]
# resources:
# - nodes/proxy
# verbs: [ "get", "list", "watch" ]
zabbix-4.2.1
This version contains the follow changes:
- This version has no breaking change
- Publish new version with hotfix made by @shing6326. See #75
- Added badge with download release count
- Bumped chart version to 4.2.1
- Updated documentation of the helm chart
Thanks @aeciopires @shing6326