Skip to content

Repository files navigation

Helm Zabbix

License Downloads Releases ChangeLog

About this chart

See the charts/zabbix/README.md file to learn more about this helm chart or access Artifact Hub.

This Helm chart installs Zabbix in a Kubernetes cluster. It supports only Postgresql/TimescaleDB as a database backend at this point in time, without any plans to extend database support towards MySQL, MariaDB, etc. Also, this Helm Chart supports Zabbix Server High Availability

Contributing

See the CONTRIBUTING.md file to learn how to contribute to this helm chart.

Examples

See the charts/zabbix/docs/example/README.md file to install this helm chart in kind cluster.

Important links

Related to this helm chart

Related to Zabbix

Repository structure

.
├── charts
│   └── zabbix                             # The Helm chart itself
│       ├── docs
│       │   ├── example
│       │   │   ├── kind
│       │   │   │   └── values.yaml        # Example values.yaml to install this chart in a kind cluster
│       │   │   └── README.md               # Tutorial to install this chart in a kind cluster
│       │   ├── README.md                   # Index of docs
│       │   └── requirements.md             # Requirements to develop/test this chart
│       ├── templates                       # Kubernetes manifests (Go templates), one file per kind/component
│       │   ├── tests
│       │   │   ├── test-server-connection.yaml   # helm test: checks Zabbix Server connectivity
│       │   │   └── test-web-connection.yaml      # helm test: checks Zabbix Web connectivity
│       │   ├── clusterrole-binding.yaml
│       │   ├── clusterrole.yaml
│       │   ├── cronjob-hanodes-autoclean.yaml     # Cleans up stale Zabbix Server HA nodes
│       │   ├── daemonset-zabbix-agent.yaml
│       │   ├── deployment-webdriver.yaml
│       │   ├── deployment-zabbix-java-gateway.yaml
│       │   ├── deployment-zabbix-server.yaml
│       │   ├── deployment-zabbix-webservice.yaml
│       │   ├── deployment-zabbix-web.yaml
│       │   ├── extra-manifests.yaml        # Renders arbitrary manifests from .Values.extraManifests
│       │   ├── _helpers.tpl                # Shared template helpers/macros (labels, names, DB env vars, etc.)
│       │   ├── ingress.yaml
│       │   ├── job-create-upgrade-db.yaml  # Pre-install/pre-upgrade hook Job that prepares/migrates the DB schema
│       │   ├── NOTES.txt                   # Post-install usage notes shown by helm
│       │   ├── rolebinding-ha-helper.yaml
│       │   ├── role-ha-helper.yaml
│       │   ├── secret-db-access.yaml
│       │   ├── serviceaccount-ha-helper.yaml
│       │   ├── serviceaccount.yaml
│       │   ├── service.yaml
│       │   ├── statefulset-postgresql.yaml
│       │   └── statefulset-zabbix-proxy.yaml
│       ├── artifacthub-pkg.yml             # Artifact Hub metadata
│       ├── artifacthub-repo.yml            # Artifact Hub repository metadata
│       ├── Chart.yaml                      # Chart name, version and appVersion
│       ├── Makefile                        # Dockerized helm/helm-docs targets: lint, package, gen-docs
│       ├── README.md                       # Generated chart documentation (do not edit directly)
│       ├── README.md.gotmpl                # Source template used to generate README.md via helm-docs
│       └── values.yaml                     # Chart default configuration values
├── .github
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   ├── workflows
│   │   ├── helm-chart-releaser.yml         # Publishes chart releases on tag push
│   │   └── tests.yaml                      # Lints and tests the chart against kind clusters
│   ├── CODEOWNERS
│   ├── dependabot.yml
│   └── PULL_REQUEST_TEMPLATE.md
├── CLAUDE.md                               # Guidance for Claude Code when working in this repository
├── CONTRIBUTING.md                         # How to contribute and how to release new chart versions
├── HISTORY.md                              # Repository history
├── LICENSE
└── README.md                               # This file

Release process

Publishing a new version of this Helm chart is restricted to the code maintainers (see CONTRIBUTING.md for the full step-by-step, including exact commands). At a high level:

  • The version field in charts/zabbix/Chart.yaml follows a major.minor.patch convention where, in practice, only the last two digits are used: a major ("dot-release", e.g. 6.0.26.1.0) signals a change that may require users to update their values.yaml, and a minor ("dot-dot-release", e.g. 6.0.26.0.3) is a safe, no-API-change upgrade.
  • Bumping version/appVersion in Chart.yaml and artifacthub-pkg.yml, and regenerating charts/zabbix/README.md via make gen-docs, only happens on the release branch/PR, right before merging to main.
  • A release is actually cut by pushing a git tag (x.y.z) to the upstream repository, which triggers .github/workflows/helm-chart-releaser.yml to package and publish the chart as a GitHub Release named zabbix-x.y.z.
flowchart TD
    A[Review and merge open PRs into main] --> B[Create a release branch]
    B --> C["Run local tests (cd charts/zabbix && make lint)"]
    C --> D["Bump version/appVersion in Chart.yaml and artifacthub-pkg.yml"]
    D --> E["Update zabbixImageTag in values.yaml"]
    E --> F["Update createdAt in artifacthub-pkg.yml"]
    F --> G["Update ZABBIX_CHART_VERSION in artifacthub-pkg.yml and README.md.gotmpl"]
    G --> H["cd charts/zabbix && make gen-docs"]
    H --> I[Commit and push the release branch]
    I --> J[Open Pull Request to main]
    J --> K{Reviewer requests changes?}
    K -- Yes --> D
    K -- No --> L[Merge Pull Request into main]
    L --> M["Sync local main (git pull upstream main)"]
    M --> N["Create annotated tag (git tag -a x.y.z -m 'New release')"]
    N --> O["Push tag (git push upstream --tags)"]
    O --> P["helm-chart-releaser.yml workflow runs"]
    P --> Q["chart-releaser packages the chart and publishes GitHub Release 'zabbix-x.y.z'"]
    Q --> R[Edit and adjust the auto-generated release notes on GitHub]
Loading

Contributors

Made with contrib.rocks.

Maintainers

History

See the HISTORY.md file.

License

Apache 2.0 License.