Re-validate the 8.0 export against the Zabbix 8.0.0 release and drop references to the development build. - Import the 8.0 export into Zabbix 8.0.0 and link it to a test host. - Mark 8.0 LTS as supported in the README and version policy. - Remove the alpine-trunk fallback note now that 8.0 images exist. - Run the CI import test as a 7.0/8.0 matrix with distinct project names and host ports so parallel jobs do not collide.
78 lines
2.5 KiB
Markdown
78 lines
2.5 KiB
Markdown
# Zabbix Version Policy
|
|
|
|
## Current Support
|
|
|
|
| Zabbix | Status | Directory |
|
|
|---|---|---|
|
|
| 7.0 LTS | Primary | `7.0/` |
|
|
| 8.0 LTS | Supported (tested with 8.0.0) | `8.0/` |
|
|
|
|
The `8.0/` export was imported into Zabbix 8.0.0 and linked to a test host.
|
|
|
|
## Principles
|
|
|
|
- For each package, create only the directory for the minimum supported version.
|
|
- A YAML export from Zabbix 7.0 can normally be imported into 7.0 and later versions.
|
|
- Add an `8.0/` directory only when the template uses features specific to 8.0 or the 8.0 export differs from the 7.0 export.
|
|
- If the same export also works on 8.0, keep only the existing directory and add `"8.0"` to `zabbix.tested` in `manifest.yaml`.
|
|
|
|
To scaffold a package that supports 8.0 only, run `ZABBIX_MIN=8.0 make new ...`.
|
|
|
|
## Adding Zabbix 8.0 LTS
|
|
|
|
The `8.0/` export is already included. The steps below describe how it was added and how to add future versions.
|
|
|
|
1. Import the template into an 8.0 test environment.
|
|
2. Check whether the 7.0 export still works.
|
|
3. If it works without changes:
|
|
- Add `"8.0"` to `zabbix.tested` in `manifest.yaml`.
|
|
- Leave `zabbix.max` as `null`.
|
|
4. If 8.0 requires changes:
|
|
- Create `templates/<category>/<product>/8.0/` and place the export from 8.0 there.
|
|
- Document any 8.0-specific notes in `README.md`.
|
|
- Leave `zabbix.max` as `null` and add `"8.0"` to `tested`.
|
|
|
|
### Testing a specific version
|
|
|
|
`scripts/import_test.sh` detects the server version from `apiinfo.version` and imports only the matching version directory. Use environment variables to select the image tags:
|
|
|
|
```bash
|
|
ZBX_SERVER_IMAGE=alpine-8.0-latest \
|
|
ZBX_WEB_IMAGE=alpine-8.0-latest \
|
|
ZBX_TEST_PROJECT=zabbix-templates-test-8 \
|
|
make import-test
|
|
```
|
|
|
|
## Choosing a Version Directory
|
|
|
|
Consumers use the newest directory that is less than or equal to their Zabbix version.
|
|
|
|
| Consumer Zabbix | When `7.0/` and `8.0/` exist |
|
|
|---|---|
|
|
| 7.0 | `7.0/` |
|
|
| 7.4 | `7.0/` |
|
|
| 8.0 | `8.0/` |
|
|
|
|
## Template Versions
|
|
|
|
The `version` field in `manifest.yaml` follows SemVer.
|
|
|
|
- MAJOR: Template rename, macro removal, or another incompatible change
|
|
- MINOR: New items, triggers, or LLD rules
|
|
- PATCH: Threshold, description, or bug fixes
|
|
|
|
## Git Tags
|
|
|
|
Tag each template independently.
|
|
|
|
```bash
|
|
git tag app-apache-v1.2.0
|
|
git push origin app-apache-v1.2.0
|
|
```
|
|
|
|
Use a collection-wide tag such as `v2026.11.0` only when a repository-level release is needed.
|
|
|
|
## End of Support
|
|
|
|
- To drop 7.0 support, remove `7.0/`, update `zabbix.min` to `"8.0"`, and increment the MAJOR version because the change is breaking.
|