VCF 9.0 to 9.1 Upgrade

Most VCF minor-version upgrades are a bill-of-materials refresh. You stage bundles, you work down the stack, components land on new builds, and the shape of your environment at the end looks like the shape at the start. The 9.0 to 9.1 transition is not that.

The difference is that 9.1 introduces a new layer — VCF Management Services — and folds capabilities that used to live in dedicated appliances into it. Broadcom’s own upgrade guidance describes existing appliances being automatically decommissioned during the transition, with their capabilities consolidated into a single-appliance architecture fronted by VCF Operations. That means the upgrade does two things at once: it moves versions, and it changes the topology of your management domain.

Which explains the tone of the release notes. Broadcom states plainly that upgrading to 9.1 requires a strict component upgrade sequence, and the release notes carry a dedicated section on what goes wrong when the order is violated. This piece walks the architecture first, because the sequence only makes sense once you understand what is being built.

01 — The shift From appliances to a runtime

In 9.0, fleet management and control-plane operations were spread across separate standalone virtual appliances. Each had its own lifecycle, its own credentials, its own upgrade bundle, its own IP address and DNS record. In 9.1 those functions are centralised into a single runtime layer.

On the left, VCF 9.0 shows several independent management appliances each with its own lifecycle. On the right, VCF 9.1 shows VCF Operations as the console above a single Kubernetes-based management services runtime hosting the same capabilities as pods.

Figure 1. The consolidation is the upgrade. Exactly which appliances get decommissioned depends on what you had deployed in 9.0 — this is the general shape, not a per-environment inventory. Verify against Components in VCF and vSphere Foundation for your specific footprint.

Two consequences fall out of this immediately, and both affect planning rather than execution.

First, you need new network resources before you start. The runtime is a cluster of node VMs, so it needs a pool of static IPs and matching forward and reverse DNS records, plus a record for the new headless VCF License Server. This is not something you can improvise mid-upgrade.

Second, the strictness of validation went up. Broadcom’s guidance calls out that all existing and new network assignments must use strictly lowercase forward and reverse DNS records, specifically to avoid switchover validation failures. Mixed-case DNS that worked fine in 9.0 becomes an upgrade blocker in 9.1.

Pre-flight, not in-flightLowercase DNS, the management services IP pool in strict CIDR notation, and the License Server record all need to exist and resolve before you stage any bundle. Discovering a mixed-case PTR record halfway through a switchover is a bad afternoon.

02 — Architecture What VCF Management Services actually is

The layer Broadcom calls VCF management services — often shortened to VMSP in the field, and surfaced in the VCF Operations UI as VCF Services Runtime — is a Kubernetes cluster whose workloads are the management components themselves.

It has two node roles. Control plane nodes run the Kubernetes control plane: API server, etcd, scheduler. They manage the cluster and nothing else. Worker nodes run the actual service pods and host the virtual IPs the platform needs. The count of each depends on the sizing and redundancy model you choose.

The distribution of components across instances is the part worth internalising, because it determines blast radius. The services runtime in your first VCF Instance hosts the fleet-level components that perform global operations, plus the instance-level components for that instance. Every other VCF Instance gets a services runtime that hosts only instance-level components, running local tasks.

The first VCF instance hosts both fleet-level global components and its own instance-level components on its services runtime. Additional VCF instances host only instance-level components. Each runtime contains control plane nodes and worker nodes.

Figure 2. Fleet-level components exist once, in the first instance. Every instance carries its own instance-level set. Worker counts shown are the ranges across sizing models — see the table below for the exact figures.

Sizing, and what actually triggers a new worker

The node counts are fixed by the sizing model you pick at bring-up, and they differ depending on whether the runtime belongs to the first instance or a subsequent one.

Node counts by sizing model — VCF Fleet Sizing Models, VCF 9.1
Model First instance Additional instance Control plane availability
Simple 1 CP + 3 × Large 1 CP + 2 × Large vSphere HA only
HA — Medium 3 CP + 3 × X-Large 3 CP + 2 × X-Large Clustered control plane
HA — Large 3 CP + 4 × X-Large 3 CP + 3 × X-Large Clustered control plane

The Simple model relies on vSphere HA for availability. That is adequate for host failure, but losing the single control plane node means redeploying the cluster and restoring from backup — worth weighing before you choose it for anything you care about.

Worker scale-out is the detail most people get wrong, so to be precise: this is not Kubernetes autoscaling reacting to CPU pressure. Scale-out is driven by the declared resource footprint of components at install or resize time. Four things cause a new worker to appear:

  1. Bring-up — the count from the table above.
  2. Day-N component installation. Some components are not deployed at bring-up and adding them forces scale-out. In the first instance, log management and real-time metrics are day-N and require additional workers. In an additional instance, real-time metrics, identity broker, and software depot are day-N.
  3. Scaling an installed component. Log management is the main one — adding replicas or moving up a size profile pulls in more worker capacity, and it cannot be scaled back down afterwards.
  4. Manual runtime resize from Simple to Medium or Large, under Build → Lifecycle → VCF Management → VCF Services Runtime. Workers are replaced gradually rather than all at once.
Sizing the IP poolBecause day-N component installs can auto-scale the cluster, the IP pool has to have headroom for nodes you have not deployed yet. Under-size it and a day-N install fails on address exhaustion rather than on anything informative. Around 30 addresses is a reasonable production starting point; derive the real number from the Planning and Preparation Workbook.

03 — Starting position Which path you are actually on

Before the sequence, establish which flow applies. 9.1 deliberately widened the supported entry points, and the answer changes what you execute.

If you are on 9.0.x, you are on the in-place component upgrade path described below. If you are on 5.2.x, VCF 5.x more broadly, or a vSphere 8.x plus Aria Operations 8.x combination, there are separate documented flows — and the minimum supported vSphere baseline for those is 8.0 U2 or U3 depending on the flow. Nothing older is documented, because 6.x and 7.x are end of support.

One entitlement caveat worth flagging early, because it surprises people: in a vSphere Foundation deployment the SDDC and Fleet LCM services do get deployed as part of management services, but they exist to lifecycle the log management component — not to provide general fleet management, which is a VCF entitlement. VVF administrators continue to update vCenter through VAMI and ESX through vLCM, exactly as before. If you see vCenter and ESX missing from Build → Lifecycle in a VVF environment, that is expected behaviour rather than a broken upgrade.

There is also now a documented option to deploy vSphere Foundation 9.1 without VCF Management Services at all, for environments that do not need the layer and would rather not pay its resource cost. In that configuration the License Server is a no-op for operators — VCF Operations patches it automatically as part of the PAK.

04 — Execution The strict sequence

What follows groups Broadcom’s published component list into phases. The grouping is a reading aid; the authoritative ordering lives in the Upgrading to VMware Cloud Foundation 9.1 documentation, and incorrect sequencing is called out in the release notes as a known source of errors. Read the docs alongside this, not instead of it.

01

VCF Operations and Cloud Proxy

The console goes first. Everything downstream is orchestrated from here, so 9.1 Operations has to be in place before it can drive anything else. Cloud Proxy moves with it.

Gate — image-based backup of VCF Operations verified and restorable. This is the component you least want to recover by hand.
02

SDDC Manager

SDDC Manager reaches 9.1 next. It still holds inventory and credential state that the management services deployment reads from, so it has to be current before that deployment runs.

Gate — SFTP backup target configured and tested. Every NSX Manager showing Connected in SDDC Manager, since disconnected managers break downstream service-account operations.
03

Deploy VCF Management Services and License Server

The architectural step. The Kubernetes runtime is bootstrapped, the fleet-level and instance-level components are placed onto it, and the headless License Server is deployed. This is where the appliance consolidation in Figure 1 actually happens, and where the IP pool and DNS work you did up front gets consumed.

Gate — IP pool entered in strict CIDR notation with headroom for day-N scale-out. All forward and reverse DNS records lowercase and resolving both directions.
04

Transfer licenses

Licensing moves to the new License Server model. Do not treat this as administrative cleanup you can defer — license assignment failures on 9.1 are a documented enough problem that Broadcom published a dedicated KB for them.

Gate — licenses visible and assigned in VCF Operations. If vCenter assignment fails, check KB 424533 before proceeding rather than pushing on.
05

NSX — Global Manager, then Local Managers

In a federated environment, NSX Global Manager nodes upgrade before local NSX Managers. Managers only at this stage — Edges come later, deliberately.

Gate — federation topology healthy before starting. Partial NSX upgrades are unpleasant to unwind.
06

vCenter

vCenter follows NSX Manager. The ordering matters because of compatibility between the NSX management plane and the vCenter it registers against during the transition window.

Gate — native file-based vCenter backup taken and validated immediately beforehand.
07

ESX, including vSAN witness hosts

The compute fabric. vSAN witness hosts are upgraded alongside ESX. This is the longest phase in wall-clock terms and the one that consumes maintenance windows.

Gate — hardware validated against the current HCL. Worth checking whether live patching for TPM-enabled hosts applies to your fleet, since it covers a large share of patches without a maintenance window.
08

NSX Edge cluster, then finalize NSX

Edges upgrade after the hosts, and the NSX upgrade is formally finalized. Until finalize completes, NSX is still in a transitional state regardless of what the component versions say.

Gate — data-plane validation across Edge uplinks before finalize. Finalize is the point of no easy return.

The tail — after the sequence

Four items sit outside the strict ordering and are commonly deferred to later windows: VMware Tools to 13.1, virtual machine hardware compatibility, vSAN on-disk format versions, and vSAN File Service. None of them gate the platform reaching 9.1, but leaving on-disk format behind means leaving vSAN capabilities on the table.

Treat these as scheduled follow-up work with their own change records, not as leftovers.

05 — FrictionBehaviour changes that bite

These are drawn from the 9.1 product support notes. None of them will stop the upgrade, but each one has quietly broken something for someone.

FIPS is on, permanently

From 9.1, FIPS compliance is enabled by default and cannot be disabled. The concrete fallout: any existing Network Share plugin, its configuration, and its data are automatically removed during the upgrade, because the plugin depends on components that are not FIPS-compatible. If you deliver scheduled reports to a file share, that pipeline stops. The documented replacement is the Standard Email plugin with reports as attachments.

Log content packs are done

Starting with 9.1 you cannot use VCF Operations for Logs content packs in VCF Operations — general support has ended. If your log dashboards and alerts are built on content packs, that is remediation work to schedule, not a surprise to discover afterwards.

The logs agent needs system OpenSSL 3

The 9.1.0 logs agent no longer bundles an OpenSSL library and uses the host’s default instead. On hosts without OpenSSL 3 or higher the agent simply fails to function. Either bring those hosts up to date or stay on an older agent that still bundles the library — but know which you have chosen.

vCLS surface removed

vCLS was decoupled from DRS and HA in 9.0. In 9.1 all vCLS functionality is removed from both the SDDC Manager UI and the VCF Installer UI, and vCLS is slated for deprecation in a future release. Any runbook step that touches vCLS through those interfaces needs rewriting.

Configuration drift moved

VCF Operations Configuration Drifts has been absorbed into the new VCF Operations Fleet Configuration Management service. The capability survives; the location and likely the API surface do not.

Non-ASCII input is rejected

VCF 9.1 components do not accept non-ASCII input, even though the product itself ships in English, Japanese, Spanish and French. Object names, descriptions and tags carrying accented or multi-byte characters are worth auditing before the upgrade rather than during it.

Also goneThe standalone Management Pack Builder appliance is no longer supported, and the vCenter Assessment report has been removed from VCF Operations for Networks. Neither is load-bearing for most environments, but both have been someone’s dependency.

06 — Afterwards What to verify, and what changed underneath you

Once the sequence completes and the runtime is up, a few operational habits need updating — because the management plane genuinely is a different thing now.

Password management moved. It now lives in VCF Operations under Fleet Management, and 9.1 adds password policies: length, complexity, expiration, lockout, change interval and history, created in VCF Operations and assigned to the whole fleet, to the management components, or to individual instances — with one active policy per fleet object. Worth configuring deliberately rather than inheriting defaults.

Some accounts sit outside that engine. Broadcom’s own guidance acknowledges that certain Fleet Management components fall outside automated rotation and need manual lifecycle management. The clearest example is the VCF Automation service account in vCenter and NSX, which is not rotated from VCF Operations at all — it is deleted and recreated through the Rotate service account action against a VCF Instance in the VCF Automation UI. Find that action before you need it in anger.

Check what the runtime actually deployed. Confirm worker node count against the sizing model you chose, confirm remaining free addresses in the IP pool, and confirm CAPV anti-affinity has spread nodes across hosts. Node anti-affinity is handled by Cluster API rather than DRS rules, so the absence of DRS rules is not a misconfiguration.

Re-baseline your backups. The topology changed, which means your backup coverage map is out of date. vCenter uses native file-based backup, SDDC Manager and NSX Manager use SFTP targets, and VCF Operations uses image-based backup. Confirm all three, and confirm restore — not just that jobs complete.

Worth the detourBroadcom published an interactive VCF Upgrade Planner Tool covering the supported 9.1 paths. For anything other than a straightforward 9.0.x in-place upgrade, it will resolve your specific path faster than reading four documentation trees in parallel.

07 — Closing Plan it as a migration

The temptation with a x.1 release is to schedule it like a patch. The material difference here is that 9.1 rebuilds your management plane on a Kubernetes substrate, decommissions appliances while doing it, and consumes network resources that must exist beforehand. Those are migration characteristics, not patch characteristics.

Which means the work that determines whether this goes well happens before any bundle is staged: audit DNS for case, size and reserve the IP pool with scale-out headroom, choose the sizing model with the control-plane failure mode in mind, verify restores rather than backups, and inventory the deprecations against what you actually use. The eight-phase sequence itself is well documented and largely orchestrated. The preparation is where the discretion lives — and where the failures come from.

Sources Reference material

Written June 2026 against VCF 9.1.0.0 (GA 12 May 2026). Sizing figures, sequence ordering and deprecation notes are as published at time of writing and change with patch releases — verify against the release notes for your target build before executing. Node specifications not published in the design documentation have been omitted rather than estimated; take them from the Planning and Preparation Workbook.

Leave a Reply

Your email address will not be published. Required fields are marked *

error

Enjoy this blog? Please spread the word :)