Add compatibility workflows and integration tests (#1991)

Fixes #1986
Fixes #1994

- Updated .gitignore to include SSL certificate files.
- Introduced new GitHub Actions workflows for testing compatibility with
Zabbix versions 5.0, 6.0, 7.0, and 7.2.
- Added integration tests for Zabbix API for each version, ensuring
proper authentication and API version handling.
- Updated Docker Compose files to support SSL configuration for Zabbix
web services.
- Removed deprecated default Docker Compose and bootstrap files.
- Removed devenv for version 6.2.
This commit is contained in:
Zoltán Bedi
2025-03-19 14:04:52 +01:00
committed by GitHub
parent 356dbb62ad
commit 4036bc585b
27 changed files with 884 additions and 1350 deletions

View File

@@ -1,6 +1,30 @@
version: '3'
services:
ssl-cert:
image: alpine:latest
command: |
sh -c "if [ ! -f /certs/nginx.crt ] || [ ! -f /certs/nginx.key ]; then
apk add --no-cache openssl &&
mkdir -p /certs &&
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /certs/nginx.key -out /certs/nginx.crt -subj '/C=US/ST=State/L=City/O=Organization/CN=localhost' &&
chmod 644 /certs/nginx.crt /certs/nginx.key
else
echo 'SSL certificates already exist, skipping generation'
fi"
volumes:
- ../nginx:/certs
# Grafana
grafana:
image: grafana/grafana:main
ports:
- '3001:3000'
volumes:
- ../..:/grafana-zabbix
- ../dashboards:/devenv/dashboards
- ../grafana.ini:/etc/grafana/grafana.ini:ro
- '../datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml'
- '../dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml'
# Zabbix
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-5.0-latest
@@ -16,14 +40,17 @@ services:
POSTGRES_DB: zabbix
zabbix-web:
image: zabbix/zabbix-web-apache-pgsql:alpine-5.0-latest
image: zabbix/zabbix-web-nginx-pgsql:alpine-5.0-latest
ports:
- '443:443'
- '8188:8080'
- '8189:8443'
# - "8188:80"
depends_on:
- database
- zabbix-server
ssl-cert:
condition: service_completed_successfully
database:
condition: service_started
zabbix-server:
condition: service_started
environment:
ZBX_SERVER_HOST: zabbix-server
ZBX_SERVER_PORT: 10051
@@ -34,7 +61,9 @@ services:
POSTGRES_DB: zabbix
ZBX_SESSION_NAME: zbx_sessionid_new
volumes:
- ./ssl:/etc/ssl/apache2:ro
- ../nginx:/etc/nginx/ssl:ro
- ../nginx/default.conf:/etc/nginx/http.d/default.conf:ro
- ../nginx/.htpasswd:/etc/nginx/.htpasswd:ro
database:
image: postgres:14
@@ -76,7 +105,6 @@ services:
ZBX_HOSTS_NUMBER: 10
environment:
ZBX_API_URL: http://zabbix-web:8080
# ZBX_API_URL: http://zabbix-web:80
ZBX_API_USER: Admin
ZBX_API_PASSWORD: zabbix
depends_on:
@@ -98,7 +126,6 @@ services:
- ../zas-agent/conf/zas_scenario_backend.cfg:/etc/zas_scenario.cfg
environment:
REDIS_HOST: redis_backend
# restart: always
zas_backend_02:
build: ../zas-agent