All posts
RELEASEv3.2.1September 8, 2026· 3 min read · by VirtConsole

VirtConsole 3.2.1

Load balancer timeouts you control, Kubernetes traffic splitting, full-tunnel VPN that survives a reboot, and managed databases that start clean the first time.

ShareLink copied

VirtConsole 3.2.1 is a stability release. It hands you direct control over load balancer timeouts instead of leaving them to a default that was never yours to set.

Load balancer timeouts are yours now

Backends gain a connect timeout (1-75s) and a server timeout (1-86400s), editable in the panel, settable through the API, and rendered straight into the HAProxy configuration. If you run long polls, streaming responses, or a slow report endpoint, you no longer have to live with a default that cuts them off.

The same controls reach Kubernetes. Annotate a Service and the bridge applies them, globally or per port:

metadata:
  annotations:
    service.beta.kubernetes.io/managed-loadbalancer-idle-timeout: "3600"
    service.beta.kubernetes.io/managed-loadbalancer-connect-timeout: "10"
    service.beta.kubernetes.io/managed-loadbalancer-server-timeout: "3600"
    service.beta.kubernetes.io/managed-loadbalancer-port-443-server-timeout: "7200"

A port-{N}- key wins over the global one for that port. Values are validated on the way in, out-of-range input is reported against the key you actually set, and the reconciler now updates timeouts on load balancers it created earlier rather than only on the next one it creates.

Frontend idle timeouts (30-86400s) are validated consistently across all four API surfaces, so a value the panel accepts is a value the API accepts.

Kubernetes traffic splitting

Weight traffic across several Services behind one load balancer, for canaries and blue-green cut-overs. Weights are relative integers 0-1000, not percentages, and weight: 0 drains a child while keeping it configured, which is the rollback path:

metadata:
  annotations:
    service.beta.kubernetes.io/managed-loadbalancer-plan: std-1g
    service.beta.kubernetes.io/managed-loadbalancer-traffic-split: |
      [
        {"service": "web-blue",  "weight": 100},
        {"service": "web-green", "weight": 0}
      ]

The standalone form applies to every port in spec.ports. For a split on one routing rule only, add a backends array to that rule under -routing-rules. Traffic splitting needs cloud-controller-manager 1.37.1 or newer, which resolves the child Services’ node ports before it patches the load balancer.

Full-tunnel VPN survives a reboot

Setting AllowedIPs = 0.0.0.0/0 on a VPN gateway client now works. Egress from the tunnel is masqueraded toward the gateway’s default route and the forwarding rules it needs are in place, so a full-tunnel client reaches the internet as well as the VPC.

The rules live in the gateway’s own WireGuard configuration, applied when the interface comes up and removed when it goes down, which means they survive a reboot and reach gateways you deployed before this release. IPv6 forwarding is persisted the same way.

Managed databases start clean

A managed MariaDB or MySQL whose data directory had never been initialised would fail its first start. It is now initialised before the engine runs. MariaDB gets a dialect-correct secure-file-priv, and PostgreSQL’s host-based authentication admits roles you create yourself rather than only the ones we provision.

Also in this release

  • Cluster lists show the live worker count, and the instance list can filter Kubernetes worker nodes out of your normal instances.
  • BMC fencing. Hypervisors can be fenced through IPMI or Redfish, so HA can power-cycle a node that has stopped answering instead of waiting on it.
  • Per-instance SMTP override. Allow or block outbound mail for a single instance, overriding the account-level switch.
  • Faster instance pages. Single-instance payloads preload the relations their computed fields need, cutting the query count.
  • Admin dashboard on fresh installs. The dashboard read the news feed without guarding for its absence, so a brand-new control panel could return a 500 on the first admin login. It now degrades to an empty feed.

Thanks for building on VirtConsole. Questions or trouble upgrading, reach us any time.

ReleaseReleaseKubernetesLoad BalancerNetworking
Back to all posts