Search
Varnish Controller

Version 5

Version 5.1.2 (2023-03-22)

General

  • All components built with Go 1.20.2.

Brainz

  • Improved database indexes for faster queries.
  • Error log level when MMDB CSV file is not configured has been lowered to Info.

Router

  • Fixed a bug in the Request Router where random was redirected to an unhealthy endpoint.
  • Headers set for health probes in the Routing Rules are now sent in the same casing as configured.
  • Include gRPC Health and Routing Health information in router debug and system debug information.
  • Endpoint added to health probe logging information.

VCLI

  • vcli file now has -label support.

UI

  • Fixed an error in Invalidations where you couldn’t add new headers to existing invalidation.
  • Fixed a bug when having multiple includes with same name when creating/editing VCLGroups.
  • Fixed a bug involving renaming files in editor.

Version 5.1.1 (2023-02-27)

UI

  • UI: Fixed a bug where Tokens wouldn’t show in the menu for org-users.

Version 5.1.0 (2023-02-23)

General

  • All components built with Go 1.20.1
  • getent used as fallback to get uid/gid for components running as a user/group (to support IDM).

Brainz

  • Fixes an issue with varnish_stat_id_seq max ID error in the database.
  • Bug fixes for monitoring of agents during invalidation.
  • Improvements to deployment of VCLGroups.
  • UTC used for the database to avoid time zone issues.
  • Validation added for two or more VCLGroups with same domain cannot use different RoutingRules.
  • Validation added to verify that healthcheck window-size and threshold must be larger than 0.

Router

  • Router now reports correct NS records for private routers.
  • Request logging (to stdout) in the router now logs failed requests as well.
  • DebugHeader for RoutingRules, to only show debug information if a configured header is present.
  • X-Routed-For header for routed requests in a shared Varnish instance.
  • Support for regexp routing decision.
  • Support for reject decision routes in the router.
  • Flatbuffer schema for gRPC plugin updated (still backward compatible):
    • Tags for endpoints (all tags visible for that VCLGroup on the endpoint(agent)).
    • Custom endpoint includes CNAME, status_code, body and headers.
    • Endpoints include CNAME.
    • EndpointRequest includes a reject boolean that tells if the request was for a reject or not.
  • External routes location template support (for custom location format).
  • Support for CNAME for external routes.
  • Support for custom headers in router health checks.
  • NS records now presents the correct TTL.

Agent

API-GW

  • Fixes a bug where login via API required content-type application/json.

VCLI

  • Configuration file for the VCLI now have a stricter permission policy.
  • Various updates to VCLI help outputs.

UI Server

  • Add support for Brotli and Gzip asset files to be returned.
  • Add caching to asset files.
  • Add support for insecure TLS certs towards the API-GW.
  • Return the http timeout as a cookie for the controller UI to use as the compile timeout.

UI

  • Updated Vue to 2.7.
  • In preparing for Vue 3 upgrade there is now a new chart library (BillboardJS) implemented.
  • There is now a way to send varnishadm command to varnish servers from the UI.
  • UI is now using Gzip or Brotli for compression.
  • UI can now handle larger objects in CIDR/ASN/Geolocation.
  • Fixed bug in editor related to comments and includes.
  • Fixed an issue with CSRF token in UI.
  • Fixed an issue where large VCLs could get a timeout during the compilation stage.
  • Updated table component features and adding a search feature.
  • Removed the ability to remove static tags from an agent.
  • Made improvements to a11y.

Version 5.0.2 (2022-11-08)

General

  • NATS updated to latest version, v2.9.6.
  • All components built with Go 1.19.3
  • Improved logging for NATS connection/disconnection for api-gw/brainz/agent/router.

Router

  • The router now strips port from requested domain, to allow the router to run on none default ports.

Agent

  • Improved logging for Varnish-admin interface, logging of connection/disconnection towards Varnish.

API-GW

  • Fixed a a bug where the /stats/cpu, /stats/mem and /stats/net returned a 500 error.

VCLI

  • Improved error logging for the VCLI.

Version 5.0.1 (2022-10-25)

General

  • Dependencies has been upgraded to newer versions.

Brainz

  • Fixes a bug where brainz could panic during a StatusUpdate from the router.
  • Fixes a bug where invalidations got stuck when a VCLGroup was removed that had running invalidations.
  • Fixes a bug where invalidations could get stuck in Retrying state.
  • Fixes a bug where invalidations in Retrying state could not be deleted.

UI

  • Fixes a bug where domains always was shown as required when creating/editing a VCLGroup.

Version 5.0.0 (2022-10-18)

General

  • All components have NATS names with the format <type>-<name if exists(router/agent)>-<hostname>-<pid>.
  • System debug now collects information from the database in terms of configuration to ease debugging.
  • Dependencies has been updated to latest versions.
  • All components built with Go 1.19.2.
  • Nats-server updated to 2.8.4.
  • Debug call for agents/routers are now only available for system admin or owner of a router/agent (private).
  • All timestamps in the database will be in UTC timezone.
  • All components has been statically built (in previous versions they where dynamically linked)

Brainz

  • VCLGroup now has a state called DeployState that can take 3 states and the previous Deploy has been removed.
    • (1) Deployed
    • (2) Deploying
    • (3) Undeployed
  • New UUID format for Trace IDs
  • Fix for a bug where updating multiple domains on a VCLGroup could make brainz panic.
  • Improved metrics (CPU/Memory/Network) fetching for agents.
  • Improved deployment of VCLGroups

Agent

  • Support for private-token for starting as a private agent.
  • Support for custom keys for vmod accounting.
  • Support for multiple IPv4/IPv6 configuration via comma separated strings.
  • Use VTC to test compile VCLs to find issues earlier than before.
  • HeaderPlus VMOD is used in the shared root VCL to handle router redirect requests so that receiving VCL (via label) get the correct Host and URL for the redirected client requests.
  • Agent now uses its base-dir for temporary directory when testing and compiling VCL files.
  • Invalidation now supports TLS towards Varnish.
  • New varnish-invalidation-tls-verify flag for verification of TLS cert in validation.
  • The flag varnish-invalidation-tls now specifies if varnish is running with TLS or not.

Router

  • Support for private-token for starting as a private router.
  • Support for ASN/CIDR/Gelocation routing to tags.
  • Support for DNS routing with multiple A/AAAA records in responses.
  • Randomize selection of endpoints for external routes that has the same weight.

API-GW

  • The /api/v1/vcls endpoints have been removed and replaced with the existing /api/v1/files endpoints.
  • The /api/v1/agents/1/vclgroups endpoint has been removed, use /api/v1/vclgroups?agents.id=1&vg_states.deployed=true instead.
  • The /api/v1/tags/1/agents endpoint has been removed, use /api/v1/agents?tags.id=1 instead.
  • The /api/v1/vclgroups/1/agents endpoint has been removed, use /api/v1/agents?vcl_groups.id=1&vg_states.deployed=true instead.
  • The operator=and has been removed from the filters, instead of ?tags.id=1,2&operator=and use ?tags.id[all]=1,2.
  • UptimeSeconds has been added to Router and Agents data structures. Showing seconds since they were last started.
  • Added support for an oAuth token request to retrieve access tokens for Prometheus & Grafana, more info here.
  • /api/v1/asnroutes Supports ASN routing rule configuration.
  • /api/v1/cidrroutes Supports CIDR routing rule configuration.
  • /api/v1/geolocationroutes Supports Geolocation routing rule configuration.
  • /api/v1/geolocationroutes/location/suggestions/ Finds locations based on fuzzying.
  • /api/v1/geolocationroutes/location/lookup/ Finds a specific location based on geoname ID.
  • Added support for filtering on agents, routers and vclgroups at the statistics endpoints
  • Swagger docs improvements.

CLI

  • Added whoami command to see which user is logged in.
  • The vcls commands are removed, use files instead.
  • New command for states of VCLGroups, vcli vg state (shows errors of deployments).
  • New command vcli license inspect to get full API JSON output of the license.
  • Flags --csv and --json removed from all inspect commands, as it’s always JSON (raw API output).
  • Improved table as JSON formatting (when using --json).
  • vcli inspect <command> now always outputs an array, even for results with one object.
  • vcli account update now outputs updated elements only.
  • vcli ers update now supports -f filter flag.
  • vcli ipd update now outputs updated elements only.
  • vcli org update now outputs updated elements only.
  • vcli perm update now outputs updated elements only.
  • vcli pgrpc update now supports -f filter flag.
  • vcli rps update now supports -f filter flag.
  • vcli vg update now outputs updated elements and will no longer fail when updating names.
  • Commands perm, account, idp and org now lists all entries after delete.
  • Delete no longer fails if there are no elements left to list.
  • Confirmation added for org update, tag update and perm add to avoid mistakes.
  • vcli org update now supports -y to avoid interactive confirmation.
  • Flag -name added for update of routingplugins and grpc.
  • Removed -idp flag from org add as the org needs to be created before adding an IDP to an org.
  • Removed -v from session (was showing same output).
  • perm now skips created/updated without -v flag.
  • externalroutes skips created/updated without the -v flag.
  • idps skips created/updated without -v flag.
  • org now have -v (shows created/updated).
  • asnroutes Supports ASN routing rule configuration.
  • cidrroutes Supports CIDR routing rule configuration.
  • geolocationroutes Supports Geolocation routing rule configuration.
  • Fixed a bug where you could not update files / VCLs with a filter -fid=1.
  • Improved error handling when requesting json output, all errors are now shown in JSON format.
  • Fixed a bug where the CLI showed a draft state when there was no draft state due to a different order of included VCLs.

UI

  • Added a new feature (CDN map) to show agents and routers on a worldmap with some useful information.
  • Added darkmode.
  • Added pages for routing decisions.
  • Added pages for private and shared tokens.
  • Overhauled the workflow and UI design of the whole app.
  • Added more information when VCL compilation fails in a VCLGroup.
  • Fixed a bug in dashboard with custom equation.
  • Various improvements and bug fixes in the dashboard.