Virtual Registry 0.21.0

Released: 2026-11-06

Varnish version: 6.0.18r6

Artifact Firewall version: 0.9.0

Added

  • The Supervisor DEB and RPM packages are also published to the PackageCloud repository varnishplus/varnish-runtime, which carries the varnish-plus each release depends on, so the Supervisor can be installed from it alone. They are still published to varnishplus/60-enterprise too.
  • The Virtual Registry caches Terraform providers for terraform init, directly from registry.terraform.io or through Artifactory. Name the registry in a provider’s source, or send all default sources to it with a host block in the Terraform CLI configuration. Terraform only uses a registry served over HTTPS.
  • The Virtual Registry caches JetBrains Marketplace plugins for an IDE pointed at it with idea.plugins.host, directly or through an Artifactory JetBrains Plugins remote. Each plugin version is fetched from the Marketplace once.
  • The Virtual Registry caches gems for gem and bundler, from rubygems.org or an Artifactory gems repository. A gem is cached by its version, so when one can be replaced under the same version, as an Artifactory local repository allows, set max_ttl on that registry.
  • The Virtual Registry caches VS Code extensions from the Visual Studio Marketplace for an editor pointed at it with extensionsGallery.serviceUrl or the ExtensionGalleryServiceUrl policy, with or without enable_firewall. The registry must be served over HTTPS for the Extensions view to work. With enable_firewall, raise firewall.max_manifest_size from its 64 MiB default to about 256 MiB, or the Extensions view fails to load.
  • firewall.redirects.signing signs the download links the firewall gives VS Code, so they cannot be edited to get around a quarantine, and makes them expire after url_ttl.
  • The Virtual Registry fetches an official image named without library/, as in FROM registry.example.com/alpine, when every remote of the registry is Docker Hub, as Artifactory’s Docker Hub remote does.

Fixed

  • Fixed firewall rules not matching packages from a Sonatype Nexus repository served under the /nexus context path, so denied versions could be downloaded.
  • Fixed npm clients such as yarn downloading tarballs straight from the remote, bypassing the cache, from a registry without enable_firewall.
  • Fixed docker push failing with 403 through an OCI registry with remote_auth.policy: if_anonymous, where 0.20.0 pushed with the configured credential instead of the client’s own login. A Docker client that has run docker login pushes and pulls with its own login again, and one that has not still pulls with the configured account.
  • Fixed a git fetch with a large request being answered with the response cached for a different fetch from the same repository.

Changed

  • Most of the firewall section applies on reload, by SIGHUP or a change to the config files, without restarting the Supervisor, and SIGHUP also rereads local ruleset files. A change to the firewall’s addresses, storage or a remote ruleset source still needs a restart, and the reload is refused.
  • The Supervisor DEB and RPM packages depend on exactly the varnish-plus version they were built for, rather than that version or newer, since varnishd refuses to load the bundled vizier vmod with any other. From varnishplus/varnish-runtime this needs nothing from you. From 60-enterprise, which usually offers a newer varnish-plus first, name the version: apt install varnish-supervisor varnish-plus=<version>~* (add --allow-downgrades over a newer one), or dnf install varnish-supervisor varnish-plus-<version>.el<N>. The version is listed under each release below.

®Varnish Software, Wallingatan 12, 111 60 Stockholm, Organization nr. 556805-6203