Skip to content

v5.8.0

Choose a tag to compare

@epacke epacke released this 17 May 21:03
· 36 commits to master since this release
2288d53

What's Changed

  • Move docker builds to GitHub and reorganise the repo by @epacke in #171

Repository layout

  • Split the monorepo into frontend/, data-collector/, helm/, and contrib/ (help scripts, iRules, sample web server configs).
  • Frontend build, Cypress tests, and tooling live under frontend/; collector script and modules under data-collector/.

Containers & local development

  • Docker images for the UI (nginx) and PowerShell collector, published to GHCR on version tags.
  • docker compose stack: collector loop + frontend sharing a JSON volume; F5 credentials via Docker secrets; config from config/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.sh for periodic runs.
  • REPORT_ROOT and F5_* 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/, and js-src/ (moved under frontend/ / data-collector/).
  • Root nginx config (replaced by frontend/nginx/).
  • TamperMonkey case-creation script.
  • knowndevices.json from 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