Skip to content

Releases: zabbix-community/helm-zabbix

zabbix-6.1.1

27 Nov 18:12
47b3ed0
Compare
Choose a tag to compare

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

26 Nov 09:54
4213069
Compare
Choose a tag to compare
  • 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 in values.yamlfile. It is now possible to use a different Schema other than "public" in Postgresql database, when using an external database. More info: #127

Fixes:

#122
#120
#119

PRs:

#128
#127
#125
#124
#123
#121

Thanks @fibbs @sinux-l5d @angelnu

zabbix-6.0.0

18 Nov 15:18
0e64ae5
Compare
Choose a tag to compare
  • 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's zabbixServer.zabbixServerHA section

Fixes:

PR:

Thanks @fibbs @crowleym @Elbandi @filicivi @aeciopires

zabbix-5.0.2

24 Sep 05:55
309d77f
Compare
Choose a tag to compare
  • 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

03 Jul 00:38
d3632b5
Compare
Choose a tag to compare
  • Bump chart version
  • Updated docs
  • Updated helm version in Makefile

Fixes:

PR:

Thanks @aeciopires @mkaspar

zabbix-5.0.0

04 Jun 13:24
a649901
Compare
Choose a tag to compare
  • 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

26 May 20:05
e9ec1a9
Compare
Choose a tag to compare
  • Added new values
  • Updated documentation
  • Refactory in all services templates of Zabbix Components
  • Bump chart version

Fixes:

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...
Read more

zabbix-4.4.0

22 May 05:16
1dd0ba8
Compare
Choose a tag to compare

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

24 Mar 03:59
092b1b4
Compare
Choose a tag to compare

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
  • 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 and helm-docs
  • Removed service of the Zabbix Agent in sidecar instalation mode
  • Contents of the artifacthub-pkg.yml file updated
  • Removed duplicated labels in serviceaccount and service 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

01 Mar 13:05
780b6cd
Compare
Choose a tag to compare

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

PRs merged:
#75
#76

Thanks @aeciopires @shing6326