Repository navigation
v5.8.0
What's Changed
Repository layout
- Split the monorepo into
frontend/,data-collector/,helm/, andcontrib/(help scripts, iRules, sample web server configs). - Frontend build, Cypress tests, and tooling live under
frontend/; collector script and modules underdata-collector/.
Containers & local development
- Docker images for the UI (nginx) and PowerShell collector, published to GHCR on version tags.
docker composestack: collector loop + frontend sharing a JSON volume; F5 credentials via Docker secrets; config fromconfig/bigipreportconfig.xml.- Collector runs as a non-root user; credentials can come from files, env vars, or XML (Kubernetes secrets supported).
- Optional Brotli-compressed JSON (
.br); nginx serves them when clients accept Brotli.
Helm chart (new)
- Deploys frontend Deployment, collector CronJob, PVC, Service, and ConfigMap for
bigipreportconfig.xml. - Supply config with
--set-file config.xml=…(no need to fork the chart for XML). - Ingress with optional cert-manager TLS issuance or an existing TLS secret.
- Optional egress controls: CiliumNetworkPolicy, Istio ServiceEntry, or NetworkPolicy.
- Workloads hardened for restricted pod security (non-root, dropped caps, read-only root, seccomp).
- Optional install-time checks for prerequisites (F5 secret, ConfigMap, TLS secret).
Frontend
- Built with webpack from TypeScript under
frontend/src/. - HTML escaping for dynamic content to reduce XSS risk.
- Device metadata moved from runtime JSON into TypeScript (
KnownDevices.ts). - nginx-unprivileged image on port 8080.
Data collector
- Packaged for containers with
collect-loop.shfor periodic runs. REPORT_ROOTandF5_*env vars for Docker/Kubernetes.- Brotli output path aligned with the new nginx config.
CI/CD
- Frontend CI: lint, unit tests, and Cypress in one workflow (path-filtered).
- PR previews: preview images and Helm chart to GHCR (
sha-…tags). - Release: approved publish of both images and OCI Helm chart on
v*tags. - Package cleanup workflow for old GHCR versions.
- Removed separate legacy lint/unit-test/version workflows.
- Uploading tar.gz releases when pushing v* tags (and moving releases from loadbalancing.se to GitHub).
Removed / relocated
- Root-level
bigipreport.ps1,underlay/, andjs-src/(moved underfrontend//data-collector/). - Root nginx config (replaced by
frontend/nginx/). - TamperMonkey case-creation script.
knowndevices.jsonfrom the static site bundle.
Developer tooling
- Makefile for local Helm lint/template/install, log/describe helpers, and docker-compose reset (uses gitignored
config/for test values and XML).
Upgrade note: Production install can use Helm (OCI chart + GHCR images) or docker compose instead of copying files onto a host. Copy data-collector/bigipreportconfig.xml into your environment’s config/ (or pass it with --set-file for Helm).
Migrating releases
Also attaching old releases without a tag in order to move downloads from https://loadbalancing.se to GitHub. The release for this tag is bigipreport-v5.8.0.tar.gz.
Full Changelog: v5.7.16...v5.8.0