<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Cosmin.us</title><link>https://cosmin.us/</link><description>Recent content on Cosmin.us</description><generator>Hugo</generator><language>en-US</language><dc:creator>Cosmin Trif</dc:creator><lastBuildDate>Tue, 15 Sep 2026 15:00:00 +0000</lastBuildDate><atom:link href="https://cosmin.us/index.xml" rel="self" type="application/rss+xml"/><item><title>Upgrading VCF 9.1 SDDC Manager to 9.1.1: A Step-by-Step Guide</title><link>https://cosmin.us/upgrading-sddc-manager-to-vcf-9-1-1-step-by-step/</link><pubDate>Tue, 15 Sep 2026 15:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-sddc-manager-to-vcf-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 available, I wanted to patch SDDC Manager in my lab. This is the follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-0-sddc-manager-to-9-0-1-a-step-by-step-guide/"&gt;VCF 9.0 SDDC Manager upgrade guide&lt;/a&gt;. In this post I will go over the upgrade from &lt;strong&gt;9.1.0.0400.25570100&lt;/strong&gt; to &lt;strong&gt;9.1.1.0.25713928&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release with an updated Bill of Materials. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source of truth for supported paths and dependencies.&lt;/p&gt;
&lt;p&gt;One naming detail before we start: these screenshots show &lt;strong&gt;SDDC Manager&lt;/strong&gt; under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Instances&lt;/strong&gt;. That is different from the &lt;strong&gt;SDDC Lifecycle&lt;/strong&gt; management-service component under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management&lt;/strong&gt;. The procedure below is for SDDC Manager. This patches SDDC Manager only; it does not change the management-domain version or patch the other core components. Broadcom documents this standalone path in &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-sddc-manager-without-upgrading-vcf.html"&gt;Upgrade SDDC Manager without upgrading VCF&lt;/a&gt;.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 available, I wanted to patch SDDC Manager in my lab. This is the follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-0-sddc-manager-to-9-0-1-a-step-by-step-guide/"&gt;VCF 9.0 SDDC Manager upgrade guide&lt;/a&gt;. In this post I will go over the upgrade from &lt;strong&gt;9.1.0.0400.25570100&lt;/strong&gt; to &lt;strong&gt;9.1.1.0.25713928&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release with an updated Bill of Materials. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source of truth for supported paths and dependencies.&lt;/p&gt;
&lt;p&gt;One naming detail before we start: these screenshots show &lt;strong&gt;SDDC Manager&lt;/strong&gt; under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Instances&lt;/strong&gt;. That is different from the &lt;strong&gt;SDDC Lifecycle&lt;/strong&gt; management-service component under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management&lt;/strong&gt;. The procedure below is for SDDC Manager. This patches SDDC Manager only; it does not change the management-domain version or patch the other core components. Broadcom documents this standalone path in &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-sddc-manager-without-upgrading-vcf.html"&gt;Upgrade SDDC Manager without upgrading VCF&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, patch the &lt;strong&gt;Fleet Lifecycle&lt;/strong&gt; management service to 9.1.1 first. Wait for that operation to complete before starting SDDC Manager. The release notes also require lifecycle operations to run sequentially; do not patch VCF Operations or another component in parallel.&lt;/p&gt;
&lt;p&gt;Before opening the SDDC Manager page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirm the source and target are supported in the &lt;a href="https://vmware.github.io/vcf-upgrade-planner/"&gt;VCF Upgrade Planning Tool&lt;/a&gt; and the &lt;a href="https://interopmatrix.broadcom.com/Upgrade"&gt;Broadcom Interoperability Matrix&lt;/a&gt;. A standalone SDDC Manager patch is supported only when the target is compatible with the BOMs in the management and workload domains.&lt;/li&gt;
&lt;li&gt;Download the SDDC Manager binary from Software Depot using the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-sddc-manager-without-upgrading-vcf.html"&gt;VCF Operations lifecycle procedure&lt;/a&gt;. Verify that VCF Operations can reach the configured depot. VCF 9.1 uses an activation code for depot access; resolve depot or proxy errors before downloading the bundle.&lt;/li&gt;
&lt;li&gt;Verify a recent, successful SDDC Manager backup and that you have the restore details and credentials available. Schedule a maintenance window and make sure the people responsible for the VCF instance are available if a task needs attention.&lt;/li&gt;
&lt;li&gt;Confirm that no other lifecycle task is running. The SDDC Manager bundle is about &lt;strong&gt;3 GB&lt;/strong&gt;, so allow time for the download and validation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The versions from my lab are:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;SDDC Manager&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570100&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25713928&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build is also listed in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/sddc-manager-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 SDDC Manager release notes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="open-the-sddc-manager-upgrade-page"&gt;Open the SDDC Manager Upgrade Page&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an account that can run lifecycle operations. Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Instances&lt;/strong&gt;, select the VCF instance, and open &lt;strong&gt;SDDC Manager Upgrades&lt;/strong&gt;. Depending on the exact 9.1.x patch level, the page may present this as a planned component upgrade; follow the target version and precheck steps in the linked Broadcom procedure.&lt;/p&gt;
&lt;p&gt;In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;. The page shows the current build and the available &lt;strong&gt;9.1.1.0.25713928&lt;/strong&gt; bundle. It is marked &lt;strong&gt;Latest Compatible&lt;/strong&gt;, and the page displays a compatibility-warning link. Read those warnings and resolve anything that applies to your environment before continuing.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-manager-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations SDDC Manager Upgrades page showing current version 9.1.0.0400.25570100 and the available 9.1.1.0.25713928 bundle." width="1800" height="601" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The page also shows the bundle ID and a &lt;strong&gt;DOWNLOAD (3 GB)&lt;/strong&gt; button. If your page does not show the target, sync or fix the depot configuration first. Do not try to force a version that VCF Operations has not offered for the instance.&lt;/p&gt;
&lt;h2 id="download-and-validate-the-bundle"&gt;Download and Validate the Bundle&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;DOWNLOAD (3 GB)&lt;/strong&gt; and wait for the download to finish. The bundle is staged and validated by VCF Operations; leave the task running until the status changes.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-manager-9-1-1-upgrade/002-capture-002.webp" alt="SDDC Manager 9.1.1 bundle download in progress at 49 percent." width="696" height="244" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the card reports that the download and validation are complete, confirm that the target still reads &lt;strong&gt;9.1.1.0.25713928&lt;/strong&gt;. Run the available prechecks and wait for them to pass before starting the upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-manager-9-1-1-upgrade/003-capture-003.webp" alt="SDDC Manager 9.1.1 bundle downloaded and validated, with UPGRADE NOW and RUN PRECHECKS available." width="700" height="239" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="start-the-upgrade"&gt;Start the Upgrade&lt;/h2&gt;
&lt;p&gt;After the prechecks pass, click &lt;strong&gt;UPGRADE NOW&lt;/strong&gt;. VCF Operations displays a confirmation that the SDDC Manager UI will be disconnected until the upgrade finishes. This is expected. Click &lt;strong&gt;START UPGRADE&lt;/strong&gt; only after confirming that the maintenance window is open and no one needs the SDDC Manager UI during the operation.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-manager-9-1-1-upgrade/004-capture-004.webp" alt="SDDC Manager upgrade confirmation warning that the UI will disconnect until the upgrade completes." width="516" height="207" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Do not cancel the task or reboot the appliance manually. If the task reports a failure, open the task details, capture the error, and follow the corrective action in the release notes or Broadcom support guidance before retrying.&lt;/p&gt;
&lt;h2 id="monitor-the-upgrade-workflow"&gt;Monitor the Upgrade Workflow&lt;/h2&gt;
&lt;p&gt;The VCF Upgrade Status page shows the &lt;strong&gt;VMware Cloud Foundation Upgrade 9.1.1.0&lt;/strong&gt; bundle and the SDDC Manager resource in progress. The page also provides a release-notes link; use the canonical &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;9.1.1 release-notes page&lt;/a&gt; when checking dependencies.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-manager-9-1-1-upgrade/005-capture-005.webp" alt="VMware Cloud Foundation Upgrade Status showing the SDDC Manager 9.1.1.0 resource in progress." width="1219" height="501" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Expand &lt;strong&gt;SDDC MANAGER UPGRADE&lt;/strong&gt; to follow the individual stages. In my run the workflow moved through the VCF prerequisite, common appliance platform setup, service validation, package removal, Photon 4 RPM preparation, VCF service and platform updates, authentication, the SDDC Manager RPM update, reboot, certificate refresh, appliance-version update, deployment-drift check, post-validation, service validation, cleanup, and stopping the common appliance platform service.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-manager-9-1-1-upgrade/006-capture-006.webp" alt="Expanded SDDC Manager upgrade checklist with prerequisite and platform tasks completed and the VCF service and platform RPM update in progress." width="839" height="690" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Let the workflow finish all of its stages. The UI may be unavailable for part of the process, and the duration will vary with the environment. Wait for the overall task to report &lt;strong&gt;Completed&lt;/strong&gt; before starting another VCF lifecycle operation.&lt;/p&gt;
&lt;h2 id="verify-the-new-version"&gt;Verify the New Version&lt;/h2&gt;
&lt;p&gt;Return to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Instances -&amp;gt; instance-a -&amp;gt; SDDC Manager Upgrades&lt;/strong&gt;. The &lt;strong&gt;Current SDDC Manager version&lt;/strong&gt; should now show &lt;strong&gt;9.1.1.0.25713928&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-manager-9-1-1-upgrade/007-capture-007.webp" alt="VCF Operations showing the current SDDC Manager version as 9.1.1.0.25713928 after the upgrade." width="1445" height="330" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Also review &lt;strong&gt;Lifecycle -&amp;gt; Tasks&lt;/strong&gt; for a completed upgrade and check the VCF instance health, SDDC Manager services, certificates, and management-domain access. Before patching ESX from &lt;strong&gt;9.1.0.x to 9.1.1.0&lt;/strong&gt;, patch the VCF Operations instance and its connected license servers first. Also make sure no lifecycle operation is still running.&lt;/p&gt;
&lt;p&gt;If you use an offline depot and its settings show legacy hostname, port, or username fields after the upgrade, review the SDDC Manager release-note workaround: reconnect the depot using the supported URL format or open &lt;strong&gt;Edit&lt;/strong&gt; and save the corrected settings before downloading another bundle.&lt;/p&gt;
&lt;p&gt;SDDC Manager in my lab is now on &lt;strong&gt;9.1.1.0.25713928&lt;/strong&gt;. We can continue with the remaining VCF 9.1.1 components by following the dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;release notes&lt;/a&gt;. For the management-service side of the update, see my &lt;a href="https://cosmin.us/upgrading-vcf-management-components-to-9-1-1-all-in-one/"&gt;VCF 9.1.1 all-in-one upgrade runbook&lt;/a&gt; and the separate &lt;a href="https://cosmin.us/upgrading-vcf-operations-fleet-lifecycle-to-9-1-1-step-by-step/"&gt;Fleet Lifecycle walkthrough&lt;/a&gt;.&lt;/p&gt;</content:encoded></item><item><title>Upgrading the VCF Migration Service Engine to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-migration-service-engine-to-9-1-1-step-by-step/</link><pubDate>Mon, 14 Sep 2026 12:30:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-migration-service-engine-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued upgrading the management components in my lab. In this post I will go over upgrading the &lt;strong&gt;Migration Service Engine&lt;/strong&gt; from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations. The task is labeled &lt;strong&gt;VCD_MIGRATOR&lt;/strong&gt; in the workflow, so I use both names below.&lt;/p&gt;
&lt;p&gt;This is the component upgrade that prepares the VCD migration service. It does not migrate workloads by itself. If you are preparing a VCD workload migration, also check the supported VCD baseline and the Environment Assessment Tool requirements in &lt;a href="https://knowledge.broadcom.com/external/article/455238/how-can-we-migrate-to-vcf-91-from-vmware.html"&gt;Broadcom KB 455238&lt;/a&gt;. Broadcom currently documents VCD 10.6.2 as the supported source for the VCF 9.1 migration path.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued upgrading the management components in my lab. In this post I will go over upgrading the &lt;strong&gt;Migration Service Engine&lt;/strong&gt; from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations. The task is labeled &lt;strong&gt;VCD_MIGRATOR&lt;/strong&gt; in the workflow, so I use both names below.&lt;/p&gt;
&lt;p&gt;This is the component upgrade that prepares the VCD migration service. It does not migrate workloads by itself. If you are preparing a VCD workload migration, also check the supported VCD baseline and the Environment Assessment Tool requirements in &lt;a href="https://knowledge.broadcom.com/external/article/455238/how-can-we-migrate-to-vcf-91-from-vmware.html"&gt;Broadcom KB 455238&lt;/a&gt;. Broadcom currently documents VCD 10.6.2 as the supported source for the VCF 9.1 migration path.&lt;/p&gt;
&lt;p&gt;This is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management-services walkthrough&lt;/a&gt;, where the Migration Service Engine was still on the 9.1.0.0200 build.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the authority for the release scope, dependencies, and known issues. The related VCF Automation build is listed in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vmware-cloud-foundation-9-1-1-0-bill-of-material.html"&gt;VCF 9.1.1 Bill of Materials&lt;/a&gt;; the Migration Service Engine target below is the supported path offered by my VCF Operations UI.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions shown in the VCF Operations UI during this run:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Migration Service Engine (VCD_MIGRATOR)&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25556825&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714559&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The version numbers are the complete build strings from the upgrade path. Use the target offered by your own VCF Operations instance if it differs from the lab capture; do not force a target that is not presented as a supported path.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1 first&lt;/strong&gt;. VCF Automation must also be on the required 9.1.1 level before you upgrade the Migration Service Engine. The &lt;a href="https://cosmin.us/upgrading-vcf-automation-to-9-1-1-step-by-step/"&gt;VCF Automation 9.1.1 walkthrough&lt;/a&gt; covers that component.&lt;/p&gt;
&lt;p&gt;Before starting the VCD Migrator operation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that the supported backup target is configured and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Follow the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF backup and restore documentation&lt;/a&gt; for the backup method used by VCF Automation and keep the encryption passphrase available.&lt;/li&gt;
&lt;li&gt;Take and verify a fresh VCF Automation backup when the Backup &amp;amp; Restore page offers that component. The Migration Service Engine is managed with VCF Automation; do not assume that a separate standalone backup option exists.&lt;/li&gt;
&lt;li&gt;Confirm that the 9.1.1 binaries are present in the configured software depot. For an offline environment, prepare them with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool and binary-management procedure&lt;/a&gt;. The VCF Download Tool identifies the migration backend as &lt;code&gt;VCF_SERVICE_VCD_MIGRATION_BACKEND&lt;/code&gt;; &lt;a href="https://knowledge.broadcom.com/external/article/442857/vcf-download-tool-missing-esxi-and-day-n.html"&gt;KB 442857&lt;/a&gt; covers that identifier.&lt;/li&gt;
&lt;li&gt;Check VCF Automation and the VCF services runtime for healthy nodes, DNS, certificates, credentials, CPU, memory, and disk space. Resolve alerts before staging the package.&lt;/li&gt;
&lt;li&gt;Make sure no other lifecycle operation is running. Run one management-component operation at a time and wait for it to finish before starting the next one.&lt;/li&gt;
&lt;li&gt;If VCF Automation or the VCD Migrator was previously uninstalled and reinstalled, review &lt;a href="https://knowledge.broadcom.com/external/article/453702/911error-servicesvcfabroadcomcomvcfaserv.html"&gt;KB 453702&lt;/a&gt; before upgrading. Duplicate service-account Secrets can leave the 9.1.1 Migration Service unhealthy; take a backup and follow the supported remediation if the KB condition applies.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window and record the migration checks you will run afterward. This workflow can restart services, and the supplied captures show the upgrade entering progress rather than a completed task.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="selecting-the-migration-service-engine"&gt;Selecting the Migration Service Engine&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The target in my lab was already set to &lt;code&gt;9.1.1.*&lt;/code&gt;, and Fleet Lifecycle was already running &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. If your target still shows &lt;code&gt;9.1.0.*&lt;/code&gt;, click &lt;strong&gt;Select Version&lt;/strong&gt; (shown as &lt;strong&gt;Change target version&lt;/strong&gt; in some builds), choose &lt;code&gt;9.1.1.*&lt;/code&gt;, and set the new target. If 9.1.1 is missing, use &lt;strong&gt;Sync&lt;/strong&gt; and wait for the lifecycle metadata task to finish.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Management Components&lt;/strong&gt;, filter for &lt;strong&gt;migration&lt;/strong&gt; and select the &lt;strong&gt;Migration service engine&lt;/strong&gt; row for the VCF instance you want to upgrade. In my lab that instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0200.25556825 -&amp;gt; 9.1.1.0.25714559&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/002-capture-002.webp" alt="VCF Management Upgrade page showing Fleet Lifecycle on 9.1.1 and the Migration service engine row targeting 9.1.1.0.25714559." width="1425" height="660" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Select the row. The action bar shows &lt;strong&gt;RUN PRECHECKS (1)&lt;/strong&gt; and &lt;strong&gt;UPGRADE (1)&lt;/strong&gt;, and the row reports &lt;strong&gt;Ready for upgrade&lt;/strong&gt; after the precheck has passed.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/003-capture-003.webp" alt="Selected Migration service engine row showing the 9.1.1 upgrade path and the Run Prechecks and Upgrade actions." width="870" height="160" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="run-the-prechecks"&gt;Run the Prechecks&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;RUN PRECHECKS (1)&lt;/strong&gt; and open &lt;strong&gt;Precheck details&lt;/strong&gt;. Review every result before starting the upgrade. The VCD Migrator precheck covers the staged component package, the virtual center connection, and the database upgrade checks.&lt;/p&gt;
&lt;p&gt;The precheck workflow in my run completed with an overall &lt;strong&gt;Passed&lt;/strong&gt; result. The four checks shown in the task were &lt;strong&gt;Component Package Staged Check&lt;/strong&gt;, &lt;strong&gt;Component Package Staging Check&lt;/strong&gt;, &lt;strong&gt;Virtual Center Precheck&lt;/strong&gt;, and &lt;strong&gt;Database Upgrade Precheck&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/001-capture-001.webp" alt="Completed VCD_MIGRATOR Precheck Workflow with an overall Passed result and all listed checks passed." width="884" height="480" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the upgrade list and confirm that the row still reports &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. If a check fails, correct the underlying issue and run the precheck again. Start the upgrade only after the row is ready.&lt;/p&gt;
&lt;h2 id="start-the-upgrade"&gt;Start the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;UPGRADE&lt;/strong&gt; on the selected row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt; and an &lt;strong&gt;Upgrade details&lt;/strong&gt; link appears.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/006-capture-006.webp" alt="Migration service engine row showing Upgrade in progress for the 9.1.1 target." width="700" height="104" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Upgrade details&lt;/strong&gt; and follow the task from the &lt;strong&gt;Tasks&lt;/strong&gt; tab. The workflow is named &lt;strong&gt;VCF_MIGRATOR Upgrade Workflow&lt;/strong&gt;. In the supplied capture, the active subtask is &lt;strong&gt;Stage VCD_MIGRATOR plugin in VCF services runtime&lt;/strong&gt;. Its messages show the binaries staging first and then &lt;strong&gt;Running Component Stage Prechecks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/007-capture-007.webp" alt="VCF_MIGRATOR Upgrade Workflow in progress while the VCD_MIGRATOR plugin is staged in the VCF services runtime." width="883" height="617" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The exact number and names of subtasks can vary with the installed VCF Automation build. Wait for the overall task to report &lt;strong&gt;Completed&lt;/strong&gt;, including its final inventory synchronization where shown. Do not start another management-component operation while this task is running. If a subtask fails, open its details, fix the reported issue, and retry it before proceeding.&lt;/p&gt;
&lt;p&gt;If &lt;strong&gt;Stage VCD_MIGRATOR precheck binaries&lt;/strong&gt; eventually times out instead of progressing, review &lt;a href="https://knowledge.broadcom.com/external/article/452122/troubleshooting-vcf-automation-upgrade-p.html"&gt;KB 452122&lt;/a&gt;. Broadcom identifies pod starvation and Fluentd readiness failures as causes of this specific precheck timeout; resolve the underlying health issue before retrying.&lt;/p&gt;
&lt;h2 id="verify-the-new-version"&gt;Verify the New Version&lt;/h2&gt;
&lt;p&gt;The supplied captures end while the upgrade is &lt;strong&gt;In Progress&lt;/strong&gt;, so the final version still needs to be verified after the task completes.&lt;/p&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt;, open the Migration Service Engine component, and verify that it reports &lt;strong&gt;Status: Running&lt;/strong&gt; and version &lt;strong&gt;9.1.1.0.25714559&lt;/strong&gt;. Also review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed, partial, or stale tasks.&lt;/p&gt;
&lt;p&gt;For a workload-migration environment, test the VCF Automation provider and tenant portals, confirm the migration service health, validate the VCD and vCenter connections, and run the supported migration prechecks before moving any workload. The vCenter migration service account must be a member of the SSO group &lt;strong&gt;SupervisorProviderAdministrators&lt;/strong&gt;; if you add it after the connection was created, refresh the VCF Automation vCenter connection as described in &lt;a href="https://knowledge.broadcom.com/external/article/444854/vcd-workload-migration-to-vcf-automation.html"&gt;KB 444854&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The supplied run is still in progress. Once the task reports &lt;strong&gt;Completed&lt;/strong&gt; and the component is &lt;strong&gt;Running&lt;/strong&gt; at the target build, the next management-component upgrade can proceed within the dependency order in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-14:
The supplied captures were reviewed for duplicate content. Captures 003 and 004
show the same Ready for upgrade state; 005 and 006 show the same Upgrade in
progress state. The post uses the wider/action-oriented 003 and the tighter
progress 006, omitting the near-duplicate 004 and 005 captures. Capture 001 establishes passed prechecks; capture 007 establishes the
in-progress VCD_MIGRATOR workflow. No capture establishes final completion or
post-upgrade Running status, so those are verification instructions rather than
claims about the lab run.
--&gt;</content:encoded></item><item><title>Upgrading VCF Management Components to 9.1.1 All in One</title><link>https://cosmin.us/upgrading-vcf-management-components-to-9-1-1-all-in-one/</link><pubDate>Mon, 14 Sep 2026 09:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-management-components-to-9-1-1-all-in-one/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to bring the management-service upgrades together in one place. I already wrote a separate walkthrough for each component, but following a collection of individual posts is not how I want to plan a maintenance window. This post is the all-in-one runbook I would use for a VCF 9.1.0.x fleet, including the VCD Migrator that was missing from my earlier set of guides.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to bring the management-service upgrades together in one place. I already wrote a separate walkthrough for each component, but following a collection of individual posts is not how I want to plan a maintenance window. This post is the all-in-one runbook I would use for a VCF 9.1.0.x fleet, including the VCD Migrator that was missing from my earlier set of guides.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release with an updated Bill of Materials (BOM). The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;official release notes&lt;/a&gt; say that a 9.1.0.x environment starts by patching &lt;strong&gt;Fleet Lifecycle&lt;/strong&gt;. After that, the remaining components follow a small set of dependencies. The release notes also link to the &lt;a href="https://vmware.github.io/vcf-upgrade-planner/"&gt;VCF Upgrade Planning Tool&lt;/a&gt;, which is useful when the source environment is older than 9.1.0.x.&lt;/p&gt;
&lt;p&gt;This article covers the VCF Management page in VCF Operations. It does not replace the supported upgrade path for a VCF 5.2.x or 9.0.x environment, the core SDDC upgrade order, or the migration workflow from older releases. For a fleet-managed 9.1.0.x maintenance patch, use VCF Management; Broadcom does not recommend the manual &lt;code&gt;.PAK&lt;/code&gt; method for that case.&lt;/p&gt;
&lt;h2 id="the-important-difference-from-the-older-guides"&gt;The Important Difference From the Older Guides&lt;/h2&gt;
&lt;p&gt;The VCF Operations page can show an &lt;strong&gt;Upgrade (ALL)&lt;/strong&gt; action after the target version is selected. It is tempting to select every row and let the page run everything at once. Broadcom &lt;a href="https://knowledge.broadcom.com/external/article/453246/persistent-vcf-upgrade-tasks-with-400-ba.html"&gt;documents a 9.1 lifecycle issue&lt;/a&gt; where concurrent component runs can interfere with the plan records. A component can finish successfully but remain stuck as &lt;strong&gt;Ready for upgrade&lt;/strong&gt;, with the same build on both sides of the upgrade path. That state can block later upgrades and has no customer-side database fix.&lt;/p&gt;
&lt;p&gt;For that reason, this is an all-in-one &lt;strong&gt;article and execution plan&lt;/strong&gt;, not a recommendation to launch every component concurrently. Select one component, run its prechecks, upgrade it, wait for the task to show &lt;strong&gt;Completed&lt;/strong&gt;, confirm the version, and then continue. This also makes a failed task much easier to isolate.&lt;/p&gt;
&lt;h2 id="what-gets-patched"&gt;What Gets Patched&lt;/h2&gt;
&lt;p&gt;The exact rows depend on which services are installed in each VCF instance. The build numbers below are the versions shown in my lab and are included to make the upgrade path easy to recognize. Confirm the target offered by your VCF Operations UI against the current &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vmware-cloud-foundation-9-1-1-0-bill-of-material.html"&gt;9.1.1 BOM&lt;/a&gt;.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Lab source&lt;/th&gt;
					&lt;th&gt;Lab target&lt;/th&gt;
					&lt;th&gt;Detailed walkthrough&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Fleet Lifecycle&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570104&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25713934&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-operations-fleet-lifecycle-to-9-1-1-step-by-step/"&gt;Fleet Lifecycle&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Operations&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25541561&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679751&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-operations-to-9-1-1-using-a-pak-file/"&gt;Operations lab result and method caveat&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Services Runtime&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25555874&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714471&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/"&gt;Services Runtime&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Automation&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25556825&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714559&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-automation-to-9-1-1-step-by-step/"&gt;VCF Automation&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Migration Service Engine (VCD_MIGRATOR)&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25556825&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714559&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-migration-service-engine-to-9-1-1-step-by-step/"&gt;Migration Service Engine&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SDDC Lifecycle&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570103&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25713940&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-sddc-lifecycle-to-9-1-1-step-by-step/"&gt;SDDC Lifecycle&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Identity Broker&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25522734&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679886&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-identity-broker-to-9-1-1-step-by-step/"&gt;Identity Broker&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Salt RaaS&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25434834&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679895&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-salt-raas-to-9-1-1-step-by-step/"&gt;Salt RaaS&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Salt Master&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544946&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679895&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-salt-master-to-9-1-1-step-by-step/"&gt;Salt Master&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Log Management&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544947&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679624&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-log-management-to-9-1-1-step-by-step/"&gt;Log Management&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Operations for Networks&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25517220&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25682214&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-operations-for-networks-to-9-1-1-step-by-step/"&gt;Operations for Networks&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Real-Time Metrics Store&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25555874&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714471&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-real-time-metrics-store-to-9-1-1-step-by-step/"&gt;Real-Time Metrics Store&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Real-Time Metrics&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544944&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679622&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-real-time-metrics-to-9-1-1-step-by-step/"&gt;Real-Time Metrics&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Telemetry&lt;/td&gt;
					&lt;td&gt;9.1.0.0.25181946&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25671600&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://cosmin.us/upgrading-vcf-telemetry-to-9-1-1-step-by-step/"&gt;Telemetry&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The BOM also lists &lt;strong&gt;Software Depot 9.1.1.0.25713941&lt;/strong&gt;, &lt;strong&gt;Cloud Proxy 9.1.1.0.25679891&lt;/strong&gt;, and &lt;strong&gt;License Server 9.1.1.0.25679819&lt;/strong&gt;. Include them in the final inventory check. Cloud Proxy and License Server lifecycle is bundled with VCF Operations in the standard lifecycle workflow. Optional services may add more rows; the table above covers the component walkthroughs already published on this blog.&lt;/p&gt;
&lt;p&gt;If the inventory includes &lt;strong&gt;Migration Service Engine&lt;/strong&gt;, that is the VCD Migrator backend. VCF Operations labels the row &lt;strong&gt;Migration service engine&lt;/strong&gt;, while the workflow and download tool use &lt;code&gt;VCD_MIGRATOR&lt;/code&gt; and &lt;code&gt;VCF_SERVICE_VCD_MIGRATION_BACKEND&lt;/code&gt;. Upgrading this component prepares the migration service; it does not start a VCD workload migration.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;This runbook assumes that the VCF instance is already on &lt;strong&gt;9.1.0.x&lt;/strong&gt; and that VCF Operations can see its management components. If the environment is on 5.2.x or 9.0.x, use the supported upgrade path first. The &lt;a href="https://blogs.vmware.com/cloud-foundation/2026/06/18/how-to-upgrade-to-vmware-cloud-foundation-9-1/"&gt;VCF 9.1 upgrade guidance&lt;/a&gt; covers the larger sequence: VCF Operations, SDDC Manager, VCF Management Services, and then the core domain components.&lt;/p&gt;
&lt;p&gt;Before opening the upgrade page:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the source and target builds against the &lt;a href="https://interopmatrix.broadcom.com/Upgrade"&gt;VCF Interoperability Matrix&lt;/a&gt;, the release notes, and the BOM. Do not force an upgrade when the target is not a supported path.&lt;/li&gt;
&lt;li&gt;Configure and validate the backup target required by each component under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. For file-based VCF Management services, an external SFTP server is the recommended target, and you should verify a fresh backup before patching. Use an image-based backup for &lt;strong&gt;VCF Operations and Operations for Networks&lt;/strong&gt;. Keep the encryption passphrase available for a restore. Broadcom lists &lt;strong&gt;Telemetry and Real-Time Metrics as N/A for backup&lt;/strong&gt;, and the runtime file-based backup covers &lt;strong&gt;service accounts only&lt;/strong&gt;. Log Management backups exclude log data, which must be archived separately. Follow the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;component backup-method table&lt;/a&gt;; do not assume every row has an on-demand component backup.&lt;/li&gt;
&lt;li&gt;Download all required binaries before starting. For the primary VCF instance, Broadcom&amp;rsquo;s &lt;a href="https://knowledge.broadcom.com/external/article/425089"&gt;required-binaries list&lt;/a&gt; includes Fleet Lifecycle, SDDC Lifecycle, VCF Services Runtime, Salt RaaS, Salt Master, Identity Broker, Software Depot, Telemetry, and License Server. Use the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool and binary-management documentation&lt;/a&gt; for disconnected environments.&lt;/li&gt;
&lt;li&gt;Check VCF Operations, the VCF services runtime, and every hosted component for healthy nodes, disk, CPU, memory, DNS, certificates, and credentials. A full management-services node or volume can prevent staging; review the &lt;a href="https://knowledge.broadcom.com/external/article/443784/911-vcf-management-services-node-resourc.html"&gt;node-capacity guidance&lt;/a&gt; and &lt;a href="https://knowledge.broadcom.com/external/article/443788/911-vcf-management-services-volume-disk.html"&gt;volume-capacity guidance&lt;/a&gt; if alerts are present.&lt;/li&gt;
&lt;li&gt;If you use custom VCF Automation profiles, review the cleanup procedure in &lt;a href="https://knowledge.broadcom.com/external/article/451147/"&gt;KB 451147&lt;/a&gt; before upgrading. Custom profiles from earlier 9.x releases can make the Automation upgrade fail.&lt;/li&gt;
&lt;li&gt;Record the integrations and user-facing checks you will run afterward. Identity Broker affects SSO, Log Management affects ingestion, Operations for Networks affects network visibility, and Automation affects portals and deployments.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window. Do not start another lifecycle operation while the current component task is running.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-dependency-order"&gt;The Dependency Order&lt;/h2&gt;
&lt;p&gt;The release notes give the mandatory boundaries. I use the following order for a maintenance window, while still checking the target and prechecks shown by VCF Operations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Fleet Lifecycle&lt;/strong&gt; must be patched first.&lt;/li&gt;
&lt;li&gt;Run the &lt;strong&gt;VCF Operations&lt;/strong&gt; appliance update by itself. For a fleet-managed 9.1.0.x environment, use the VCF Management lifecycle workflow; the PAK procedure below is included for supported legacy paths only.&lt;/li&gt;
&lt;li&gt;Patch &lt;strong&gt;VCF Services Runtime&lt;/strong&gt; before &lt;strong&gt;Identity Broker&lt;/strong&gt; or &lt;strong&gt;Salt RaaS&lt;/strong&gt; on the same VCF instance. I also keep &lt;strong&gt;Salt Master&lt;/strong&gt; after the runtime so all Salt services are handled in the same dependency boundary.&lt;/li&gt;
&lt;li&gt;Patch &lt;strong&gt;VCF Automation&lt;/strong&gt; before &lt;strong&gt;Migration Service Engine (&lt;code&gt;VCD_MIGRATOR&lt;/code&gt;)&lt;/strong&gt;, if it is installed.&lt;/li&gt;
&lt;li&gt;If both &lt;strong&gt;Log Management&lt;/strong&gt; and &lt;strong&gt;Operations for Networks&lt;/strong&gt; are installed, I run Log Management to completion before Operations for Networks. This is my safe sequential choice; Broadcom documents a problem with running those operations in parallel in &lt;a href="https://knowledge.broadcom.com/external/article/452169/vcf-operations-for-network-upgrade-to-91.html"&gt;KB 452169&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Patch every remaining installed component one at a time. Wait for the overall task to show &lt;strong&gt;Completed&lt;/strong&gt;, including inventory synchronization, and verify the component version before starting the next row. This sequential execution follows &lt;a href="https://knowledge.broadcom.com/external/article/453246/persistent-vcf-upgrade-tasks-with-400-ba.html"&gt;KB 453246&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Operations and Software Depot are isolated operations in this runbook because their tasks can block binary availability or other lifecycle work. The release notes remain the authority for any component or dependency not listed here.&lt;/p&gt;
&lt;h2 id="before-running-the-component-steps"&gt;Before Running the Component Steps&lt;/h2&gt;
&lt;p&gt;The shared preparation is already covered above. Before every individual row, return to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;, confirm the intended VCF instance and target, clear other selections, expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt;, and select exactly one component. Use &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;, open &lt;strong&gt;Precheck details&lt;/strong&gt;, remediate failures, and proceed only when the row says &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. After clicking &lt;strong&gt;Upgrade&lt;/strong&gt;, open &lt;strong&gt;Upgrade details&lt;/strong&gt;, wait for &lt;strong&gt;Completed&lt;/strong&gt;, then confirm &lt;strong&gt;Components -&amp;gt; Summary -&amp;gt; Running&lt;/strong&gt; and the expected build. The sections below preserve the component-specific clicks, workflow details, and validation from the individual walkthroughs.&lt;/p&gt;
&lt;h2 id="1-fleet-lifecycle"&gt;1. Fleet Lifecycle&lt;/h2&gt;
&lt;p&gt;Fleet Lifecycle is the required first operation. Its card has a dedicated target selector, so do not use the global management-component target for this row.&lt;/p&gt;
&lt;h3 id="checking-for-the-upgrade"&gt;Checking for the Upgrade&lt;/h3&gt;
&lt;p&gt;To get started, log in to VCF Operations and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The lifecycle metadata is normally synced automatically. If it has been a while since the last sync, we can trigger one manually. I usually perform a manual sync before starting an upgrade to make sure I have the latest metadata.&lt;/p&gt;
&lt;p&gt;To do this, click on &lt;strong&gt;Sync&lt;/strong&gt; in the top right corner and wait for the task to complete before selecting the new version.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page showing the Sync link and Fleet Lifecycle still targeting 9.1.0.0400.25570104." width="1800" height="303" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In the capture above, both sides of the version arrow still show &lt;strong&gt;9.1.0.0400.25570104&lt;/strong&gt;. We need to change the Fleet Lifecycle target before clicking on &lt;strong&gt;Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="selecting-the-target-version"&gt;Selecting the Target Version&lt;/h3&gt;
&lt;p&gt;On the &lt;strong&gt;Fleet Lifecycle&lt;/strong&gt; card, click on the &lt;strong&gt;&amp;hellip;&lt;/strong&gt; menu and select &lt;strong&gt;Select version&lt;/strong&gt;. Use the menu on this card; the &lt;strong&gt;Change Target Version&lt;/strong&gt; button below it controls the other VCF Management component targets.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/002-capture-002.webp" alt="Fleet Lifecycle three-dot menu expanded with Select version visible above the separate VCF Management Change Target Version button." width="1800" height="372" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Fleet Lifecycle Component Target Version&lt;/strong&gt; dialog opens. Select &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt; and click on &lt;strong&gt;Set Target Version&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/003-capture-003.webp" alt="Fleet Lifecycle Component Target Version dialog with 9.1.1.0.25713934 selected and the Set Target Version button." width="1702" height="470" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can now see the upgrade path from &lt;strong&gt;9.1.0.0400.25570104&lt;/strong&gt; to &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Click on &lt;strong&gt;Check Binary Availability&lt;/strong&gt; and confirm that the required binary is available before proceeding. If it is missing, resolve the depot or download issue and run the check again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/004-capture-004.webp" alt="Fleet Lifecycle card showing the upgrade path to 9.1.1.0.25713934 with Upgrade and Check Binary Availability buttons." width="1800" height="277" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-upgrade"&gt;Running the Upgrade&lt;/h3&gt;
&lt;p&gt;Once binary availability is confirmed, click on &lt;strong&gt;Upgrade&lt;/strong&gt;. The card changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click on &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the task.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/005-capture-005.webp" alt="Fleet Lifecycle upgrade in progress from 9.1.0.0400.25570104 to 9.1.1.0.25713934 with the Upgrade details link." width="1800" height="205" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Here we can see the workflow setting the Fleet Lifecycle upgrade context and staging the Fleet Lifecycle plugin in VCF Services Runtime. In this capture, the first subtask has completed and staging is still in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/006-capture-006.webp" alt="Fleet Lifecycle Upgrade Workflow in progress, with the upgrade context subtask completed and plugin staging in VCF Services Runtime still running." width="1800" height="511" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the workflow to finish. Review any failed task or precheck and resolve the reported issue before retrying the upgrade.&lt;/p&gt;
&lt;h3 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Once the upgrade is complete, return to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. Verify that the Fleet Lifecycle card shows &lt;strong&gt;Current version: 9.1.1.0.25713934&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/007-capture-007.webp" alt="Fleet Lifecycle card showing current version 9.1.1.0.25713934 after the upgrade." width="1800" height="315" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can also check the &lt;strong&gt;Tasks&lt;/strong&gt; tab to verify that the upgrade workflow finished successfully. My final capture shows the last lifecycle metadata sync time as &lt;strong&gt;N/A&lt;/strong&gt;. If an automatic sync has not run recently, we can use &lt;strong&gt;Sync&lt;/strong&gt; before continuing with the other component upgrades.&lt;/p&gt;
&lt;p&gt;One known issue to keep in mind: if you plan to scale VCF Services Runtime from &lt;strong&gt;Small&lt;/strong&gt; to &lt;strong&gt;Small (High Availability)&lt;/strong&gt;, upgrade &lt;strong&gt;SDDC Lifecycle to 9.1.1&lt;/strong&gt; as well before doing that. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; document a failure when Fleet Lifecycle is on 9.1.1 while SDDC Lifecycle is still on 9.1.0.&lt;/p&gt;
&lt;h2 id="2-vcf-operations-pak-path-when-supported"&gt;2. VCF Operations (PAK path when supported)&lt;/h2&gt;
&lt;p&gt;This is the VCF Operations appliance path from the earlier guide. Use it only when your supported source and deployment call for a PAK update. For a fleet-managed 9.1.0.x environment, use the VCF Management lifecycle operation and keep this section as a legacy-path reference.&lt;/p&gt;
&lt;h3 id="downloading-the-upgrade-pak"&gt;Downloading the Upgrade PAK&lt;/h3&gt;
&lt;p&gt;To get started, log in to the &lt;a href="https://support.broadcom.com"&gt;Broadcom Support Portal&lt;/a&gt; and go to &lt;strong&gt;My Downloads -&amp;gt; VMware Cloud Foundation -&amp;gt; VMware Cloud Foundation 9 -&amp;gt; 9.1.1.0&lt;/strong&gt;. Under &lt;strong&gt;VCF Operations&lt;/strong&gt;, click &lt;strong&gt;View Group&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/001-capture-001.webp" alt="Broadcom download portal row showing VCF Operations 9.1.1.0 and packlist ID 545687." width="1800" height="61" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Read both agreements and accept the terms to enable the downloads.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/002-capture-002.webp" alt="Checked box accepting the Broadcom terms and compliance-reporting terms." width="1300" height="112" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Download &lt;code&gt;Operations-Upgrade-9.1.1.0.25679887.pak&lt;/code&gt;. The portal also provides the checksums that we can use to validate the file after the download.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/003-capture-003.webp" alt="VCF Operations 9.1.1 upgrade PAK details showing a 7.03 GB file, build 25679887, and checksums." width="1800" height="123" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="checking-the-cluster-before-the-upgrade"&gt;Checking the Cluster Before the Upgrade&lt;/h3&gt;
&lt;p&gt;Open the VCF Operations administration interface at &lt;code&gt;https://&amp;lt;primary-node-fqdn&amp;gt;/admin&lt;/code&gt; and log in with the local &lt;code&gt;admin&lt;/code&gt; account.&lt;/p&gt;
&lt;p&gt;Go to &lt;strong&gt;System Status&lt;/strong&gt; and make sure the cluster is Online and every node is Running. In my lab the starting node version was &lt;strong&gt;9.1.0.0400.25541561&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/006-capture-006.webp" alt="VCF Operations primary node running online on version 9.1.0.0400.25541561 before the upgrade." width="1800" height="75" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Go to &lt;strong&gt;Software Update&lt;/strong&gt;. The previously installed update in my lab was &lt;strong&gt;9.1.0.0400.25541550&lt;/strong&gt;. Click &lt;strong&gt;Install a Software Update&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/007-capture-007.webp" alt="VCF Operations Software Update page showing installed version 9.1.0.0400.25541550." width="1670" height="576" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="uploading-the-pak-file"&gt;Uploading the PAK File&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Browse&lt;/strong&gt;, select &lt;code&gt;Operations-Upgrade-9.1.1.0.25679887.pak&lt;/code&gt;, and click &lt;strong&gt;Upload&lt;/strong&gt;. Leave &lt;strong&gt;Install the PAK file even if it is already installed&lt;/strong&gt; unchecked.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/008-capture-008.webp" alt="Add Software Update wizard with the VCF Operations 9.1.1 PAK selected and ready to upload." width="1696" height="618" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The upload can take some time because the PAK is just over 7 GB. Once it finishes, confirm that the signature is valid and that the version is &lt;strong&gt;9.1.1.0.25679887&lt;/strong&gt;, then click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/009-capture-009.webp" alt="VCF Operations wizard confirming the 9.1.1 PAK signature is valid and warning that the cluster will restart." width="1778" height="1544" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Review the End User License Agreement, select &lt;strong&gt;I accept the terms of this agreement&lt;/strong&gt;, and click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/010-capture-010.webp" alt="VCF Operations update wizard with the Foundation Agreement accepted." width="1760" height="1532" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Review the update information and the software update best practices. This screen reminds us to have a backup or snapshots, run the pre-upgrade assessment, and remove the snapshots after the upgrade. Click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/011-capture-011.webp" alt="VCF Operations 9.1.1 update information recommending snapshots, a pre-upgrade assessment, and snapshot removal after completion." width="1766" height="1538" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;On the last page, click &lt;strong&gt;Install&lt;/strong&gt;. The installer restarts the cluster before copying the files, and the administration interface will become unavailable for a while.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/012-capture-012.webp" alt="Final installation step warning that the VCF Operations cluster will restart before the files are copied." width="1774" height="1554" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="monitoring-the-upgrade"&gt;Monitoring the Upgrade&lt;/h3&gt;
&lt;p&gt;After the administration interface comes back, log in again and go to &lt;strong&gt;Software Update&lt;/strong&gt; to follow the progress. The workflow moves through 14 steps. In the capture below it is at &lt;strong&gt;7 of 14 - Preapply Validated&lt;/strong&gt; and is preparing for certificate renewal.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/013-capture-013.webp" alt="VCF Operations 9.1.1 installation at step 7 of 14, preparing for certificate renewal." width="1800" height="431" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Once all 14 steps complete, the status changes to &lt;strong&gt;Applied and Cleaned&lt;/strong&gt;. In my single-node lab the install took about 40 minutes after the PAK finished uploading.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/014-capture-014.webp" alt="Software Update page showing VCF Operations 9.1.1 installed with all 14 steps applied and cleaned." width="1800" height="643" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-upgrade"&gt;Verifying the Upgrade&lt;/h3&gt;
&lt;p&gt;Go back to &lt;strong&gt;System Status&lt;/strong&gt; and verify that the cluster is Online and every node is Running. The final node version in my lab is &lt;strong&gt;9.1.1.0.25679751&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/015-capture-015.webp" alt="VCF Operations System Status showing a successful upgrade, an online primary node, and version 9.1.1.0.25679751." width="1800" height="418" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In the standard lifecycle workflow, cloud proxy and license server lifecycle is bundled with VCF Operations. Because this lab used the maintenance PAK route, verify both explicitly instead of assuming they were updated. The 9.1.1 release notes list cloud proxy build &lt;strong&gt;25679891&lt;/strong&gt; and license server build &lt;strong&gt;25679819&lt;/strong&gt;. I also recommend checking that collections have resumed, integrations are healthy, dashboards load, and fresh metrics are coming in.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t forget to remove the snapshots once everything has been validated. Since we are doing an upgrade, I also strongly recommend clearing the browser cache before using the new VCF Operations version.&lt;/p&gt;
&lt;h2 id="3-vcf-services-runtime"&gt;3. VCF Services Runtime&lt;/h2&gt;
&lt;p&gt;Run this section after Fleet Lifecycle. The runtime must be at 9.1.1 before its dependent Identity Broker and Salt operations. Its file-based backup covers service accounts only, so retain the individual hosted-service recovery points as well.&lt;/p&gt;
&lt;h3 id="selecting-the-target-version-1"&gt;Selecting the Target Version&lt;/h3&gt;
&lt;p&gt;To get started, log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We can see that Fleet Lifecycle is already upgraded, but the management components still have &lt;strong&gt;9.1.0.*&lt;/strong&gt; selected as the target. If the new release is not available, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for the task to complete.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Management Components&lt;/strong&gt;, click on &lt;strong&gt;Select Version&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934 and the management component target still set to 9.1.0.*." width="1186" height="508" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;Set Target Version&lt;/strong&gt; dialog, select &lt;strong&gt;9.1.1.*&lt;/strong&gt; from the &lt;strong&gt;VCF global version&lt;/strong&gt; drop-down and click on &lt;strong&gt;Set Version&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Please note that this target applies to management components across all VCF instances. Setting the target does not start the upgrades; we still need to select the component to upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/003-capture-003.webp" alt="Set Target Version dialog with VCF global version 9.1.1.* selected and the Set Version button enabled." width="1022" height="272" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-runtime-prechecks"&gt;Running the Runtime Prechecks&lt;/h3&gt;
&lt;p&gt;Clear any existing component selections, then filter the list for &lt;strong&gt;runtime&lt;/strong&gt; and select the &lt;strong&gt;VCF services runtime&lt;/strong&gt; row for the instance you want to upgrade. In my lab this is &lt;strong&gt;instance-a&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Make sure only the intended runtime is selected. The buttons should show &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and &lt;strong&gt;Upgrade (1)&lt;/strong&gt;. Check that the upgrade path is &lt;strong&gt;9.1.0.0200.25555874 -&amp;gt; 9.1.1.0.25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and confirm that the required binaries are available. Resolve any missing binaries before proceeding.&lt;/p&gt;
&lt;p&gt;Click on &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Once the task completes, review &lt;strong&gt;Precheck details&lt;/strong&gt; and resolve any errors before starting the upgrade, following the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;individual component upgrade procedure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here we can see the runtime row showing &lt;strong&gt;Ready for upgrade&lt;/strong&gt;, with the &lt;strong&gt;Precheck details&lt;/strong&gt; link available.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/005-capture-005.webp" alt="VCF Services Runtime selected for instance-a, with the upgrade path to 9.1.1.0.25714471, Ready for upgrade status, and Precheck details link." width="1800" height="645" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Once the prechecks have completed successfully, click on &lt;strong&gt;Upgrade&lt;/strong&gt; on the runtime row.&lt;/p&gt;
&lt;p&gt;The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. We can follow the progress by clicking on &lt;strong&gt;Upgrade details&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/006-capture-006.webp" alt="VCF Services Runtime row showing Upgrade in progress from 9.1.0.0200.25555874 to 9.1.1.0.25714471." width="955" height="58" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow starts by setting the runtime upgrade context and staging the runtime plugin. In this capture we can see &lt;strong&gt;Staging binaries&lt;/strong&gt; followed by &lt;strong&gt;Running Component Stage Prechecks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/007-capture-007.webp" alt="VCF Services Runtime upgrade workflow in progress, with the plugin staging subtask displaying binary staging and component stage precheck messages." width="1376" height="656" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We now have to wait for the workflow to finish. It continues through runtime prechecks, package staging, upgrade preparation, the upgrade itself, and the final inventory sync.&lt;/p&gt;
&lt;p&gt;If a task fails, open its details and resolve the reported issue before retrying. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;9.1.1 known issues&lt;/a&gt; also explain that a completed workflow can retain failed subtask attempts after successful retries. Review the final task status and component health when checking the result.&lt;/p&gt;
&lt;h3 id="verifying-the-upgrade-1"&gt;Verifying the Upgrade&lt;/h3&gt;
&lt;p&gt;Once the upgrade is complete, the workflow shows &lt;strong&gt;Completed&lt;/strong&gt;. The final &lt;strong&gt;Inventory sync post VCF services runtime upgrade&lt;/strong&gt; subtask also shows &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In my lab the workflow started at &lt;strong&gt;9:01 AM&lt;/strong&gt; and completed at &lt;strong&gt;2:46 PM&lt;/strong&gt; on September 7, about &lt;strong&gt;5 hours and 45 minutes&lt;/strong&gt;. This is the total workflow time shown in my task, not a measurement of service downtime. Allow for your environment to take a different amount of time.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/008-capture-008.webp" alt="Completed VCF Services Runtime upgrade workflow, with a 9:01 AM start, 2:46 PM completion, and completed final inventory sync." width="1358" height="554" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can verify the installed version by going to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and opening &lt;strong&gt;VCF Services Runtime&lt;/strong&gt; for the instance.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, check that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/009-capture-009.webp" alt="VCF Services Runtime Summary showing Running status, version 9.1.1.0.25714471, and Small size after the upgrade." width="542" height="741" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Before moving on, open &lt;strong&gt;Services runtime health&lt;/strong&gt; and check the nodes and hosted services for outstanding health issues. Verify the services you use, such as sign-in, log collection, and lifecycle operations, and confirm that backups are still working.&lt;/p&gt;
&lt;h2 id="4-sddc-lifecycle"&gt;4. SDDC Lifecycle&lt;/h2&gt;
&lt;p&gt;Run this as a single component operation. If you plan to scale Services Runtime from Small to Small (High Availability), complete this upgrade before scaling.&lt;/p&gt;
&lt;h3 id="selecting-sddc-lifecycle"&gt;Selecting SDDC Lifecycle&lt;/h3&gt;
&lt;p&gt;To get started, log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Target VCF version&lt;/strong&gt; in my lab is already set to &lt;strong&gt;9.1.1.*&lt;/strong&gt; from the previous upgrade. If yours is still on &lt;strong&gt;9.1.0.*&lt;/strong&gt;, click on &lt;strong&gt;Select Version&lt;/strong&gt; and set the target to &lt;strong&gt;9.1.1.*&lt;/strong&gt;, as covered in the &lt;a href="https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/#selecting-the-target-version"&gt;runtime walkthrough&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Clear any existing component selections, filter the list for &lt;strong&gt;sddc&lt;/strong&gt;, and select &lt;strong&gt;SDDC lifecycle&lt;/strong&gt; for the instance you want to upgrade. In my lab this is &lt;strong&gt;instance-a&lt;/strong&gt;. Make sure only the intended component is selected; the buttons should show &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and &lt;strong&gt;Upgrade (1)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binaries before proceeding. Check that the upgrade path is &lt;strong&gt;9.1.0.0400.25570103 -&amp;gt; 9.1.1.0.25713940&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page with SDDC Lifecycle selected for instance-a and the upgrade path to 9.1.1.0.25713940." width="1800" height="646" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;Click on &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. The row changes to &lt;strong&gt;Prechecks in progress&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/002-capture-002.webp" alt="SDDC Lifecycle showing Prechecks in progress for the upgrade from 9.1.0.0400.25570103 to 9.1.1.0.25713940." width="1006" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Click on &lt;strong&gt;Precheck details&lt;/strong&gt; to follow the workflow. The detail view shows the precheck context being set and the SDDC Lifecycle precheck binaries being staged.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/003-capture-003.webp" alt="SDDC Lifecycle precheck workflow showing the precheck binaries being staged." width="1123" height="495" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In my lab the precheck started at &lt;strong&gt;8:56 AM&lt;/strong&gt; and completed at &lt;strong&gt;9:11 AM&lt;/strong&gt; on September 8. The final result was &lt;strong&gt;Passed&lt;/strong&gt;, including the component package, vCenter, database upgrade, and single-component backup checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/004-capture-004.webp" alt="Completed SDDC Lifecycle precheck workflow with an overall Passed result and six checks passed." width="1374" height="565" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Once the prechecks pass, return to the upgrade list. The row should show &lt;strong&gt;Ready for upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/005-capture-005.webp" alt="SDDC Lifecycle ready for upgrade after the prechecks completed." width="1038" height="51" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Resolve any failed check before continuing, following Broadcom&amp;rsquo;s &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;individual component upgrade procedure&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-1"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click on &lt;strong&gt;Upgrade&lt;/strong&gt; on the SDDC Lifecycle row.&lt;/p&gt;
&lt;p&gt;The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click on &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/006-capture-006.webp" alt="SDDC Lifecycle showing Upgrade in progress from 9.1.0.0400.25570103 to 9.1.1.0.25713940." width="1021" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow sets the upgrade context, stages the SDDC Lifecycle plugin in VCF Services Runtime, runs the component prechecks, stages the package, prepares and performs the upgrade, and finishes with an inventory sync.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/007-capture-007.webp" alt="SDDC Lifecycle upgrade workflow in progress while the component prechecks run." width="1124" height="481" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the workflow to finish. If a task fails, open its details, resolve the reported issue, and retry it before moving on.&lt;/p&gt;
&lt;h3 id="verifying-the-upgrade-2"&gt;Verifying the Upgrade&lt;/h3&gt;
&lt;p&gt;Once the upgrade is complete, the workflow shows &lt;strong&gt;Completed&lt;/strong&gt;. In my lab all seven subtasks completed, including &lt;strong&gt;Inventory sync post SDDC lifecycle upgrade&lt;/strong&gt;. The upgrade started at &lt;strong&gt;9:15 AM&lt;/strong&gt; and finished at &lt;strong&gt;10:04 AM&lt;/strong&gt; on September 8, about &lt;strong&gt;49 minutes&lt;/strong&gt; for the full workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/008-capture-008.webp" alt="Completed SDDC Lifecycle upgrade workflow with all seven subtasks completed." width="444" height="483" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can verify the installed version by going to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and opening &lt;strong&gt;SDDC Lifecycle&lt;/strong&gt; for the instance.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, check that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25713940&lt;/strong&gt;. Also confirm that it is managed by the expected VCF Services Runtime instance.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/009-capture-009.webp" alt="SDDC Lifecycle Summary showing Running status, version 9.1.1.0.25713940, and management by VCF Services Runtime." width="488" height="525" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;One known issue to keep in mind: if you plan to scale VCF Services Runtime from &lt;strong&gt;Small&lt;/strong&gt; to &lt;strong&gt;Small (High Availability)&lt;/strong&gt;, upgrade &lt;strong&gt;SDDC Lifecycle to 9.1.1&lt;/strong&gt; before doing that. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; document a failure when Fleet Lifecycle is on 9.1.1 while SDDC Lifecycle is still on 9.1.0.&lt;/p&gt;
&lt;p&gt;SDDC Lifecycle in my lab is now on &lt;strong&gt;9.1.1&lt;/strong&gt;. We can continue with the remaining management components, following the release-specific dependencies above.&lt;/p&gt;
&lt;h2 id="5-vcf-automation"&gt;5. VCF Automation&lt;/h2&gt;
&lt;p&gt;Run this after the runtime required by your deployment and before Migration Service Engine. Take the VCF Automation backup first, and remove or remediate custom profiles from 9.0.1, 9.0.2.x, or 9.1.0.x by following &lt;a href="https://knowledge.broadcom.com/external/article/451147"&gt;KB 451147&lt;/a&gt;. Review the 9.1.1 behavior changes in the first subsection before starting.&lt;/p&gt;
&lt;h3 id="a-few-things-to-know-about-911"&gt;A Few Things to Know About 9.1.1&lt;/h3&gt;
&lt;p&gt;VCF Automation 9.1.1 adds support for VLAN-backed VPCs consumed through VCF Automation. It also changes the default behavior for native public-cloud management: support for AWS, Azure, and GCP resources is deprecated and disabled by default in VM Apps organizations. If you use those capabilities, review Broadcom &lt;a href="https://knowledge.broadcom.com/external/article/448993"&gt;KB 448993&lt;/a&gt; before upgrading so you understand the effect on existing deployments and how to restore the functionality.&lt;/p&gt;
&lt;p&gt;The release also fixes several problems that are relevant to an upgrade window, including long waits with a generic timeout during the backup stage, mixed-case FQDN failures, services not recovering after a cluster power-on, and log buffers filling the logging disk. BYO Velero package installation is deprecated as well; the release notes recommend using the package deployed by VKS.&lt;/p&gt;
&lt;h3 id="selecting-vcf-automation"&gt;Selecting VCF Automation&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The target version in my lab was already set to &lt;code&gt;9.1.1.*&lt;/code&gt;. If the target still shows &lt;code&gt;9.1.0.*&lt;/code&gt;, click &lt;strong&gt;Select Version&lt;/strong&gt;, choose &lt;code&gt;9.1.1.*&lt;/code&gt;, and set the new target. If 9.1.1 is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; and wait for the lifecycle metadata task to finish.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Management Components&lt;/strong&gt;, filter the list for &lt;strong&gt;automation&lt;/strong&gt; and select the &lt;strong&gt;VCF Automation&lt;/strong&gt; row for the VCF instance you want to upgrade. In my lab this was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0200.25556825 -&amp;gt; 9.1.1.0.25714559&lt;/strong&gt;. The screenshot below shows the target version and the VCF Automation row ready for the precheck workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page showing VCF Automation instance-a on the 9.1.1 target with the 9.1.1.0.25714559 upgrade path." width="1664" height="705" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-1"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;Make sure only the intended VCF Automation component is selected. The buttons should show &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and &lt;strong&gt;Upgrade (1)&lt;/strong&gt;. Click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and open &lt;strong&gt;Precheck details&lt;/strong&gt; to follow the task.&lt;/p&gt;
&lt;p&gt;The precheck workflow validates the package, the vCenter connection, the VCF services platform, and the component backup requirements. Review every result and remediate any failure before starting the upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/002-capture-002.webp" alt="Completed VCF Automation Upgrade Prechecks workflow showing an overall Passed result." width="1130" height="430" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck is complete, return to the upgrade list. The row should show &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. In my lab the selected row showed the expected source and target builds and the precheck link remained available for review.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/003-capture-003.webp" alt="VCF Automation selected with the 9.1.1 upgrade path and Ready for upgrade status after the precheck completed." width="1130" height="188" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-2"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the VCF Automation row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/004-capture-004.webp" alt="VCF Automation showing Upgrade in progress from 9.1.0.0200.25556825 to 9.1.1.0.25714559." width="850" height="91" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow stages the VCF Automation binaries in the VCF services runtime, runs the component-stage prechecks, and continues through the package staging and upgrade tasks. The details view in my run showed &lt;strong&gt;Stage VCF Automation precheck binaries&lt;/strong&gt; in progress, followed by the component checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/005-capture-005.webp" alt="VCF Automation upgrade workflow in progress while the precheck binaries are staged." width="1122" height="513" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the task to finish. If a subtask fails, open its details, resolve the reported issue, and retry it before moving on. Do not start another management-component operation while this workflow is running.&lt;/p&gt;
&lt;h3 id="verifying-the-upgrade-3"&gt;Verifying the Upgrade&lt;/h3&gt;
&lt;p&gt;Once the task reports &lt;strong&gt;Completed&lt;/strong&gt;, go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;VCF Automation&lt;/strong&gt; for the upgraded instance.&lt;/p&gt;
&lt;p&gt;In the component &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and that the version is &lt;strong&gt;9.1.1.0.25714559&lt;/strong&gt;. The final capture from my lab shows the upgraded VCF Automation instance running at the expected version.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/006-capture-006.webp" alt="Completed VCF Automation upgrade task in VCF Operations." width="820" height="152" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/007-capture-007.webp" alt="VCF Automation Summary showing Running status, version 9.1.1.0.25714559, and Small size." width="317" height="205" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports &lt;strong&gt;Running&lt;/strong&gt;, test the provider and tenant portals, logins, cloud accounts, catalog requests, representative deployments, and any integrations that are important in your environment. Also check the VCF services runtime health and confirm that fresh lifecycle tasks and backups work as expected.&lt;/p&gt;
&lt;p&gt;Once validation is complete, remove any temporary snapshots you created or expire backup artifacts according to your retention policy. I also recommend clearing the browser cache before using the updated VCF Automation and VCF Operations interfaces.&lt;/p&gt;
&lt;p&gt;VCF Automation in my lab is now on &lt;strong&gt;9.1.1.0.25714559&lt;/strong&gt;. If this is part of a complete VCF 9.1.1 maintenance run, continue with the remaining components while following the dependency boundaries in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="6-migration-service-engine-vcd-migrator"&gt;6. Migration Service Engine (VCD Migrator)&lt;/h2&gt;
&lt;p&gt;Run this immediately after VCF Automation when the row is installed. VCF Operations calls it &lt;strong&gt;Migration service engine&lt;/strong&gt;; its workflow token is &lt;code&gt;VCD_MIGRATOR&lt;/code&gt;. Confirm the migration backend binary &lt;code&gt;VCF_SERVICE_VCD_MIGRATION_BACKEND&lt;/code&gt; is available. If the service was uninstalled and reinstalled, check &lt;a href="https://knowledge.broadcom.com/external/article/453702/911error-servicesvcfabroadcomcomvcfaserv.html"&gt;KB 453702&lt;/a&gt; before proceeding.&lt;/p&gt;
&lt;h3 id="selecting-the-migration-service-engine"&gt;Selecting the Migration Service Engine&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The target in my lab was already set to &lt;code&gt;9.1.1.*&lt;/code&gt;, and Fleet Lifecycle was already running &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. If your target still shows &lt;code&gt;9.1.0.*&lt;/code&gt;, click &lt;strong&gt;Select Version&lt;/strong&gt; (shown as &lt;strong&gt;Change target version&lt;/strong&gt; in some builds), choose &lt;code&gt;9.1.1.*&lt;/code&gt;, and set the new target. If 9.1.1 is missing, use &lt;strong&gt;Sync&lt;/strong&gt; and wait for the lifecycle metadata task to finish.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Management Components&lt;/strong&gt;, filter for &lt;strong&gt;migration&lt;/strong&gt; and select the &lt;strong&gt;Migration service engine&lt;/strong&gt; row for the VCF instance you want to upgrade. In my lab that instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0200.25556825 -&amp;gt; 9.1.1.0.25714559&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/002-capture-002.webp" alt="VCF Management Upgrade page showing Fleet Lifecycle on 9.1.1 and the Migration service engine row targeting 9.1.1.0.25714559." width="1425" height="660" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Select the row. The action bar shows &lt;strong&gt;RUN PRECHECKS (1)&lt;/strong&gt; and &lt;strong&gt;UPGRADE (1)&lt;/strong&gt;, and the row reports &lt;strong&gt;Ready for upgrade&lt;/strong&gt; after the precheck has passed.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/003-capture-003.webp" alt="Selected Migration service engine row showing the 9.1.1 upgrade path and the Run Prechecks and Upgrade actions." width="870" height="160" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="run-the-prechecks"&gt;Run the Prechecks&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;RUN PRECHECKS (1)&lt;/strong&gt; and open &lt;strong&gt;Precheck details&lt;/strong&gt;. Review every result before starting the upgrade. The VCD Migrator precheck covers the staged component package, the virtual center connection, and the database upgrade checks.&lt;/p&gt;
&lt;p&gt;The precheck workflow in my run completed with an overall &lt;strong&gt;Passed&lt;/strong&gt; result. The four checks shown in the task were &lt;strong&gt;Component Package Staged Check&lt;/strong&gt;, &lt;strong&gt;Component Package Staging Check&lt;/strong&gt;, &lt;strong&gt;Virtual Center Precheck&lt;/strong&gt;, and &lt;strong&gt;Database Upgrade Precheck&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/001-capture-001.webp" alt="Completed VCD_MIGRATOR Precheck Workflow with an overall Passed result and all listed checks passed." width="884" height="480" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the upgrade list and confirm that the row still reports &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. If a check fails, correct the underlying issue and run the precheck again. Start the upgrade only after the row is ready.&lt;/p&gt;
&lt;h3 id="start-the-upgrade"&gt;Start the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;UPGRADE&lt;/strong&gt; on the selected row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt; and an &lt;strong&gt;Upgrade details&lt;/strong&gt; link appears.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/006-capture-006.webp" alt="Migration service engine row showing Upgrade in progress for the 9.1.1 target." width="700" height="104" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Upgrade details&lt;/strong&gt; and follow the task from the &lt;strong&gt;Tasks&lt;/strong&gt; tab. The workflow is named &lt;strong&gt;VCF_MIGRATOR Upgrade Workflow&lt;/strong&gt;. In the supplied capture, the active subtask is &lt;strong&gt;Stage VCD_MIGRATOR plugin in VCF services runtime&lt;/strong&gt;. Its messages show the binaries staging first and then &lt;strong&gt;Running Component Stage Prechecks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-migration-service-engine-9-1-1-upgrade/007-capture-007.webp" alt="VCF_MIGRATOR Upgrade Workflow in progress while the VCD_MIGRATOR plugin is staged in the VCF services runtime." width="883" height="617" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The exact number and names of subtasks can vary with the installed VCF Automation build. Wait for the overall task to report &lt;strong&gt;Completed&lt;/strong&gt;, including its final inventory synchronization where shown. Do not start another management-component operation while this task is running. If a subtask fails, open its details, fix the reported issue, and retry it before proceeding.&lt;/p&gt;
&lt;p&gt;If &lt;strong&gt;Stage VCD_MIGRATOR precheck binaries&lt;/strong&gt; eventually times out instead of progressing, review &lt;a href="https://knowledge.broadcom.com/external/article/452122/troubleshooting-vcf-automation-upgrade-p.html"&gt;KB 452122&lt;/a&gt;. Broadcom identifies pod starvation and Fluentd readiness failures as causes of this specific precheck timeout; resolve the underlying health issue before retrying.&lt;/p&gt;
&lt;h3 id="verify-the-new-version"&gt;Verify the New Version&lt;/h3&gt;
&lt;p&gt;The supplied captures end while the upgrade is &lt;strong&gt;In Progress&lt;/strong&gt;, so the final version still needs to be verified after the task completes.&lt;/p&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt;, open the Migration Service Engine component, and verify that it reports &lt;strong&gt;Status: Running&lt;/strong&gt; and version &lt;strong&gt;9.1.1.0.25714559&lt;/strong&gt;. Also review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed, partial, or stale tasks.&lt;/p&gt;
&lt;p&gt;For a workload-migration environment, test the VCF Automation provider and tenant portals, confirm the migration service health, validate the VCD and vCenter connections, and run the supported migration prechecks before moving any workload. The vCenter migration service account must be a member of the SSO group &lt;strong&gt;SupervisorProviderAdministrators&lt;/strong&gt;; if you add it after the connection was created, refresh the VCF Automation vCenter connection as described in &lt;a href="https://knowledge.broadcom.com/external/article/444854/vcd-workload-migration-to-vcf-automation.html"&gt;KB 444854&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The supplied run is still in progress. Once the task reports &lt;strong&gt;Completed&lt;/strong&gt; and the component is &lt;strong&gt;Running&lt;/strong&gt; at the target build, the next management-component upgrade can proceed within the dependency order in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="7-identity-broker"&gt;7. Identity Broker&lt;/h2&gt;
&lt;p&gt;Run this only after the hosting VCF Services Runtime is on 9.1.1.&lt;/p&gt;
&lt;h3 id="selecting-identity-broker"&gt;Selecting Identity Broker&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the release is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for that task to finish before checking again.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;identity&lt;/strong&gt; and select &lt;strong&gt;Identity broker&lt;/strong&gt; for the VCF instance you want to patch. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0100.25522734 -&amp;gt; 9.1.1.0.25679886&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle on 9.1.1, the 9.1.1 target, and Identity Broker ready for upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934 and Identity Broker instance-a ready to upgrade from 9.1.0.0100.25522734 to 9.1.1.0.25679886." width="1664" height="699" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-2"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;With only Identity Broker selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the &lt;strong&gt;Identity broker Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/003-capture-003.webp" alt="Identity Broker precheck workflow in progress while its binaries are staged in the VCF services runtime." width="1128" height="545" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck completes, review the &lt;strong&gt;Prechecks&lt;/strong&gt; tab and confirm that the overall result is &lt;strong&gt;Passed&lt;/strong&gt;. In my run, the checks covered package staging, the vCenter connection, the database upgrade, the VCF services platform version, and the single-component backup requirement.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/004-capture-004.webp" alt="Completed Identity Broker Precheck Workflow showing a Passed result and all listed checks passed." width="1131" height="540" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Identity Broker is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/005-capture-005.webp" alt="Identity Broker selected with the 9.1.1.0.25679886 upgrade path and Ready for upgrade status after the precheck completed." width="1090" height="152" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-3"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Identity Broker row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Identity Broker upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Identity Broker plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Identity Broker prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Identity Broker package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Identity Broker for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Identity Broker upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Identity Broker upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The task details show the plugin staging and component-stage prechecks while the upgrade is in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/007-capture-007.webp" alt="Identity Broker upgrade workflow in progress while the plugin is staged in the VCF services runtime." width="1124" height="586" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow in my lab started at &lt;strong&gt;7:52 PM&lt;/strong&gt; and completed at &lt;strong&gt;9:18 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;1 hour and 26 minutes&lt;/strong&gt;. That is the task duration shown in my lab, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/008-capture-008.webp" alt="Completed Identity Broker upgrade workflow showing all seven subtasks completed." width="1127" height="618" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-1"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Identity Broker&lt;/strong&gt; component for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25679886&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt;, it was managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;, and the managed link was &lt;strong&gt;VCF SSO&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/009-capture-009.webp" alt="Identity Broker component summary showing Running status, version 9.1.1.0.25679886, Small size, and VCF services runtime management." width="473" height="405" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports &lt;strong&gt;Running&lt;/strong&gt;, validate the authentication path that matters in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sign in to VCF Operations with the configured SSO identity provider.&lt;/li&gt;
&lt;li&gt;Test a directory user and a group-based role assignment.&lt;/li&gt;
&lt;li&gt;Confirm that the expected groups and permissions are still available.&lt;/li&gt;
&lt;li&gt;Test representative VCF component logins and any applications that use the Identity Broker integration.&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks, and review VCF services runtime and Identity Broker health.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Treat the lifecycle task and the login checks as separate validations. A completed task confirms that the package workflow finished; successful SSO tests confirm that the broker is serving authentication correctly in your environment.&lt;/p&gt;
&lt;p&gt;Once the component and authentication path have been validated, keep or expire the backup artifacts according to your retention policy. I also recommend clearing the browser cache before using the updated VCF Operations interface.&lt;/p&gt;
&lt;p&gt;Identity Broker in my lab is now on &lt;strong&gt;9.1.1.0.25679886&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="8-salt-raas"&gt;8. Salt RaaS&lt;/h2&gt;
&lt;p&gt;Run this only after the hosting VCF Services Runtime is on 9.1.1.&lt;/p&gt;
&lt;h3 id="selecting-salt-raas"&gt;Selecting Salt RaaS&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;*. If the release is not listed, click &lt;strong&gt;Sync&lt;/strong&gt;, wait for the lifecycle metadata task to complete, and check again. Setting the target only changes the available target; it does not start an upgrade.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;salt&lt;/strong&gt; and select the &lt;strong&gt;Salt RaaS&lt;/strong&gt; row for the VCF instance you want to patch. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;. Make sure only the intended component is selected, and expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; to resolve any missing binary.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0100.25434834 -&amp;gt; 9.1.1.0.25679895&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management upgrade page showing Salt RaaS instance-a selected with the upgrade path from 9.1.0.0100.25434834 to 9.1.1.0.25679895 and prechecks in progress." width="1129" height="197" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-3"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;With only Salt RaaS selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the &lt;strong&gt;Salt RaaS Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;The first part of the workflow stages the precheck binaries. The task view reports the staging messages and the component stage precheck status while it runs.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/002-capture-002.webp" alt="Salt RaaS precheck workflow showing the Stage Salt RaaS precheck binaries subtask in progress." width="1131" height="618" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow then runs the Salt RaaS prechecks. Do not start the upgrade while this task is still running.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/004-capture-004.webp" alt="Salt RaaS precheck workflow showing the Run Salt RaaS prechecks subtask in progress." width="1366" height="590" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the task completes, review the &lt;strong&gt;Prechecks&lt;/strong&gt; tab and confirm that the overall result is &lt;strong&gt;Passed&lt;/strong&gt;. In my run, the list included component package staging, package staging, Virtual Center, VMSP platform version, database upgrade, and single-component backup checks, all marked &lt;strong&gt;Passed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/005-capture-005.webp" alt="Completed Salt RaaS Precheck Workflow showing a Passed result and all listed checks passed." width="1128" height="535" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Salt RaaS is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/007-capture-007.webp" alt="Salt RaaS instance-a selected with the 9.1.1.0.25679895 upgrade path and Ready for upgrade status." width="1123" height="148" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-4"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Salt RaaS row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/008-capture-008.webp" alt="Salt RaaS row showing Upgrade in progress from 9.1.0.0100.25434834 to 9.1.1.0.25679895." width="895" height="147" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Salt RaaS upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Salt RaaS plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Salt RaaS prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Salt RaaS package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Salt RaaS for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Salt RaaS upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Salt RaaS upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While the upgrade prechecks are running, the task details show the component upgrade precheck messages. Wait for the workflow to move through package staging, preparation, and the upgrade itself.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/009-capture-009.webp" alt="Salt RaaS upgrade workflow showing the component upgrade prechecks running and the successful component-upgrade-precheck message." width="1122" height="548" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the final inventory sync completes, confirm that the overall task status is &lt;strong&gt;Completed&lt;/strong&gt;. The supplied captures contain separate precheck and upgrade task timestamps from the lab, so I am not treating them as a single downtime measurement.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/011-capture-011.webp" alt="Completed Salt RaaS upgrade workflow showing the final inventory sync completed." width="1121" height="694" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-2"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;Salt RaaS&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt;, the version is &lt;strong&gt;9.1.1.0.25679895&lt;/strong&gt;, and the component is managed by the expected &lt;strong&gt;VCF services runtime&lt;/strong&gt;. In my lab the deployment size is &lt;strong&gt;Small&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/012-capture-012.webp" alt="Salt RaaS component summary showing Running status, version 9.1.1.0.25679895, Small size, and management by the VCF services runtime." width="445" height="346" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Before moving on, review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks, check the VCF services runtime and Salt health, and confirm that the management-services backup still works. Also verify the Salt Master separately if it is installed; the RaaS upgrade does not prove that every Salt component is on 9.1.1.&lt;/p&gt;
&lt;p&gt;VCF Salt RaaS in my lab is now on &lt;strong&gt;9.1.1.0.25679895&lt;/strong&gt;. We can continue with the remaining management components by following the dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="9-salt-master"&gt;9. Salt Master&lt;/h2&gt;
&lt;p&gt;Run this after the runtime and keep it separate from other lifecycle tasks.&lt;/p&gt;
&lt;h3 id="selecting-salt-master"&gt;Selecting Salt Master&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;*. If the release is not listed, click &lt;strong&gt;Sync&lt;/strong&gt;, wait for the lifecycle metadata task to complete, and check again.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;master&lt;/strong&gt; and select the &lt;strong&gt;Salt master&lt;/strong&gt; row for the VCF instance you want to patch. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Make sure only the intended component is selected. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0400.25544946 -&amp;gt; 9.1.1.0.25679895&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934, target VCF version 9.1.1.*, and Salt master instance-a ready to upgrade from 9.1.0.0400.25544946 to 9.1.1.0.25679895." width="1667" height="699" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-4"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;With only Salt Master selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the &lt;strong&gt;Salt master Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;When the precheck completes, review the &lt;strong&gt;Prechecks&lt;/strong&gt; tab and confirm that the overall result is &lt;strong&gt;Passed&lt;/strong&gt;. In my run, the checks included component package staging, package staging, the vCenter connection, the database upgrade, and the single-component backup requirement.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/002-capture-002.webp" alt="Completed Salt master Precheck Workflow showing a Passed result and all six listed checks passed." width="1125" height="539" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Salt Master is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/003-capture-003.webp" alt="Salt master selected with the 9.1.1.0.25679895 upgrade path and Ready for upgrade status after the precheck completed." width="1037" height="150" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-5"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Salt Master row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow in my lab moved through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Salt master upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Salt master plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run Salt master prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Salt master package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Salt master for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Salt master upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Salt master upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/004-capture-004.webp" alt="Salt master row showing Upgrade in progress from 9.1.0.0400.25544946 to 9.1.1.0.25679895." width="892" height="85" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/005-capture-005.webp" alt="Salt master upgrade workflow in progress while the Salt master plugin is staged in the VCF services runtime." width="1127" height="490" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow then advances through the Salt master prechecks, package staging, and preparation steps.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/006-capture-006.webp" alt="Salt master upgrade workflow showing completed staging and prechecks while preparation is in progress." width="1122" height="433" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task details show the package staging, prechecks, preparation, and upgrade subtasks. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/007-capture-007.webp" alt="Salt master upgrade workflow showing all seven subtasks completed, including the final inventory sync." width="1125" height="475" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In my lab the workflow started at &lt;strong&gt;6:51 AM&lt;/strong&gt; and completed at &lt;strong&gt;7:42 AM&lt;/strong&gt; on September 9, for a total workflow time of about &lt;strong&gt;51 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment.&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-3"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;Salt Master&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25679895&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt; and it was managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/008-capture-008.webp" alt="Salt Master component summary showing Running status, version 9.1.1.0.25679895, Small size, and VCF services runtime management." width="463" height="352" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Before moving on, review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks, check the VCF services runtime and Salt health, and confirm that the management-services backup still works. If Salt RaaS is also present, verify its version and patch it only after its hosting runtime meets the 9.1.1 dependency.&lt;/p&gt;
&lt;h2 id="10-log-management"&gt;10. Log Management&lt;/h2&gt;
&lt;p&gt;Run Log Management to completion before Operations for Networks when both are installed. Log data is not included in the component backup, so retain a separate archive.&lt;/p&gt;
&lt;h3 id="selecting-log-management"&gt;Selecting Log Management&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The target in my lab is already &lt;code&gt;9.1.1.*&lt;/code&gt;. If the target is still on an older release, click &lt;strong&gt;Select Version&lt;/strong&gt;, choose &lt;code&gt;9.1.1.*&lt;/code&gt;, and apply the target before selecting the component. If the page shows a warning that VCF Operations must be patched independently, finish that patch and wait for it to succeed before continuing with the other management components.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;log&lt;/strong&gt;, select &lt;strong&gt;Log management&lt;/strong&gt;, and make sure the intended instance is selected. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0400.25544947 -&amp;gt; 9.1.1.0.25679624&lt;/strong&gt;. The screenshot below shows the target version, the selected Log Management instance, and the &lt;strong&gt;Ready for upgrade&lt;/strong&gt; state.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Log Management instance-a ready to upgrade from 9.1.0.0400.25544947 to 9.1.1.0.25679624." width="1666" height="665" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-5"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;With only Log Management selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Follow the task by opening &lt;strong&gt;Precheck details&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/003-capture-003.webp" alt="Log Management precheck workflow showing the component package being staged in VCF services runtime." width="1128" height="621" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The precheck workflow in my lab completed successfully in about 14 minutes. It passed the package staging, vCenter, database upgrade, and single-component backup checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/004-capture-004.webp" alt="Completed Log Management precheck workflow with an overall Passed result and six checks passed." width="1126" height="510" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Do not start the upgrade until the precheck status is &lt;strong&gt;Passed&lt;/strong&gt;. If a check fails, open its details, remediate the reported issue, and run the precheck again.&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-6"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Return to the component list and click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Log Management row. The row changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Log Management upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Log Management plugin in VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Log Management prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Log Management package in VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Log Management for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Log Management upgrade.&lt;/li&gt;
&lt;li&gt;Run the post-upgrade inventory sync.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/007-capture-007.webp" alt="Log Management upgrade workflow in progress while the component upgrade is being performed." width="1122" height="637" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow started at &lt;strong&gt;10:53 AM&lt;/strong&gt; in my lab. The task took about &lt;strong&gt;1 hour and 11 minutes&lt;/strong&gt;, completing at &lt;strong&gt;12:04 PM&lt;/strong&gt;. That is the total workflow time shown in my task, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/008-capture-008.webp" alt="Completed Log Management upgrade workflow with all seven subtasks completed." width="1128" height="480" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-4"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Log Management&lt;/strong&gt; component for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt;, the version is &lt;strong&gt;9.1.1.0.25679624&lt;/strong&gt;, and the component is managed by the expected VCF services runtime. In my lab the deployment size is &lt;strong&gt;Small&lt;/strong&gt; with one replica.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/009-capture-009.webp" alt="Log Management component summary showing Running status and version 9.1.1.0.25679624." width="419" height="376" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports Running, validate the parts of the service that matter in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open &lt;strong&gt;Operate -&amp;gt; Logs&lt;/strong&gt; and run a known query.&lt;/li&gt;
&lt;li&gt;Confirm that new events are arriving from representative vSphere, ESXi, and application sources.&lt;/li&gt;
&lt;li&gt;Check dashboards, alerts, notification targets, and any custom integrations.&lt;/li&gt;
&lt;li&gt;Verify that any custom log forwarding configuration still points to the correct Log Management instance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="911-changes-to-keep-in-mind"&gt;9.1.1 Changes to Keep in Mind&lt;/h3&gt;
&lt;h2 id="11-operations-for-networks"&gt;11. Operations for Networks&lt;/h2&gt;
&lt;p&gt;Run this after Log Management has completed when both components are installed. For an XL deployment, if the system precheck reports &lt;code&gt;system.health.status.check&lt;/code&gt;, apply &lt;a href="https://knowledge.broadcom.com/external/article/454602/the-vcf-operations-for-networks-upgrade.html"&gt;KB 454602&lt;/a&gt;: add the required 1 TB disk, let the appliance detect it, and rerun the precheck.&lt;/p&gt;
&lt;h3 id="selecting-vcf-operations-for-networks"&gt;Selecting VCF Operations for Networks&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the release is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for that task to finish before checking again.&lt;/p&gt;
&lt;p&gt;Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt;, resolve any missing binary, and filter the component list for &lt;strong&gt;networks&lt;/strong&gt;. Select the &lt;strong&gt;VCF Operations for networks&lt;/strong&gt; row for the instance you want to patch. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0200.25517220 -&amp;gt; 9.1.1.0.25682214&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle on 9.1.1, the 9.1.1 target, the selected Networks instance, and the &lt;strong&gt;Ready for upgrade&lt;/strong&gt; state.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/002-capture-002.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934, target VCF version 9.1.1.*, and VCF Operations for Networks instance-a ready for upgrade." width="1669" height="694" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-6"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;With only VCF Operations for Networks selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the workflow to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/004-capture-004.webp" alt="VCF Operations for Networks upgrade precheck workflow in progress, with the Stage Precheck Binaries subtask running." width="1127" height="501" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The precheck in my lab started at &lt;strong&gt;8:30 PM&lt;/strong&gt; and completed at &lt;strong&gt;8:34 PM&lt;/strong&gt;. The result was &lt;strong&gt;Passed&lt;/strong&gt;. Platform, collector, system, and appliance prechecks all passed; the appliance checks contained nine individual checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/005-capture-005.webp" alt="Completed VCF Operations for Networks upgrade prechecks showing an overall Passed result and platform, collector, system, and appliance checks passed." width="1128" height="442" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that the Networks row is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/006-capture-006.webp" alt="VCF Operations for Networks row showing the 9.1.0.0200.25517220 to 9.1.1.0.25682214 path and Ready for upgrade status after prechecks passed." width="1062" height="153" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-7"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Networks row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/007-capture-007.webp" alt="VCF Operations for Networks row showing Upgrade in progress from 9.1.0.0200.25517220 to 9.1.1.0.25682214." width="894" height="86" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run Component Upgrade Prechecks.&lt;/li&gt;
&lt;li&gt;Prepare Component for Upgrade.&lt;/li&gt;
&lt;li&gt;Stage Upgrade Binaries.&lt;/li&gt;
&lt;li&gt;Perform Component Upgrade.&lt;/li&gt;
&lt;li&gt;Run the Inventory Sync Post Upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;strong&gt;Perform Component Upgrade&lt;/strong&gt; task is the part that takes the longest. The workflow in my lab started at &lt;strong&gt;9:02 PM&lt;/strong&gt; and completed at &lt;strong&gt;11:11 PM&lt;/strong&gt;, for a total task time of about &lt;strong&gt;2 hours and 9 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/009-capture-009.webp" alt="VCF Operations for Networks component upgrade in progress, showing the Perform Component Upgrade subtask running." width="1125" height="556" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;. The completed workflow also refreshes the component endpoint and checks whether the VCF Operations for Networks service account needs to be created.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/010-capture-010.webp" alt="Completed VCF Operations for Networks upgrade workflow showing the Inventory Sync Post Upgrade subtask completed." width="1131" height="696" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-5"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;VCF Operations for Networks&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25682214&lt;/strong&gt;. In my lab the deployment size is &lt;strong&gt;XL&lt;/strong&gt; and the summary shows &lt;strong&gt;Telemetry: Deactivated&lt;/strong&gt;. That value is a configuration state displayed by the component; review it against your organization&amp;rsquo;s telemetry policy rather than assuming the upgrade changed it.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/011-capture-011.webp" alt="VCF Operations for Networks component summary showing Running status, version 9.1.1.0.25682214, XL size, and Telemetry Deactivated." width="444" height="234" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports &lt;strong&gt;Running&lt;/strong&gt;, validate the parts of the service that matter in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirm that representative vSphere, NSX, and physical-network data sources are connected and collecting.&lt;/li&gt;
&lt;li&gt;Run a known search query and open a recent flow or path result.&lt;/li&gt;
&lt;li&gt;Check dashboards, alerts, notification targets, and any custom integrations.&lt;/li&gt;
&lt;li&gt;Verify that the collectors are healthy and that new flow data continues to arrive.&lt;/li&gt;
&lt;li&gt;Review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With an integrated Networks instance on 9.1.1 or later, VCF Operations uses the VIM Adapter path for certificate collection. This removes the older same-node placement dependency described in &lt;a href="https://knowledge.broadcom.com/external/article/454096/certificate-collection-fails-in-vcf-oper.html"&gt;KB 454096&lt;/a&gt;. Check the certificate status after the upgrade so that you know the new collection path is working.&lt;/p&gt;
&lt;p&gt;If Fleet Lifecycle still shows the upgrade as in progress after the appliance is already reporting the new version, do not immediately repeat the upgrade. &lt;a href="https://knowledge.broadcom.com/external/article/432678/vcf-operations-for-networks-upgrade-task.html"&gt;KB 432678&lt;/a&gt; describes the case where the appliance does not report back to Fleet Manager; after confirming the new version, the documented recovery is to reboot the VCF Fleet Manager appliance and allow the next inventory sync to clear the stale task state.&lt;/p&gt;
&lt;p&gt;Keep or expire the backup artifacts according to your retention policy. VCF Operations for Networks in my lab is now on &lt;strong&gt;9.1.1.0.25682214&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="12-real-time-metrics-store"&gt;12. Real-Time Metrics Store&lt;/h2&gt;
&lt;p&gt;This is a separate component from Real-Time Metrics. Patch and validate the store row independently.&lt;/p&gt;
&lt;h3 id="selecting-real-time-metrics-store"&gt;Selecting Real-Time Metrics Store&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;metric&lt;/strong&gt;, select &lt;strong&gt;Real-time metrics store&lt;/strong&gt;, and confirm that the intended instance is selected. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;. The upgrade path should read &lt;strong&gt;9.1.0.0200.25555874 -&amp;gt; 9.1.1.0.25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Real-Time Metrics Store instance-a ready to upgrade from 9.1.0.0200.25555874 to 9.1.1.0.25714471." width="1128" height="605" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Select the row and click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. The selected row shows the component and the same source and target builds before the precheck starts.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/002-capture-002.webp" alt="VCF Operations upgrade page with Real-Time Metrics Store selected and Run Prechecks (1) available." width="1131" height="655" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-7"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;Open the task details and wait for the &lt;strong&gt;Real-time metrics store Precheck Workflow&lt;/strong&gt; to finish. The workflow runs the component upgrade prechecks before the upgrade is allowed to start.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/003-capture-003.webp" alt="Real-Time Metrics Store precheck workflow showing the component upgrade prechecks running and then succeeding in the task messages." width="1128" height="558" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck completes, return to the component list and confirm that the row is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not click Upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/004-capture-004.webp" alt="Real-Time Metrics Store row showing Ready for upgrade after the precheck completed." width="1125" height="187" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-8"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Real-Time Metrics Store row. The row changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Real-Time Metrics Store upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics Store plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Real-Time Metrics Store prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics Store package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Real-Time Metrics Store for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Real-Time Metrics Store upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Real-Time Metrics Store upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/007-capture-007.webp" alt="Real-Time Metrics Store upgrade workflow in progress while the component upgrade is being performed." width="1123" height="744" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task in my lab started at &lt;strong&gt;2:45 PM&lt;/strong&gt; and completed at &lt;strong&gt;3:29 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;44 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/008-capture-008.webp" alt="Completed Real-Time Metrics Store upgrade workflow showing all seven subtasks completed." width="1131" height="783" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-6"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;Real-Time Metrics Store&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25714471&lt;/strong&gt;. In my lab the deployment size is &lt;strong&gt;Small&lt;/strong&gt;, it is managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;, and telemetry is &lt;strong&gt;Deactivated&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/009-capture-009.webp" alt="Real-Time Metrics Store component summary showing Running status and version 9.1.1.0.25714471." width="464" height="384" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="13-real-time-metrics"&gt;13. Real-Time Metrics&lt;/h2&gt;
&lt;p&gt;Patch this row independently from Real-Time Metrics Store and validate fresh data after the task completes.&lt;/p&gt;
&lt;h3 id="selecting-real-time-metrics"&gt;Selecting Real-Time Metrics&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the page shows that VCF Operations itself must be patched first, finish that operation and wait for it to complete before continuing.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;real&lt;/strong&gt; or &lt;strong&gt;metrics&lt;/strong&gt; and select &lt;strong&gt;Real-time metrics&lt;/strong&gt;. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0400.25544944 -&amp;gt; 9.1.1.0.25679622&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle already at 9.1.1, the 9.1.1 target, and Real-Time Metrics ready for upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Real-Time Metrics instance-a ready to upgrade from 9.1.0.0400.25544944 to 9.1.1.0.25679622." width="1666" height="660" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-8"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;With only Real-Time Metrics selected, run the prechecks for that component. Open the task details and wait for the &lt;strong&gt;Real-time metrics Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/003-capture-003.webp" alt="Completed Real-Time Metrics precheck workflow showing a Passed result and all listed checks passed." width="1129" height="513" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The precheck in my lab completed successfully. It checked the component package staging, vCenter, database upgrade, and single-component backup requirements.&lt;/p&gt;
&lt;p&gt;Do not start the upgrade until the precheck result is &lt;strong&gt;Passed&lt;/strong&gt;. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-9"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Return to the component list and click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Real-Time Metrics row. The row changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Real-Time Metrics upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Real-Time Metrics prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Real-Time Metrics for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Real-Time Metrics upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Real-Time Metrics upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first part of the workflow runs the component prechecks and reports the result in the task panel.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/009-capture-009.webp" alt="Real-Time Metrics upgrade workflow in progress, with the component prechecks running and the status messages visible." width="1080" height="626" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task in my lab started at &lt;strong&gt;1:25 PM&lt;/strong&gt; and completed at &lt;strong&gt;2:12 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;47 minutes&lt;/strong&gt;. That is the duration shown by my task and is not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/011-capture-011.webp" alt="Completed Real-Time Metrics upgrade workflow showing the component upgrade subtasks completed." width="1125" height="564" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-7"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Real-Time Metrics&lt;/strong&gt; component you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25679622&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt; and the component was managed by the VCF services runtime.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/012-capture-012.webp" alt="Real-Time Metrics component summary showing Running status and version 9.1.1.0.25679622." width="426" height="381" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports Running, validate the data path that matters in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open &lt;strong&gt;Operate -&amp;gt; Real-Time Metrics&lt;/strong&gt; and query a known resource.&lt;/li&gt;
&lt;li&gt;Confirm that fresh samples are arriving and that the expected time range is available.&lt;/li&gt;
&lt;li&gt;Check the dashboards, saved views, Top-N views, custom PromQL queries, and any integrations that use the Real-Time Metrics data.&lt;/li&gt;
&lt;li&gt;Confirm that related vCenter, ESX, vSAN, and NSX resources still show current data where your environment collects those metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="14-telemetry"&gt;14. Telemetry&lt;/h2&gt;
&lt;p&gt;Telemetry is listed as N/A in Broadcom’s component backup-method table; keep the supporting VCF Operations and management-service recovery points current.&lt;/p&gt;
&lt;h3 id="selecting-telemetry"&gt;Selecting Telemetry&lt;/h3&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the release is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for that task to finish before checking again.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;telemetry&lt;/strong&gt; and select the Telemetry row for the VCF instance you want to patch. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0.25181946 -&amp;gt; 9.1.1.0.25671600&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle on 9.1.1, the 9.1.1 target, and Telemetry ready for upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934 and Telemetry instance-a ready to upgrade from 9.1.0.0.25181946 to 9.1.1.0.25671600." width="1667" height="694" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="running-the-prechecks-9"&gt;Running the Prechecks&lt;/h3&gt;
&lt;p&gt;With only Telemetry selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open the task details and wait for the &lt;strong&gt;Telemetry Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/003-capture-003.webp" alt="Telemetry precheck workflow in progress, with component stage prechecks running." width="1125" height="617" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck completes, review &lt;strong&gt;Prechecks&lt;/strong&gt; and confirm that the result is &lt;strong&gt;Passed&lt;/strong&gt;. The checks in my run covered package staging, the vCenter connection, the database upgrade, and the lifecycle backup precheck shown by the UI. Telemetry itself is listed as N/A for backup in the current backup-method table.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/004-capture-004.webp" alt="Completed Telemetry Precheck Workflow showing a Passed result and all listed checks passed." width="1128" height="605" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Telemetry is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/005-capture-005.webp" alt="Telemetry selected with the 9.1.1.0.25671600 upgrade path and Ready for upgrade status after the precheck completed." width="1040" height="159" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="starting-the-upgrade-10"&gt;Starting the Upgrade&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Telemetry row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/006-capture-006.webp" alt="Telemetry row showing Upgrade in progress from 9.1.0.0.25181946 to 9.1.1.0.25671600." width="891" height="90" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task details can be used to watch the plugin staging and component stage prechecks:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/007-capture-007.webp" alt="Telemetry upgrade workflow in progress while the plugin is staged in the VCF services runtime." width="1126" height="639" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The overall workflow then moves through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Telemetry upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Run Telemetry prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Telemetry package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Telemetry for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Telemetry upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Telemetry upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The task in my lab started at &lt;strong&gt;5:15 PM&lt;/strong&gt; and completed at &lt;strong&gt;5:59 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;44 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/008-capture-008.webp" alt="Completed Telemetry upgrade workflow showing all subtasks completed." width="1121" height="615" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="verifying-the-new-version-8"&gt;Verifying the New Version&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Telemetry&lt;/strong&gt; component for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25671600&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt;, it was managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;, and the summary showed &lt;strong&gt;Telemetry: Deactivated&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/009-capture-009.webp" alt="Telemetry component summary showing Running status, version 9.1.1.0.25671600, Small size, and VCF services runtime management." width="377" height="282" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="post-upgrade-validation"&gt;Post-Upgrade Validation&lt;/h2&gt;
&lt;p&gt;Once all selected components report 9.1.1:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; for a consistent inventory and no component still showing an old target.&lt;/li&gt;
&lt;li&gt;Review &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; Tasks&lt;/strong&gt; for failed, partial, or stale tasks. If a component is already on the target but remains stuck as &lt;strong&gt;Ready for upgrade&lt;/strong&gt;, do not edit the lifecycle database; open Broadcom Support and reference &lt;a href="https://knowledge.broadcom.com/external/article/453246/persistent-vcf-upgrade-tasks-with-400-ba.html"&gt;KB 453246&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Test SSO through Identity Broker, VCF Operations logins and dashboards, Log Management ingestion, Operations for Networks collection, Automation portals and a representative deployment, Salt health, Telemetry behavior, and the services-runtime health dashboard.&lt;/li&gt;
&lt;li&gt;If VCF Operations was upgraded, check the precheck result for affected Management Packs. &lt;a href="https://knowledge.broadcom.com/external/article/454432/management-packs-not-collecting-data-aft.html"&gt;KB 454432&lt;/a&gt; lists packs that need a 9.1.1-compatible update, and &lt;a href="https://knowledge.broadcom.com/external/article/454434/management-packs-built-with-mp-builder-d.html"&gt;KB 454434&lt;/a&gt; covers custom packs built with an older MP Builder.&lt;/li&gt;
&lt;li&gt;Confirm that a new management-services backup completes and that the backup artifacts are retained according to your policy.&lt;/li&gt;
&lt;li&gt;If the VCF Operations &lt;strong&gt;Build -&amp;gt; Lifecycle&lt;/strong&gt; page is blank or spins after an appliance update, test an incognito window or clear the browser cache. Broadcom tracks that behavior in &lt;a href="https://knowledge.broadcom.com/external/article/441205/"&gt;KB 441205&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And with that, we have one repeatable plan for the VCF Management 9.1.1 maintenance window. The UI still gives us a single place to see every component, every precheck, and every task, while the execution stays within the current Broadcom guidance for 9.1.1.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-14:
The release-note dependency list, VCF 9.1.1 BOM links, required-binaries
KB, lifecycle procedure, and the concurrency warning in KB 453246 were checked
against current Broadcom/VMware documentation. The build table is lab evidence
copied from the component-specific 9.1.1 posts; it is not a substitute for the
BOM or interoperability matrix. This article intentionally documents a
sequential all-in-one runbook because concurrent Upgrade (ALL) runs can leave
stale lifecycle records.
--&gt;</content:encoded></item><item><title>Upgrading VCF Automation to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-automation-to-9-1-1-step-by-step/</link><pubDate>Sun, 13 Sep 2026 09:30:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-automation-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued upgrading the management components in my lab. In this post I will go over upgrading &lt;strong&gt;VCF Automation&lt;/strong&gt; from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release focused mostly on supportability improvements. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, patch order, and known issues. The component release notes for &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfautomation-9-1-1-0-release-notes.html"&gt;VCF Automation 9.1.1&lt;/a&gt; list build &lt;strong&gt;25714559&lt;/strong&gt;.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued upgrading the management components in my lab. In this post I will go over upgrading &lt;strong&gt;VCF Automation&lt;/strong&gt; from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release focused mostly on supportability improvements. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, patch order, and known issues. The component release notes for &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfautomation-9-1-1-0-release-notes.html"&gt;VCF Automation 9.1.1&lt;/a&gt; list build &lt;strong&gt;25714559&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="a-few-things-to-know-about-911"&gt;A Few Things to Know About 9.1.1&lt;/h2&gt;
&lt;p&gt;VCF Automation 9.1.1 adds support for VLAN-backed VPCs consumed through VCF Automation. It also changes the default behavior for native public-cloud management: support for AWS, Azure, and GCP resources is deprecated and disabled by default in VM Apps organizations. If you use those capabilities, review Broadcom &lt;a href="https://knowledge.broadcom.com/external/article/448993"&gt;KB 448993&lt;/a&gt; before upgrading so you understand the effect on existing deployments and how to restore the functionality.&lt;/p&gt;
&lt;p&gt;The release also fixes several problems that are relevant to an upgrade window, including long waits with a generic timeout during the backup stage, mixed-case FQDN failures, services not recovering after a cluster power-on, and log buffers filling the logging disk. BYO Velero package installation is deprecated as well; the release notes recommend using the package deployed by VKS.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions shown in the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Automation&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25556825&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714559&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build matches the VCF Automation entry in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vmware-cloud-foundation-9-1-1-0-bill-of-material.html"&gt;VCF 9.1.1 Bill of Materials&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1 first&lt;/strong&gt;, before patching any other VCF component. After that, continue to follow the component dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;9.1.1 release notes&lt;/a&gt;. In my lab, Fleet Lifecycle was already on 9.1.1.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that a supported backup target is configured and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Use the target required by the component backup method. Keep the backup encryption passphrase available for a restore. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF backup and restore documentation&lt;/a&gt; describes the supported methods.&lt;/li&gt;
&lt;li&gt;Take an on-demand backup of the VCF Automation component. Go to &lt;strong&gt;Backup &amp;amp; Restore -&amp;gt; Backup -&amp;gt; Backup Now&lt;/strong&gt;, select the VCF instance and &lt;strong&gt;VCF Automation&lt;/strong&gt;, start the backup, and verify that it completes successfully.&lt;/li&gt;
&lt;li&gt;Confirm that the 9.1.1 binaries are available in the configured software depot. For an offline or disconnected environment, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Check the VCF services runtime and VCF Automation health before starting. Make sure DNS resolution is stable and that no other lifecycle operation is running. The individual-component procedure allows only one upgrade or patch operation at a time.&lt;/li&gt;
&lt;li&gt;Remove or remediate custom profiles before starting. Broadcom documents that custom profiles from VCF Automation &lt;strong&gt;9.0.1, 9.0.2.x, or 9.1.0.x&lt;/strong&gt; can cause the upgrade to fail; follow &lt;a href="https://knowledge.broadcom.com/external/article/451147"&gt;KB 451147&lt;/a&gt; for the cleanup procedure.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window. VCF Automation services can restart during the workflow, so test the provider and tenant portals, integrations, and representative deployments afterward.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="selecting-vcf-automation"&gt;Selecting VCF Automation&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The target version in my lab was already set to &lt;code&gt;9.1.1.*&lt;/code&gt;. If the target still shows &lt;code&gt;9.1.0.*&lt;/code&gt;, click &lt;strong&gt;Select Version&lt;/strong&gt;, choose &lt;code&gt;9.1.1.*&lt;/code&gt;, and set the new target. If 9.1.1 is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; and wait for the lifecycle metadata task to finish.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Management Components&lt;/strong&gt;, filter the list for &lt;strong&gt;automation&lt;/strong&gt; and select the &lt;strong&gt;VCF Automation&lt;/strong&gt; row for the VCF instance you want to upgrade. In my lab this was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0200.25556825 -&amp;gt; 9.1.1.0.25714559&lt;/strong&gt;. The screenshot below shows the target version and the VCF Automation row ready for the precheck workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page showing VCF Automation instance-a on the 9.1.1 target with the 9.1.1.0.25714559 upgrade path." width="1664" height="705" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;Make sure only the intended VCF Automation component is selected. The buttons should show &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and &lt;strong&gt;Upgrade (1)&lt;/strong&gt;. Click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and open &lt;strong&gt;Precheck details&lt;/strong&gt; to follow the task.&lt;/p&gt;
&lt;p&gt;The precheck workflow validates the package, the vCenter connection, the VCF services platform, and the component backup requirements. Review every result and remediate any failure before starting the upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/002-capture-002.webp" alt="Completed VCF Automation Upgrade Prechecks workflow showing an overall Passed result." width="1130" height="430" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck is complete, return to the upgrade list. The row should show &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. In my lab the selected row showed the expected source and target builds and the precheck link remained available for review.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/003-capture-003.webp" alt="VCF Automation selected with the 9.1.1 upgrade path and Ready for upgrade status after the precheck completed." width="1130" height="188" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the VCF Automation row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/004-capture-004.webp" alt="VCF Automation showing Upgrade in progress from 9.1.0.0200.25556825 to 9.1.1.0.25714559." width="850" height="91" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow stages the VCF Automation binaries in the VCF services runtime, runs the component-stage prechecks, and continues through the package staging and upgrade tasks. The details view in my run showed &lt;strong&gt;Stage VCF Automation precheck binaries&lt;/strong&gt; in progress, followed by the component checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/005-capture-005.webp" alt="VCF Automation upgrade workflow in progress while the precheck binaries are staged." width="1122" height="513" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the task to finish. If a subtask fails, open its details, resolve the reported issue, and retry it before moving on. Do not start another management-component operation while this workflow is running.&lt;/p&gt;
&lt;h2 id="verifying-the-upgrade"&gt;Verifying the Upgrade&lt;/h2&gt;
&lt;p&gt;Once the task reports &lt;strong&gt;Completed&lt;/strong&gt;, go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;VCF Automation&lt;/strong&gt; for the upgraded instance.&lt;/p&gt;
&lt;p&gt;In the component &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and that the version is &lt;strong&gt;9.1.1.0.25714559&lt;/strong&gt;. The final capture from my lab shows the upgraded VCF Automation instance running at the expected version.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/006-capture-006.webp" alt="Completed VCF Automation upgrade task in VCF Operations." width="820" height="152" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-automation-9-1-1-upgrade/007-capture-007.webp" alt="VCF Automation Summary showing Running status, version 9.1.1.0.25714559, and Small size." width="317" height="205" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports &lt;strong&gt;Running&lt;/strong&gt;, test the provider and tenant portals, logins, cloud accounts, catalog requests, representative deployments, and any integrations that are important in your environment. Also check the VCF services runtime health and confirm that fresh lifecycle tasks and backups work as expected.&lt;/p&gt;
&lt;p&gt;Once validation is complete, remove any temporary snapshots you created or expire backup artifacts according to your retention policy. I also recommend clearing the browser cache before using the updated VCF Automation and VCF Operations interfaces.&lt;/p&gt;
&lt;p&gt;VCF Automation in my lab is now on &lt;strong&gt;9.1.1.0.25714559&lt;/strong&gt;. If this is part of a complete VCF 9.1.1 maintenance run, continue with the remaining components while following the dependency boundaries in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-13:
Broadcom's VCF 9.1.1 release notes, VCF Automation 9.1.1 component
release notes, and the individual-component lifecycle procedure were reviewed
directly on September 13, 2026. All seven supplied PNGs have unique SHA-256
hashes and are used as lossless WebP conversions without visual edits. The
captures establish the source and target builds, passed precheck, upgrade
progress, completed task, and final Running status. They do not establish
backup success, exact downtime, or the completion of every individual subtask,
so those are written as prerequisites or validation guidance rather than lab
evidence. The walkthrough uses one component operation at a time, consistent
with the generic lifecycle procedure.
--&gt;</content:encoded></item><item><title>Upgrading VCF Operations for Networks to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-operations-for-networks-to-9-1-1-step-by-step/</link><pubDate>Fri, 11 Sep 2026 09:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-operations-for-networks-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. In this post I will go over upgrading &lt;strong&gt;VCF Operations for Networks&lt;/strong&gt; from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. In my lab, the target VCF Operations for Networks build was &lt;strong&gt;9.1.1.0.25682214&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;VCF Operations for Networks was formerly known as Aria Operations for Networks and vRealize Network Insight. In VCF 9.1 it is a separate appliance managed from the VCF Operations Fleet Lifecycle workflow. This walkthrough covers one 9.1.0.x maintenance upgrade. If you are still on Aria Operations for Networks 6.x, I covered &lt;a href="https://cosmin.us/upgrading-aria-operations-for-networks-to-6-14-via-upgrade-bundle/"&gt;upgrading to 6.14 via an upgrade bundle&lt;/a&gt; and &lt;a href="https://cosmin.us/upgrading-aria-operations-for-networks-to-6-14-via-aria-suite-lifecycle/"&gt;upgrading to 6.14 via Aria Suite Lifecycle&lt;/a&gt;. Moving from 6.14 into VCF 9.x is a separate migration path, so follow the applicable VCF upgrade procedure first.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. In this post I will go over upgrading &lt;strong&gt;VCF Operations for Networks&lt;/strong&gt; from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. In my lab, the target VCF Operations for Networks build was &lt;strong&gt;9.1.1.0.25682214&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;VCF Operations for Networks was formerly known as Aria Operations for Networks and vRealize Network Insight. In VCF 9.1 it is a separate appliance managed from the VCF Operations Fleet Lifecycle workflow. This walkthrough covers one 9.1.0.x maintenance upgrade. If you are still on Aria Operations for Networks 6.x, I covered &lt;a href="https://cosmin.us/upgrading-aria-operations-for-networks-to-6-14-via-upgrade-bundle/"&gt;upgrading to 6.14 via an upgrade bundle&lt;/a&gt; and &lt;a href="https://cosmin.us/upgrading-aria-operations-for-networks-to-6-14-via-aria-suite-lifecycle/"&gt;upgrading to 6.14 via Aria Suite Lifecycle&lt;/a&gt;. Moving from 6.14 into VCF 9.x is a separate migration path, so follow the applicable VCF upgrade procedure first.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions reported by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Operations for Networks&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25517220&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25682214&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. The screenshot in this post shows Fleet Lifecycle already on &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. After that prerequisite is complete, patch the remaining components according to the dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The page can also show a warning that VCF Operations must be patched independently from the other management components. If that warning is present, finish the VCF Operations patch and wait for it to complete before starting this upgrade.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that a supported backup target is configured and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Use the target required by the component backup method. Keep the backup encryption passphrase available for a restore. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF backup and restore documentation&lt;/a&gt; describes the supported configuration.&lt;/li&gt;
&lt;li&gt;Take or verify the supported &lt;strong&gt;image-based backup&lt;/strong&gt; of the VCF Operations for Networks appliance before patching. Do not treat a backup that is still running as a completed recovery point.&lt;/li&gt;
&lt;li&gt;Confirm that lifecycle metadata is current and that the 9.1.1 binaries are available in the configured software depot. For a disconnected environment, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure no other management-component upgrade or patch operation is running. I run one component at a time so that a failure is easier to isolate.&lt;/li&gt;
&lt;li&gt;Record the network data sources, integrations, dashboards, and alerts you need to test afterward, and plan a maintenance window.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The appliance in my lab is &lt;strong&gt;XL&lt;/strong&gt;. Before running the precheck, confirm that the appliance has enough disk capacity for its brick size. If an XL deployment fails the system precheck with &lt;code&gt;system.health.status.check&lt;/code&gt;, Broadcom&amp;rsquo;s &lt;a href="https://knowledge.broadcom.com/external/article/454602/the-vcf-operations-for-networks-upgrade.html"&gt;KB 454602&lt;/a&gt; documents adding a 1 TB disk to the platform VM, waiting for the appliance to detect it, and then running the precheck again.&lt;/p&gt;
&lt;p&gt;One more 9.1.1 sequencing detail is easy to miss: do not install Log Management and VCF Operations for Networks in parallel. The release notes document a condition where the platform can be disrupted and the Networks task can remain stuck for more than three hours. Run those component operations sequentially.&lt;/p&gt;
&lt;h2 id="selecting-vcf-operations-for-networks"&gt;Selecting VCF Operations for Networks&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the release is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for that task to finish before checking again.&lt;/p&gt;
&lt;p&gt;Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt;, resolve any missing binary, and filter the component list for &lt;strong&gt;networks&lt;/strong&gt;. Select the &lt;strong&gt;VCF Operations for networks&lt;/strong&gt; row for the instance you want to patch. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0200.25517220 -&amp;gt; 9.1.1.0.25682214&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle on 9.1.1, the 9.1.1 target, the selected Networks instance, and the &lt;strong&gt;Ready for upgrade&lt;/strong&gt; state.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/002-capture-002.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934, target VCF version 9.1.1.*, and VCF Operations for Networks instance-a ready for upgrade." width="1669" height="694" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;With only VCF Operations for Networks selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the workflow to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/004-capture-004.webp" alt="VCF Operations for Networks upgrade precheck workflow in progress, with the Stage Precheck Binaries subtask running." width="1127" height="501" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The precheck in my lab started at &lt;strong&gt;8:30 PM&lt;/strong&gt; and completed at &lt;strong&gt;8:34 PM&lt;/strong&gt;. The result was &lt;strong&gt;Passed&lt;/strong&gt;. Platform, collector, system, and appliance prechecks all passed; the appliance checks contained nine individual checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/005-capture-005.webp" alt="Completed VCF Operations for Networks upgrade prechecks showing an overall Passed result and platform, collector, system, and appliance checks passed." width="1128" height="442" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that the Networks row is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/006-capture-006.webp" alt="VCF Operations for Networks row showing the 9.1.0.0200.25517220 to 9.1.1.0.25682214 path and Ready for upgrade status after prechecks passed." width="1062" height="153" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Networks row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/007-capture-007.webp" alt="VCF Operations for Networks row showing Upgrade in progress from 9.1.0.0200.25517220 to 9.1.1.0.25682214." width="894" height="86" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Run Component Upgrade Prechecks.&lt;/li&gt;
&lt;li&gt;Prepare Component for Upgrade.&lt;/li&gt;
&lt;li&gt;Stage Upgrade Binaries.&lt;/li&gt;
&lt;li&gt;Perform Component Upgrade.&lt;/li&gt;
&lt;li&gt;Run the Inventory Sync Post Upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;strong&gt;Perform Component Upgrade&lt;/strong&gt; task is the part that takes the longest. The workflow in my lab started at &lt;strong&gt;9:02 PM&lt;/strong&gt; and completed at &lt;strong&gt;11:11 PM&lt;/strong&gt;, for a total task time of about &lt;strong&gt;2 hours and 9 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/009-capture-009.webp" alt="VCF Operations for Networks component upgrade in progress, showing the Perform Component Upgrade subtask running." width="1125" height="556" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;. The completed workflow also refreshes the component endpoint and checks whether the VCF Operations for Networks service account needs to be created.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/010-capture-010.webp" alt="Completed VCF Operations for Networks upgrade workflow showing the Inventory Sync Post Upgrade subtask completed." width="1131" height="696" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;VCF Operations for Networks&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25682214&lt;/strong&gt;. In my lab the deployment size is &lt;strong&gt;XL&lt;/strong&gt; and the summary shows &lt;strong&gt;Telemetry: Deactivated&lt;/strong&gt;. That value is a configuration state displayed by the component; review it against your organization&amp;rsquo;s telemetry policy rather than assuming the upgrade changed it.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-for-networks-9-1-1-upgrade/011-capture-011.webp" alt="VCF Operations for Networks component summary showing Running status, version 9.1.1.0.25682214, XL size, and Telemetry Deactivated." width="444" height="234" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports &lt;strong&gt;Running&lt;/strong&gt;, validate the parts of the service that matter in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirm that representative vSphere, NSX, and physical-network data sources are connected and collecting.&lt;/li&gt;
&lt;li&gt;Run a known search query and open a recent flow or path result.&lt;/li&gt;
&lt;li&gt;Check dashboards, alerts, notification targets, and any custom integrations.&lt;/li&gt;
&lt;li&gt;Verify that the collectors are healthy and that new flow data continues to arrive.&lt;/li&gt;
&lt;li&gt;Review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With an integrated Networks instance on 9.1.1 or later, VCF Operations uses the VIM Adapter path for certificate collection. This removes the older same-node placement dependency described in &lt;a href="https://knowledge.broadcom.com/external/article/454096/certificate-collection-fails-in-vcf-oper.html"&gt;KB 454096&lt;/a&gt;. Check the certificate status after the upgrade so that you know the new collection path is working.&lt;/p&gt;
&lt;p&gt;If Fleet Lifecycle still shows the upgrade as in progress after the appliance is already reporting the new version, do not immediately repeat the upgrade. &lt;a href="https://knowledge.broadcom.com/external/article/432678/vcf-operations-for-networks-upgrade-task.html"&gt;KB 432678&lt;/a&gt; describes the case where the appliance does not report back to Fleet Manager; after confirming the new version, the documented recovery is to reboot the VCF Fleet Manager appliance and allow the next inventory sync to clear the stale task state.&lt;/p&gt;
&lt;p&gt;Keep or expire the backup artifacts according to your retention policy. VCF Operations for Networks in my lab is now on &lt;strong&gt;9.1.1.0.25682214&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-11:
The supplied captures were reviewed for duplicate or lower-value views. Capture 002
is used for the initial selection because it contains the full VCF Management page;
004 and 005 establish precheck progress and the passed result; 006 and 007 establish
the ready and in-progress states; 009 and 010 establish upgrade progress and completion;
011 establishes the final Running version. Captures 001, 003, and 008 are omitted as
cropped or duplicate state-transition views. The images are lossless WebP conversions
with no visual edits. The screenshots establish the source and target builds, task
states, and observed duration; they do not establish backup completion or service
downtime, so those are written as prerequisites and validation guidance. The upgrade
sequence and caveats were checked against the VCF 9.1.1 release notes and current
Broadcom KBs on September 11, 2026.
--&gt;</content:encoded></item><item><title>Upgrading VCF Salt RaaS to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-salt-raas-to-9-1-1-step-by-step/</link><pubDate>Thu, 10 Sep 2026 23:30:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-salt-raas-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to continue patching the management services in my lab. This post is a follow-up to my older &lt;a href="https://cosmin.us/upgrading-ssc-saltstack-config-to-8-12-1-using-vrslcm/"&gt;SaltStack Config 8.12.1 guide&lt;/a&gt; and covers upgrading &lt;strong&gt;VCF Salt RaaS&lt;/strong&gt; from 9.1.0.0100 to 9.1.1 through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF Salt is the current product name for the Salt services that were previously presented as SaltStack Config or VMware Aria Automation Config. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; and the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; are the references I used for the target build and upgrade dependencies.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to continue patching the management services in my lab. This post is a follow-up to my older &lt;a href="https://cosmin.us/upgrading-ssc-saltstack-config-to-8-12-1-using-vrslcm/"&gt;SaltStack Config 8.12.1 guide&lt;/a&gt; and covers upgrading &lt;strong&gt;VCF Salt RaaS&lt;/strong&gt; from 9.1.0.0100 to 9.1.1 through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF Salt is the current product name for the Salt services that were previously presented as SaltStack Config or VMware Aria Automation Config. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; and the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; are the references I used for the target build and upgrade dependencies.&lt;/p&gt;
&lt;p&gt;This walkthrough covers a 9.1.0.x maintenance upgrade of one Salt RaaS instance. If you are coming from an older VCF or Aria release, follow the applicable migration or major-version procedure before using these steps.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions shown by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Salt RaaS&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25434834&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679895&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. Broadcom also requires the VCF services runtime that hosts Salt RaaS to be on 9.1.1 before upgrading the service. In my lab, Fleet Lifecycle and the services runtime were already updated before I started this operation.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that a supported backup target is configured and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Use the target required by the component backup method. Keep the backup encryption passphrase available for a restore. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF management backup and restore documentation&lt;/a&gt; describes the supported workflow.&lt;/li&gt;
&lt;li&gt;Take an on-demand component backup and confirm that it completed successfully before patching. A backup configuration by itself does not prove that a recent restore point exists.&lt;/li&gt;
&lt;li&gt;Check the VCF services runtime and Salt health, including CPU, memory, and disk utilization. Salt services can restart during maintenance, so plan a maintenance window.&lt;/li&gt;
&lt;li&gt;Confirm that lifecycle metadata is current and that the 9.1.1 Salt RaaS binary is available in the assigned software depot. For a disconnected environment, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;. Broadcom&amp;rsquo;s &lt;a href="https://knowledge.broadcom.com/external/article/425089"&gt;required-binaries guidance&lt;/a&gt; lists Salt RaaS and Salt Master among the binaries needed for the primary VCF instance.&lt;/li&gt;
&lt;li&gt;Make sure no other management-component operation is running. Follow the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;individual VCF management component upgrade procedure&lt;/a&gt; and resolve any missing binary before proceeding.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The VCF Operations page can also show a warning that VCF Operations must be patched independently. If that warning is present, finish that patch and wait for it to succeed before starting Salt RaaS.&lt;/p&gt;
&lt;h2 id="selecting-salt-raas"&gt;Selecting Salt RaaS&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;*. If the release is not listed, click &lt;strong&gt;Sync&lt;/strong&gt;, wait for the lifecycle metadata task to complete, and check again. Setting the target only changes the available target; it does not start an upgrade.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;salt&lt;/strong&gt; and select the &lt;strong&gt;Salt RaaS&lt;/strong&gt; row for the VCF instance you want to patch. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;. Make sure only the intended component is selected, and expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; to resolve any missing binary.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0100.25434834 -&amp;gt; 9.1.1.0.25679895&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management upgrade page showing Salt RaaS instance-a selected with the upgrade path from 9.1.0.0100.25434834 to 9.1.1.0.25679895 and prechecks in progress." width="1129" height="197" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;With only Salt RaaS selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the &lt;strong&gt;Salt RaaS Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;The first part of the workflow stages the precheck binaries. The task view reports the staging messages and the component stage precheck status while it runs.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/002-capture-002.webp" alt="Salt RaaS precheck workflow showing the Stage Salt RaaS precheck binaries subtask in progress." width="1131" height="618" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow then runs the Salt RaaS prechecks. Do not start the upgrade while this task is still running.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/004-capture-004.webp" alt="Salt RaaS precheck workflow showing the Run Salt RaaS prechecks subtask in progress." width="1366" height="590" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the task completes, review the &lt;strong&gt;Prechecks&lt;/strong&gt; tab and confirm that the overall result is &lt;strong&gt;Passed&lt;/strong&gt;. In my run, the list included component package staging, package staging, Virtual Center, VMSP platform version, database upgrade, and single-component backup checks, all marked &lt;strong&gt;Passed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/005-capture-005.webp" alt="Completed Salt RaaS Precheck Workflow showing a Passed result and all listed checks passed." width="1128" height="535" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Salt RaaS is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/007-capture-007.webp" alt="Salt RaaS instance-a selected with the 9.1.1.0.25679895 upgrade path and Ready for upgrade status." width="1123" height="148" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Salt RaaS row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/008-capture-008.webp" alt="Salt RaaS row showing Upgrade in progress from 9.1.0.0100.25434834 to 9.1.1.0.25679895." width="895" height="147" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Salt RaaS upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Salt RaaS plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Salt RaaS prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Salt RaaS package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Salt RaaS for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Salt RaaS upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Salt RaaS upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;While the upgrade prechecks are running, the task details show the component upgrade precheck messages. Wait for the workflow to move through package staging, preparation, and the upgrade itself.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/009-capture-009.webp" alt="Salt RaaS upgrade workflow showing the component upgrade prechecks running and the successful component-upgrade-precheck message." width="1122" height="548" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the final inventory sync completes, confirm that the overall task status is &lt;strong&gt;Completed&lt;/strong&gt;. The supplied captures contain separate precheck and upgrade task timestamps from the lab, so I am not treating them as a single downtime measurement.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/011-capture-011.webp" alt="Completed Salt RaaS upgrade workflow showing the final inventory sync completed." width="1121" height="694" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;Salt RaaS&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt;, the version is &lt;strong&gt;9.1.1.0.25679895&lt;/strong&gt;, and the component is managed by the expected &lt;strong&gt;VCF services runtime&lt;/strong&gt;. In my lab the deployment size is &lt;strong&gt;Small&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-raas-9-1-1-upgrade/012-capture-012.webp" alt="Salt RaaS component summary showing Running status, version 9.1.1.0.25679895, Small size, and management by the VCF services runtime." width="445" height="346" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Before moving on, review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks, check the VCF services runtime and Salt health, and confirm that the management-services backup still works. Also verify the Salt Master separately if it is installed; the RaaS upgrade does not prove that every Salt component is on 9.1.1.&lt;/p&gt;
&lt;p&gt;VCF Salt RaaS in my lab is now on &lt;strong&gt;9.1.1.0.25679895&lt;/strong&gt;. We can continue with the remaining management components by following the dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-10:
The supplied manifest contains twelve PNG captures. All twelve have unique
SHA-256 hashes. Captures 003 and 006 are cropped state-transition views; 003
duplicates the upgrade-in-progress state, and 006 includes an "Upgrade failed"
link even though the later retry is ready. Capture 010 is another partial
precheck view with incomplete rows. Those three captures are omitted so the
article does not present an intermediate or failed view as the successful path.
The nine included images are lossless WebP conversions without visual edits.
The screenshots establish the source and target builds, precheck result,
workflow stages, completed inventory sync, and final Running version. They do
not establish backup completion, full post-upgrade health, or service downtime;
those are written as prerequisites and validation guidance.
--&gt;</content:encoded></item><item><title>Upgrading VCF Salt Master to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-salt-master-to-9-1-1-step-by-step/</link><pubDate>Wed, 09 Sep 2026 12:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-salt-master-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. In this post I will go over upgrading the &lt;strong&gt;VCF Salt Master&lt;/strong&gt; from 9.1.0.0400 to 9.1.1 through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope and patch dependencies. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list &lt;strong&gt;Salt Master&lt;/strong&gt; and &lt;strong&gt;Salt RaaS&lt;/strong&gt; at target build &lt;strong&gt;25679895&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This walkthrough covers a 9.1.0.x to 9.1.1 maintenance upgrade of one Salt Master instance. If you are starting from an older VCF or VMware Aria release, follow the applicable VCF upgrade or migration procedure first.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. In this post I will go over upgrading the &lt;strong&gt;VCF Salt Master&lt;/strong&gt; from 9.1.0.0400 to 9.1.1 through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope and patch dependencies. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list &lt;strong&gt;Salt Master&lt;/strong&gt; and &lt;strong&gt;Salt RaaS&lt;/strong&gt; at target build &lt;strong&gt;25679895&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This walkthrough covers a 9.1.0.x to 9.1.1 maintenance upgrade of one Salt Master instance. If you are starting from an older VCF or VMware Aria release, follow the applicable VCF upgrade or migration procedure first.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions reported by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Salt Master&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544946&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679895&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, patch &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. Before patching Salt RaaS, Broadcom requires the respective VCF management services runtime that hosts it to be on 9.1.1. In my lab, Fleet Lifecycle and the services runtime were already upgraded before I started this Salt Master operation.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that the VCF management-services backup configuration is present and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Take an on-demand component backup and verify that it completed successfully. Keep the backup encryption passphrase available for a restore. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF management backup and restore documentation&lt;/a&gt; describes the supported workflow.&lt;/li&gt;
&lt;li&gt;Check the VCF services runtime and hosted-service health, including CPU, memory, and disk utilization. Salt Master is hosted by that runtime.&lt;/li&gt;
&lt;li&gt;Confirm that lifecycle metadata is current and that the 9.1.1 binaries are available in the assigned software depot. For a disconnected environment, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure no other management-component operation is running. The software depot must also be usable because patching it makes the binaries unavailable to other component operations until it finishes.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window. Salt services can restart while the workflow is running.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The VCF Operations page may also display a warning that VCF Operations must be patched independently. If that warning is present, wait for that patch to complete before starting Salt Master.&lt;/p&gt;
&lt;h2 id="selecting-salt-master"&gt;Selecting Salt Master&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;*. If the release is not listed, click &lt;strong&gt;Sync&lt;/strong&gt;, wait for the lifecycle metadata task to complete, and check again.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;master&lt;/strong&gt; and select the &lt;strong&gt;Salt master&lt;/strong&gt; row for the VCF instance you want to patch. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Make sure only the intended component is selected. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0400.25544946 -&amp;gt; 9.1.1.0.25679895&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934, target VCF version 9.1.1.*, and Salt master instance-a ready to upgrade from 9.1.0.0400.25544946 to 9.1.1.0.25679895." width="1667" height="699" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;With only Salt Master selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the &lt;strong&gt;Salt master Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;When the precheck completes, review the &lt;strong&gt;Prechecks&lt;/strong&gt; tab and confirm that the overall result is &lt;strong&gt;Passed&lt;/strong&gt;. In my run, the checks included component package staging, package staging, the vCenter connection, the database upgrade, and the single-component backup requirement.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/002-capture-002.webp" alt="Completed Salt master Precheck Workflow showing a Passed result and all six listed checks passed." width="1125" height="539" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Salt Master is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/003-capture-003.webp" alt="Salt master selected with the 9.1.1.0.25679895 upgrade path and Ready for upgrade status after the precheck completed." width="1037" height="150" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Salt Master row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow in my lab moved through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Salt master upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Salt master plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run Salt master prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Salt master package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Salt master for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Salt master upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Salt master upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/004-capture-004.webp" alt="Salt master row showing Upgrade in progress from 9.1.0.0400.25544946 to 9.1.1.0.25679895." width="892" height="85" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/005-capture-005.webp" alt="Salt master upgrade workflow in progress while the Salt master plugin is staged in the VCF services runtime." width="1127" height="490" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow then advances through the Salt master prechecks, package staging, and preparation steps.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/006-capture-006.webp" alt="Salt master upgrade workflow showing completed staging and prechecks while preparation is in progress." width="1122" height="433" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task details show the package staging, prechecks, preparation, and upgrade subtasks. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/007-capture-007.webp" alt="Salt master upgrade workflow showing all seven subtasks completed, including the final inventory sync." width="1125" height="475" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In my lab the workflow started at &lt;strong&gt;6:51 AM&lt;/strong&gt; and completed at &lt;strong&gt;7:42 AM&lt;/strong&gt; on September 9, for a total workflow time of about &lt;strong&gt;51 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment.&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;Salt Master&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25679895&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt; and it was managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-salt-master-9-1-1-upgrade/008-capture-008.webp" alt="Salt Master component summary showing Running status, version 9.1.1.0.25679895, Small size, and VCF services runtime management." width="463" height="352" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Before moving on, review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks, check the VCF services runtime and Salt health, and confirm that the management-services backup still works. If Salt RaaS is also present, verify its version and patch it only after its hosting runtime meets the 9.1.1 dependency.&lt;/p&gt;
&lt;p&gt;The Salt Master in my lab is now on &lt;strong&gt;9.1.1.0.25679895&lt;/strong&gt;. We can continue with the remaining management components by following the dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-09:
Broadcom's VCF 9.1.1 release notes and VCF Operations 9.1.1 component
release notes were reviewed directly. The supplied PNGs have unique SHA-256
hashes. Captures 001 through 008 are all used: they establish the source/target builds,
passed precheck, ready state, upgrade progress, completed workflow, and final
Running version. The views are sequential rather than duplicates. The final component summary is
shown in capture 008 in the supplied set. Images are lossless WebP conversions
without visual edits. The screenshots do not establish backup completion,
full post-upgrade health, or service downtime, so those are written as
prerequisites and validation guidance.
--&gt;</content:encoded></item><item><title>Upgrading VCF Identity Broker to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-identity-broker-to-9-1-1-step-by-step/</link><pubDate>Wed, 09 Sep 2026 03:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-identity-broker-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and covers &lt;strong&gt;VCF Identity Broker&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list the Identity Broker target build as &lt;strong&gt;25679886&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In VCF 9.1, Identity Broker is a VCF management service hosted by the VCF services runtime. The supported lifecycle workflow is &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers a 9.1.0.x maintenance upgrade. If you are coming from an older VCF or VMware Identity Manager deployment, follow the applicable migration or upgrade procedure first; this is not a replacement for that transition workflow.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and covers &lt;strong&gt;VCF Identity Broker&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list the Identity Broker target build as &lt;strong&gt;25679886&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In VCF 9.1, Identity Broker is a VCF management service hosted by the VCF services runtime. The supported lifecycle workflow is &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers a 9.1.0.x maintenance upgrade. If you are coming from an older VCF or VMware Identity Manager deployment, follow the applicable migration or upgrade procedure first; this is not a replacement for that transition workflow.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions reported by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Current Version&lt;/th&gt;
					&lt;th&gt;Target Version&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Identity Broker&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25522734&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679886&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build matches the Identity Broker entry in the VCF Operations 9.1.1 release notes.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. The release notes also require &lt;strong&gt;VCF Services Runtime&lt;/strong&gt; to be upgraded to 9.1.1 before Identity Broker or Salt RaaS. In my lab Fleet Lifecycle and the runtime were already on 9.1.1 when I ran this operation. I documented the runtime upgrade in &lt;a href="https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/"&gt;Upgrading VCF Services Runtime to 9.1.1 Step by Step&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that the VCF management-services backup configuration is present and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Keep the backup encryption passphrase available for a restore.&lt;/li&gt;
&lt;li&gt;Take an on-demand component backup and verify that it completed successfully before patching Identity Broker. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF management backup and restore documentation&lt;/a&gt; describes the supported workflow.&lt;/li&gt;
&lt;li&gt;Check VCF services runtime and hosted-service health before starting, including node CPU, memory, and disk utilization. Identity Broker depends on that runtime for its control plane and storage.&lt;/li&gt;
&lt;li&gt;Confirm that lifecycle metadata is current and that the 9.1.1 binaries are available in the configured software depot. For a disconnected environment, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure no other management-component upgrade or patch operation is running. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;individual-component procedure&lt;/a&gt; says another management-component operation cannot run while a component operation is in progress.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window. Identity Broker provides SSO, so expect authentication to be unavailable or interrupted while its services are restarted. Record the SSO login and directory integrations you want to test afterward.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The VCF Operations page can also display a warning that VCF Operations must be patched independently from the other management components. If that warning is present, finish that patch and wait for it to complete before starting Identity Broker.&lt;/p&gt;
&lt;h2 id="selecting-identity-broker"&gt;Selecting Identity Broker&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the release is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for that task to finish before checking again.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;identity&lt;/strong&gt; and select &lt;strong&gt;Identity broker&lt;/strong&gt; for the VCF instance you want to patch. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0100.25522734 -&amp;gt; 9.1.1.0.25679886&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle on 9.1.1, the 9.1.1 target, and Identity Broker ready for upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934 and Identity Broker instance-a ready to upgrade from 9.1.0.0100.25522734 to 9.1.1.0.25679886." width="1664" height="699" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;With only Identity Broker selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open &lt;strong&gt;Precheck details&lt;/strong&gt; and wait for the &lt;strong&gt;Identity broker Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/003-capture-003.webp" alt="Identity Broker precheck workflow in progress while its binaries are staged in the VCF services runtime." width="1128" height="545" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck completes, review the &lt;strong&gt;Prechecks&lt;/strong&gt; tab and confirm that the overall result is &lt;strong&gt;Passed&lt;/strong&gt;. In my run, the checks covered package staging, the vCenter connection, the database upgrade, the VCF services platform version, and the single-component backup requirement.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/004-capture-004.webp" alt="Completed Identity Broker Precheck Workflow showing a Passed result and all listed checks passed." width="1131" height="540" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Identity Broker is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/005-capture-005.webp" alt="Identity Broker selected with the 9.1.1.0.25679886 upgrade path and Ready for upgrade status after the precheck completed." width="1090" height="152" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Identity Broker row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Identity Broker upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Identity Broker plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Identity Broker prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Identity Broker package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Identity Broker for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Identity Broker upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Identity Broker upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The task details show the plugin staging and component-stage prechecks while the upgrade is in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/007-capture-007.webp" alt="Identity Broker upgrade workflow in progress while the plugin is staged in the VCF services runtime." width="1124" height="586" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow in my lab started at &lt;strong&gt;7:52 PM&lt;/strong&gt; and completed at &lt;strong&gt;9:18 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;1 hour and 26 minutes&lt;/strong&gt;. That is the task duration shown in my lab, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/008-capture-008.webp" alt="Completed Identity Broker upgrade workflow showing all seven subtasks completed." width="1127" height="618" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Identity Broker&lt;/strong&gt; component for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25679886&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt;, it was managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;, and the managed link was &lt;strong&gt;VCF SSO&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-identity-broker-9-1-1-upgrade/009-capture-009.webp" alt="Identity Broker component summary showing Running status, version 9.1.1.0.25679886, Small size, and VCF services runtime management." width="473" height="405" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports &lt;strong&gt;Running&lt;/strong&gt;, validate the authentication path that matters in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sign in to VCF Operations with the configured SSO identity provider.&lt;/li&gt;
&lt;li&gt;Test a directory user and a group-based role assignment.&lt;/li&gt;
&lt;li&gt;Confirm that the expected groups and permissions are still available.&lt;/li&gt;
&lt;li&gt;Test representative VCF component logins and any applications that use the Identity Broker integration.&lt;/li&gt;
&lt;li&gt;Check &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks, and review VCF services runtime and Identity Broker health.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Treat the lifecycle task and the login checks as separate validations. A completed task confirms that the package workflow finished; successful SSO tests confirm that the broker is serving authentication correctly in your environment.&lt;/p&gt;
&lt;p&gt;Once the component and authentication path have been validated, keep or expire the backup artifacts according to your retention policy. I also recommend clearing the browser cache before using the updated VCF Operations interface.&lt;/p&gt;
&lt;p&gt;Identity Broker in my lab is now on &lt;strong&gt;9.1.1.0.25679886&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-09:
Broadcom's VCF 9.1.1 release notes, VCF Operations 9.1.1 component
release notes, and the individual-component lifecycle procedure were reviewed
on September 9, 2026. The supplied captures were reviewed for duplicate or
lower-value views. Captures 001, 003, 004, 005, 007, 008, and 009 are used here
because they establish the target/source builds, precheck progress, passed
precheck, ready state, in-progress workflow, completed workflow, and final
Running state. Captures 002 and 006 are narrow status-row views that repeat
those states and are omitted. The images are lossless WebP conversions with no
visual edits. The captures establish the task times and final version, but they
do not establish backup completion or service downtime, so those are written as
prerequisites and validation guidance. The workflow is intentionally run one
component at a time in this walkthrough.
--&gt;</content:encoded></item><item><title>Upgrading VCF Telemetry to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-telemetry-to-9-1-1-step-by-step/</link><pubDate>Tue, 08 Sep 2026 21:30:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-telemetry-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. In this post I will go over upgrading &lt;strong&gt;VCF Telemetry&lt;/strong&gt; from 9.1.0.0 to 9.1.1.0 through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list the Telemetry target build as &lt;strong&gt;25671600&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Telemetry is a VCF management service hosted by the VCF services runtime. The supported lifecycle workflow is &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers one 9.1.0.x to 9.1.1 maintenance upgrade. If you are coming from an older VCF or Aria release, follow the applicable &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;VCF upgrade procedure&lt;/a&gt; first.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. In this post I will go over upgrading &lt;strong&gt;VCF Telemetry&lt;/strong&gt; from 9.1.0.0 to 9.1.1.0 through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list the Telemetry target build as &lt;strong&gt;25671600&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Telemetry is a VCF management service hosted by the VCF services runtime. The supported lifecycle workflow is &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers one 9.1.0.x to 9.1.1 maintenance upgrade. If you are coming from an older VCF or Aria release, follow the applicable &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;VCF upgrade procedure&lt;/a&gt; first.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions reported by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Telemetry&lt;/td&gt;
					&lt;td&gt;9.1.0.0.25181946&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25671600&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build matches the Telemetry entry in the VCF Operations 9.1.1 release notes.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1 first&lt;/strong&gt;. In my lab it was already running &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. After that prerequisite is complete, patch the remaining management components according to their release-note dependencies.&lt;/p&gt;
&lt;p&gt;The VCF Operations page can also display a warning that VCF Operations must be patched independently from the other management components. If that warning is present, finish the VCF Operations patch and wait for it to complete before starting Telemetry.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify the supporting management-component backup configuration under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt; and keep the encryption passphrase available for a restore. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF backup documentation&lt;/a&gt; describes the supported methods.&lt;/li&gt;
&lt;li&gt;The current VCF backup-method table lists &lt;strong&gt;Telemetry as N/A&lt;/strong&gt;. Keep the VCF Operations image-based backup and the backups of the supporting management services current; do not assume that Telemetry creates a standalone backup artifact. Review the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;VCF management backup and restore documentation&lt;/a&gt; for the supported methods.&lt;/li&gt;
&lt;li&gt;Confirm that lifecycle metadata is current and that the 9.1.1 binaries are available in the assigned software depot. For a disconnected environment, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure no other management-component upgrade or patch operation is running. I run one component at a time so that a failure is easier to isolate.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window and check the VCF services runtime health before starting.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="selecting-telemetry"&gt;Selecting Telemetry&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the release is not listed, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for that task to finish before checking again.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;telemetry&lt;/strong&gt; and select the Telemetry row for the VCF instance you want to patch. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0.25181946 -&amp;gt; 9.1.1.0.25671600&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle on 9.1.1, the 9.1.1 target, and Telemetry ready for upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934 and Telemetry instance-a ready to upgrade from 9.1.0.0.25181946 to 9.1.1.0.25671600." width="1667" height="694" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;With only Telemetry selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Open the task details and wait for the &lt;strong&gt;Telemetry Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/003-capture-003.webp" alt="Telemetry precheck workflow in progress, with component stage prechecks running." width="1125" height="617" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck completes, review &lt;strong&gt;Prechecks&lt;/strong&gt; and confirm that the result is &lt;strong&gt;Passed&lt;/strong&gt;. The checks in my run covered package staging, the vCenter connection, the database upgrade, and the lifecycle backup precheck shown by the UI. Telemetry itself is listed as N/A for backup in the current backup-method table.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/004-capture-004.webp" alt="Completed Telemetry Precheck Workflow showing a Passed result and all listed checks passed." width="1128" height="605" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Return to the component list and confirm that Telemetry is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not start the upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/005-capture-005.webp" alt="Telemetry selected with the 9.1.1.0.25671600 upgrade path and Ready for upgrade status after the precheck completed." width="1040" height="159" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Telemetry row. The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/006-capture-006.webp" alt="Telemetry row showing Upgrade in progress from 9.1.0.0.25181946 to 9.1.1.0.25671600." width="891" height="90" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task details can be used to watch the plugin staging and component stage prechecks:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/007-capture-007.webp" alt="Telemetry upgrade workflow in progress while the plugin is staged in the VCF services runtime." width="1126" height="639" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The overall workflow then moves through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Telemetry upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Run Telemetry prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Telemetry package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Telemetry for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Telemetry upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Telemetry upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The task in my lab started at &lt;strong&gt;5:15 PM&lt;/strong&gt; and completed at &lt;strong&gt;5:59 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;44 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/008-capture-008.webp" alt="Completed Telemetry upgrade workflow showing all subtasks completed." width="1121" height="615" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Telemetry&lt;/strong&gt; component for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25671600&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt;, it was managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;, and the summary showed &lt;strong&gt;Telemetry: Deactivated&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-telemetry-9-1-1-upgrade/009-capture-009.webp" alt="Telemetry component summary showing Running status, version 9.1.1.0.25671600, Small size, and VCF services runtime management." width="377" height="282" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Telemetry: Deactivated&lt;/strong&gt; value is a configuration state shown by the component summary. If your organization uses telemetry reporting, review that setting against your policy after the upgrade rather than assuming it changed as part of the package update.&lt;/p&gt;
&lt;p&gt;Finally, review &lt;strong&gt;VCF Management -&amp;gt; Tasks&lt;/strong&gt; for failed or partially completed tasks, check the VCF services runtime and Telemetry health, and confirm that the management-services backup still works. Keep or expire the backup artifacts according to your retention policy.&lt;/p&gt;
&lt;p&gt;Telemetry in my lab is now on &lt;strong&gt;9.1.1.0.25671600&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-08:
Broadcom's VCF 9.1.1 release notes, VCF Operations 9.1.1 component
release notes, and the individual-component lifecycle procedure were reviewed
on September 8, 2026. The supplied captures were reviewed for duplicate or
lower-value views. Captures 001, 003, 004, 005, 006, 007, 008, and 009 are
used here because they establish the target/source builds, precheck progress,
passed precheck, ready state, upgrade progress, completed workflow, and final
Running state. Capture 002 repeats the precheck-in-progress state in a narrow
row and is omitted. The images are lossless WebP conversions with no visual
edits. The screenshots do not establish backup completion, service downtime,
or the Telemetry configuration policy, so those are written as prerequisites
and validation guidance. The workflow is intentionally run one component at a
time in this walkthrough.
--&gt;</content:encoded></item><item><title>Upgrading VCF Real-Time Metrics Store to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-real-time-metrics-store-to-9-1-1-step-by-step/</link><pubDate>Tue, 08 Sep 2026 20:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-real-time-metrics-store-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and covers the &lt;strong&gt;Real-Time Metrics Store&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list the Real-Time Metrics Store target build as &lt;strong&gt;25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The Real-Time Metrics Store is its own VCF management component. It is separate from the &lt;strong&gt;Real-Time Metrics&lt;/strong&gt; component, even though both appear in the same VCF Management list. The supported lifecycle workflow is &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers a 9.1.0.x to 9.1.1 maintenance patch; an environment coming from an older VCF or Aria release should follow the applicable &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;VCF upgrade procedure&lt;/a&gt; first.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I continued patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and covers the &lt;strong&gt;Real-Time Metrics Store&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; are the source for the release scope, upgrade sequence, dependencies, and known issues. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list the Real-Time Metrics Store target build as &lt;strong&gt;25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The Real-Time Metrics Store is its own VCF management component. It is separate from the &lt;strong&gt;Real-Time Metrics&lt;/strong&gt; component, even though both appear in the same VCF Management list. The supported lifecycle workflow is &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers a 9.1.0.x to 9.1.1 maintenance patch; an environment coming from an older VCF or Aria release should follow the applicable &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;VCF upgrade procedure&lt;/a&gt; first.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions reported by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Current Version&lt;/th&gt;
					&lt;th&gt;Target Version&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Real-Time Metrics Store&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25555874&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714471&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build matches the Real-Time Metrics Store entry in the VCF Operations 9.1.1 release notes.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, update &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before patching the other VCF components&lt;/strong&gt;. The capture from my lab shows Fleet Lifecycle already on &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. After that prerequisite is complete, patch the remaining components according to their release-note dependencies. I ran this store upgrade by itself so the task and validation were easy to follow.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that the VCF management-services backup configuration is present and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The current VCF backup-method table does not list a standalone backup method for Real-Time Metrics Store. Keep the VCF Operations image-based backup and the backups of the supporting management services current, and use the lifecycle precheck as the final gate.&lt;/li&gt;
&lt;li&gt;Confirm that lifecycle metadata is current and that the 9.1.1 binaries are available in the configured software depot. If the depot is offline, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure no other upgrade or patch operation is running. Run the Real-Time Metrics Store upgrade separately from the Real-Time Metrics upgrade and any other management-component patch.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window and note the Real-Time Metrics queries, dashboards, and integrations you want to test afterward.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If VCF Operations displays the warning that it must be patched independently from the other management components, finish that VCF Operations patch and wait for it to complete before continuing.&lt;/p&gt;
&lt;h2 id="selecting-real-time-metrics-store"&gt;Selecting Real-Time Metrics Store&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;metric&lt;/strong&gt;, select &lt;strong&gt;Real-time metrics store&lt;/strong&gt;, and confirm that the intended instance is selected. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;. The upgrade path should read &lt;strong&gt;9.1.0.0200.25555874 -&amp;gt; 9.1.1.0.25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Real-Time Metrics Store instance-a ready to upgrade from 9.1.0.0200.25555874 to 9.1.1.0.25714471." width="1128" height="605" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Select the row and click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. The selected row shows the component and the same source and target builds before the precheck starts.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/002-capture-002.webp" alt="VCF Operations upgrade page with Real-Time Metrics Store selected and Run Prechecks (1) available." width="1131" height="655" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;Open the task details and wait for the &lt;strong&gt;Real-time metrics store Precheck Workflow&lt;/strong&gt; to finish. The workflow runs the component upgrade prechecks before the upgrade is allowed to start.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/003-capture-003.webp" alt="Real-Time Metrics Store precheck workflow showing the component upgrade prechecks running and then succeeding in the task messages." width="1128" height="558" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;When the precheck completes, return to the component list and confirm that the row is &lt;strong&gt;Ready for upgrade&lt;/strong&gt;. Do not click Upgrade while the precheck is still running. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/004-capture-004.webp" alt="Real-Time Metrics Store row showing Ready for upgrade after the precheck completed." width="1125" height="187" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Real-Time Metrics Store row. The row changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Real-Time Metrics Store upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics Store plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Real-Time Metrics Store prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics Store package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Real-Time Metrics Store for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Real-Time Metrics Store upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Real-Time Metrics Store upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/007-capture-007.webp" alt="Real-Time Metrics Store upgrade workflow in progress while the component upgrade is being performed." width="1123" height="744" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task in my lab started at &lt;strong&gt;2:45 PM&lt;/strong&gt; and completed at &lt;strong&gt;3:29 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;44 minutes&lt;/strong&gt;. That is the duration shown by my task, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/008-capture-008.webp" alt="Completed Real-Time Metrics Store upgrade workflow showing all seven subtasks completed." width="1131" height="783" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open &lt;strong&gt;Real-Time Metrics Store&lt;/strong&gt; for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25714471&lt;/strong&gt;. In my lab the deployment size is &lt;strong&gt;Small&lt;/strong&gt;, it is managed by the &lt;strong&gt;VCF services runtime&lt;/strong&gt;, and telemetry is &lt;strong&gt;Deactivated&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-store-9-1-1-upgrade/009-capture-009.webp" alt="Real-Time Metrics Store component summary showing Running status and version 9.1.1.0.25714471." width="464" height="384" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The store is a backend component, so validate the data path through the Real-Time Metrics experience that uses it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open &lt;strong&gt;Operate -&amp;gt; Real-Time Metrics&lt;/strong&gt; and query a known resource.&lt;/li&gt;
&lt;li&gt;Confirm that fresh samples are arriving and that the expected time range is available.&lt;/li&gt;
&lt;li&gt;Check dashboards, saved views, Top-N views, custom PromQL queries, and any integrations that depend on Real-Time Metrics data.&lt;/li&gt;
&lt;li&gt;Confirm that representative vCenter, ESXi, vSAN, and NSX resources still show current data where your environment collects those metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Treat the lifecycle task and the data check as separate validations. A completed task confirms that the package workflow finished; fresh samples confirm that the store is serving data in your environment.&lt;/p&gt;
&lt;p&gt;Once the component and data path have been validated, review the supporting VCF Operations backup according to your retention policy. I also recommend clearing the browser cache before using the updated VCF Operations interface.&lt;/p&gt;
&lt;p&gt;Real-Time Metrics Store in my lab is now on &lt;strong&gt;9.1.1.0.25714471&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-08:
Broadcom's VCF 9.1.1 release notes, the VCF Operations 9.1.1 component
release notes, and the individual-component lifecycle procedure were reviewed
on September 8, 2026. The supplied captures establish the target and source
builds, selected component, precheck result, upgrade workflow, task duration,
and final Running state. Captures 005 and 006 repeat the Upgrade in progress
row at a smaller crop, so they are omitted. The captures do not establish
backup completion or service downtime, so those are written as prerequisites
and validation guidance. The images are lossless WebP conversions with no
visual edits.
--&gt;</content:encoded></item><item><title>Upgrading VCF Real-Time Metrics to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-real-time-metrics-to-9-1-1-step-by-step/</link><pubDate>Tue, 08 Sep 2026 18:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-real-time-metrics-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to continue patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and focuses on &lt;strong&gt;Real-Time Metrics&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release focused mostly on improving product supportability. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; include the Bill of Materials, upgrade sequence, dependencies, known issues, and the component build numbers. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list Real-Time Metrics at build &lt;strong&gt;25679622&lt;/strong&gt;.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to continue patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and focuses on &lt;strong&gt;Real-Time Metrics&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release focused mostly on improving product supportability. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; include the Bill of Materials, upgrade sequence, dependencies, known issues, and the component build numbers. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; list Real-Time Metrics at build &lt;strong&gt;25679622&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In VCF 9.1, Real-Time Metrics is a VCF management service hosted by the VCF services runtime. The supported lifecycle workflow is under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers one 9.1.0.x management-component patch. An environment coming from an older VCF or Aria release should follow the applicable upgrade path in the VCF documentation first.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions reported by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Current Version&lt;/th&gt;
					&lt;th&gt;Target Version&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Real-Time Metrics&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544944&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679622&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build matches the Real-Time Metrics entry in the VCF Operations 9.1.1 release notes.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Real-Time Metrics Store&lt;/strong&gt; is listed as a separate VCF management component with its own 9.1.1 build (&lt;strong&gt;25714471&lt;/strong&gt;). This post covers the Real-Time Metrics component shown in the screenshots; patch the store separately when it is part of your maintenance plan. I documented that workflow in &lt;a href="https://cosmin.us/upgrading-vcf-real-time-metrics-store-to-9-1-1-step-by-step/"&gt;Upgrading VCF Real-Time Metrics Store to 9.1.1 Step by Step&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For a 9.1.0.x environment, patch &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. Once Fleet Lifecycle is on 9.1.1.0, the release notes allow the remaining components to be patched according to their dependencies. My Fleet Lifecycle component was already on 9.1.1.0 when I ran this operation.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that the VCF management-services backup configuration is present and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The current VCF backup-method table lists &lt;strong&gt;Real-Time Metrics as N/A&lt;/strong&gt;. Keep the VCF Operations image-based backup and the backups of the supporting management services current; do not assume that Real-Time Metrics creates a standalone backup artifact.&lt;/li&gt;
&lt;li&gt;Confirm that the lifecycle metadata is current and that the 9.1.1.0 binaries are available in the configured software depot. If the depot is offline, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure no other upgrade or patch operation is running. VCF Operations allows only one management-component patch operation at a time.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window and note the Real-Time Metrics resources, dashboards, or queries you want to test afterward.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="selecting-real-time-metrics"&gt;Selecting Real-Time Metrics&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Set the target VCF version to &lt;strong&gt;9.1.1.&lt;/strong&gt;* if it is not already selected. If the page shows that VCF Operations itself must be patched first, finish that operation and wait for it to complete before continuing.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;real&lt;/strong&gt; or &lt;strong&gt;metrics&lt;/strong&gt; and select &lt;strong&gt;Real-time metrics&lt;/strong&gt;. In my lab the instance was &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0400.25544944 -&amp;gt; 9.1.1.0.25679622&lt;/strong&gt;. The screenshot below shows Fleet Lifecycle already at 9.1.1, the 9.1.1 target, and Real-Time Metrics ready for upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Real-Time Metrics instance-a ready to upgrade from 9.1.0.0400.25544944 to 9.1.1.0.25679622." width="1666" height="660" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;With only Real-Time Metrics selected, run the prechecks for that component. Open the task details and wait for the &lt;strong&gt;Real-time metrics Precheck Workflow&lt;/strong&gt; to finish.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/003-capture-003.webp" alt="Completed Real-Time Metrics precheck workflow showing a Passed result and all listed checks passed." width="1129" height="513" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The precheck in my lab completed successfully. It checked the component package staging, vCenter, database upgrade, and single-component backup requirements.&lt;/p&gt;
&lt;p&gt;Do not start the upgrade until the precheck result is &lt;strong&gt;Passed&lt;/strong&gt;. If a check fails, open its details, fix the reported issue, and run the precheck again.&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Return to the component list and click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Real-Time Metrics row. The row changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Open &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Real-Time Metrics upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics plugin in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Real-Time Metrics prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Real-Time Metrics package in the VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Real-Time Metrics for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Real-Time Metrics upgrade.&lt;/li&gt;
&lt;li&gt;Run the inventory sync after the Real-Time Metrics upgrade.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The first part of the workflow runs the component prechecks and reports the result in the task panel.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/009-capture-009.webp" alt="Real-Time Metrics upgrade workflow in progress, with the component prechecks running and the status messages visible." width="1080" height="626" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The task in my lab started at &lt;strong&gt;1:25 PM&lt;/strong&gt; and completed at &lt;strong&gt;2:12 PM&lt;/strong&gt;, for a total workflow time of about &lt;strong&gt;47 minutes&lt;/strong&gt;. That is the duration shown by my task and is not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/011-capture-011.webp" alt="Completed Real-Time Metrics upgrade workflow showing the component upgrade subtasks completed." width="1125" height="564" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Real-Time Metrics&lt;/strong&gt; component you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25679622&lt;/strong&gt;. In my lab the deployment size was &lt;strong&gt;Small&lt;/strong&gt; and the component was managed by the VCF services runtime.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-real-time-metrics-9-1-1-upgrade/012-capture-012.webp" alt="Real-Time Metrics component summary showing Running status and version 9.1.1.0.25679622." width="426" height="381" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports Running, validate the data path that matters in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open &lt;strong&gt;Operate -&amp;gt; Real-Time Metrics&lt;/strong&gt; and query a known resource.&lt;/li&gt;
&lt;li&gt;Confirm that fresh samples are arriving and that the expected time range is available.&lt;/li&gt;
&lt;li&gt;Check the dashboards, saved views, Top-N views, custom PromQL queries, and any integrations that use the Real-Time Metrics data.&lt;/li&gt;
&lt;li&gt;Confirm that related vCenter, ESX, vSAN, and NSX resources still show current data where your environment collects those metrics.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The VCF Operations 9.1.1 release notes do not call out a Real-Time Metrics-specific UI change in this patch. Treat the component task result and the post-upgrade data check as separate validations: a completed lifecycle task confirms the package workflow, while fresh samples confirm that collection is working for your environment.&lt;/p&gt;
&lt;p&gt;Once the component and data collection have been validated, review the supporting VCF Operations backup according to your retention policy. I also recommend clearing the browser cache before using the updated VCF Operations interface.&lt;/p&gt;
&lt;p&gt;Real-Time Metrics in my lab is now on &lt;strong&gt;9.1.1.0.25679622&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-08:
Broadcom's VCF 9.1.1 release notes, VCF Operations 9.1.1 component
release notes, and the individual-component lifecycle procedure were reviewed
on September 8, 2026. The supplied captures were reviewed for duplicate or
lower-value views. Captures 001, 003, 009, 011, and 012 are used here because
they establish the target/source builds, passed precheck, in-progress workflow,
completed workflow, and final Running state. Captures 002, 004, 005, 007, 008,
and 010 repeat those states at a less useful crop or timestamp. Capture 006 is
a Log Management summary and is unrelated to this post. The images are
lossless WebP conversions with no visual edits. The captures do not establish
backup completion or service downtime, so those are written as prerequisites
and validation guidance. The current lifecycle KB recommends one component operation at a time after
Fleet Lifecycle; component dependencies allow it; this walkthrough
intentionally runs one component at a time.
--&gt;</content:encoded></item><item><title>Upgrading VCF Log Management to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-log-management-to-9-1-1-step-by-step/</link><pubDate>Tue, 08 Sep 2026 16:30:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-log-management-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to continue patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and focuses on &lt;strong&gt;Log Management&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release focused mostly on supportability improvements. The main &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; and the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; are the references I used for this upgrade.&lt;/p&gt;
&lt;p&gt;In VCF 9.1, Log Management is a VCF management service hosted on the VCF services runtime. The supported lifecycle workflow is therefore in VCF Operations under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers a 9.1.0.x maintenance upgrade; an environment coming from an older VCF or Aria release should follow the matching &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/upgrading-cloud-foundation/upgrade-vcf-operations-for-logs.html"&gt;Log Management upgrade procedure&lt;/a&gt; first.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With VCF 9.1.1 released on September 3, 2026, I wanted to continue patching the management services in my lab. This post is a follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/"&gt;VCF 9.1 management services upgrade walkthrough&lt;/a&gt; and focuses on &lt;strong&gt;Log Management&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 is a maintenance release focused mostly on supportability improvements. The main &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt; and the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; are the references I used for this upgrade.&lt;/p&gt;
&lt;p&gt;In VCF 9.1, Log Management is a VCF management service hosted on the VCF services runtime. The supported lifecycle workflow is therefore in VCF Operations under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. This walkthrough covers a 9.1.0.x maintenance upgrade; an environment coming from an older VCF or Aria release should follow the matching &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/upgrading-cloud-foundation/upgrade-vcf-operations-for-logs.html"&gt;Log Management upgrade procedure&lt;/a&gt; first.&lt;/p&gt;
&lt;h2 id="versions-in-this-upgrade"&gt;Versions in This Upgrade&lt;/h2&gt;
&lt;p&gt;These are the versions reported by the VCF Operations UI in my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Current Version&lt;/th&gt;
					&lt;th&gt;Target Version&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Log Management&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544947&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679624&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build is also listed in the VCF Operations 9.1.1 release notes.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, patch &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. After Fleet Lifecycle is updated, the release notes allow the remaining components to be patched according to the documented dependencies. I ran this Log Management operation by itself so that the task and validation were easy to follow.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that a supported backup target is configured and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Use the target required by the component backup method. Keep the backup encryption passphrase available for a restore.&lt;/li&gt;
&lt;li&gt;Take an &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;on-demand component backup&lt;/a&gt; and verify that it completed successfully before patching Log Management. Log data is not included in that backup, so archive it separately according to your retention policy.&lt;/li&gt;
&lt;li&gt;Confirm that the lifecycle metadata is current and that the required 9.1.1 binaries are available in the configured software depot. If the depot is offline, prepare the binaries with the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;VCF Download Tool&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure no other upgrade or patch operation is running. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;individual-component procedure&lt;/a&gt; says another component cannot be upgraded or patched while an operation is in progress.&lt;/li&gt;
&lt;li&gt;Plan a maintenance window and record the Log Management integrations and log sources you need to test afterward.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is also a 9.1.1 known issue when &lt;strong&gt;Log Management&lt;/strong&gt; and &lt;strong&gt;VCF Operations for networks&lt;/strong&gt; are installed in parallel: the platform can be disrupted, causing Real-time Metrics to fail and the Operations for networks task to remain stuck for more than three hours. Install those components sequentially instead.&lt;/p&gt;
&lt;h2 id="selecting-log-management"&gt;Selecting Log Management&lt;/h2&gt;
&lt;p&gt;Log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The target in my lab is already &lt;code&gt;9.1.1.*&lt;/code&gt;. If the target is still on an older release, click &lt;strong&gt;Select Version&lt;/strong&gt;, choose &lt;code&gt;9.1.1.*&lt;/code&gt;, and apply the target before selecting the component. If the page shows a warning that VCF Operations must be patched independently, finish that patch and wait for it to succeed before continuing with the other management components.&lt;/p&gt;
&lt;p&gt;Filter the component list for &lt;strong&gt;log&lt;/strong&gt;, select &lt;strong&gt;Log management&lt;/strong&gt;, and make sure the intended instance is selected. In my lab the instance is &lt;strong&gt;instance-a&lt;/strong&gt;. Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binary before continuing.&lt;/p&gt;
&lt;p&gt;The upgrade path should read &lt;strong&gt;9.1.0.0400.25544947 -&amp;gt; 9.1.1.0.25679624&lt;/strong&gt;. The screenshot below shows the target version, the selected Log Management instance, and the &lt;strong&gt;Ready for upgrade&lt;/strong&gt; state.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/001-capture-001.webp" alt="VCF Operations VCF Management Upgrade page showing Log Management instance-a ready to upgrade from 9.1.0.0400.25544947 to 9.1.1.0.25679624." width="1666" height="665" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;With only Log Management selected, click &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Follow the task by opening &lt;strong&gt;Precheck details&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/003-capture-003.webp" alt="Log Management precheck workflow showing the component package being staged in VCF services runtime." width="1128" height="621" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The precheck workflow in my lab completed successfully in about 14 minutes. It passed the package staging, vCenter, database upgrade, and single-component backup checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/004-capture-004.webp" alt="Completed Log Management precheck workflow with an overall Passed result and six checks passed." width="1126" height="510" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Do not start the upgrade until the precheck status is &lt;strong&gt;Passed&lt;/strong&gt;. If a check fails, open its details, remediate the reported issue, and run the precheck again.&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Return to the component list and click &lt;strong&gt;Upgrade&lt;/strong&gt; on the Log Management row. The row changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;The workflow runs through these subtasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Set Log Management upgrade context for the workflow.&lt;/li&gt;
&lt;li&gt;Stage the Log Management plugin in VCF services runtime.&lt;/li&gt;
&lt;li&gt;Run the Log Management prechecks.&lt;/li&gt;
&lt;li&gt;Stage the Log Management package in VCF services runtime.&lt;/li&gt;
&lt;li&gt;Prepare Log Management for upgrade.&lt;/li&gt;
&lt;li&gt;Perform the Log Management upgrade.&lt;/li&gt;
&lt;li&gt;Run the post-upgrade inventory sync.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/007-capture-007.webp" alt="Log Management upgrade workflow in progress while the component upgrade is being performed." width="1122" height="637" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow started at &lt;strong&gt;10:53 AM&lt;/strong&gt; in my lab. The task took about &lt;strong&gt;1 hour and 11 minutes&lt;/strong&gt;, completing at &lt;strong&gt;12:04 PM&lt;/strong&gt;. That is the total workflow time shown in my task, not a promise about service downtime in another environment. Wait for the final inventory sync and confirm that the overall task is &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/008-capture-008.webp" alt="Completed Log Management upgrade workflow with all seven subtasks completed." width="1128" height="480" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and open the &lt;strong&gt;Log Management&lt;/strong&gt; component for the instance you upgraded.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, verify that the status is &lt;strong&gt;Running&lt;/strong&gt;, the version is &lt;strong&gt;9.1.1.0.25679624&lt;/strong&gt;, and the component is managed by the expected VCF services runtime. In my lab the deployment size is &lt;strong&gt;Small&lt;/strong&gt; with one replica.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-log-management-9-1-1-upgrade/009-capture-009.webp" alt="Log Management component summary showing Running status and version 9.1.1.0.25679624." width="419" height="376" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;After the component reports Running, validate the parts of the service that matter in your environment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Open &lt;strong&gt;Operate -&amp;gt; Logs&lt;/strong&gt; and run a known query.&lt;/li&gt;
&lt;li&gt;Confirm that new events are arriving from representative vSphere, ESXi, and application sources.&lt;/li&gt;
&lt;li&gt;Check dashboards, alerts, notification targets, and any custom integrations.&lt;/li&gt;
&lt;li&gt;Verify that any custom log forwarding configuration still points to the correct Log Management instance.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="911-changes-to-keep-in-mind"&gt;9.1.1 Changes to Keep in Mind&lt;/h2&gt;
&lt;p&gt;The release notes call out a few Log Management changes that are easy to miss during validation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;Additional Storage Required&lt;/strong&gt; metric and its related symptoms, alerts, and dashboards were removed because the old value could report a misleading storage shortfall when no retention period was defined.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;Server Side Encryption&lt;/strong&gt; field was removed from the &lt;strong&gt;Add New Storage&lt;/strong&gt; screen. AWS S3 uses its default AES-256 behavior; for non-AWS S3-compatible storage, configure bucket-level encryption on the storage server itself.&lt;/li&gt;
&lt;li&gt;If a Log Management Disaster Recovery restore leaves the Log Analysis page showing &lt;strong&gt;Unable to access logs due to user permissions&lt;/strong&gt;, the documented workaround is to restart the Log Management service through Fleet Lifecycle using the component &lt;strong&gt;Stop / Start&lt;/strong&gt; action.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once the component and log sources have been validated, keep or expire the backup artifacts according to your retention policy. I also recommend clearing the browser cache before using the updated VCF Operations interface.&lt;/p&gt;
&lt;p&gt;Log Management in my lab is now on &lt;strong&gt;9.1.1&lt;/strong&gt;. If this is part of a larger VCF 9.1.1 maintenance run, continue with the remaining components in the order and dependency boundaries documented in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;VCF 9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-08:
Broadcom's VCF 9.1.1 release notes and the current individual-component lifecycle
procedure were reviewed on September 8, 2026. The supplied session contains nine
captures; 002, 005, and 006 are cropped state-transition views that repeat the
fuller workflow evidence, so the six higher-value captures are used here. The
included images are lossless WebP conversions with no visual edits. The captures
establish the source and target builds, precheck result, workflow subtasks, task
duration, and final Running state. They do not establish backup completion or
service downtime, so those are written as prerequisites and validation guidance.
The current lifecycle KB recommends one component operation at a time after Fleet Lifecycle; this walkthrough intentionally runs one component at a time and follows the individual-component procedure.
--&gt;</content:encoded></item><item><title>Upgrading VCF SDDC Lifecycle to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-sddc-lifecycle-to-9-1-1-step-by-step/</link><pubDate>Tue, 08 Sep 2026 12:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-sddc-lifecycle-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With &lt;a href="https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/"&gt;VCF Services Runtime upgraded to 9.1.1&lt;/a&gt;, the next component I wanted to upgrade in my lab was SDDC Lifecycle. In this post I will go over upgrading it from &lt;strong&gt;9.1.0.0400&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 was released on September 3, 2026. This is a maintenance release focused mostly on supportability improvements. The release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1 first&lt;/strong&gt;, before any other VCF component. In my lab it is already on &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. Continue to follow the release-specific dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;9.1.1 release notes&lt;/a&gt; when planning the remaining components.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With &lt;a href="https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/"&gt;VCF Services Runtime upgraded to 9.1.1&lt;/a&gt;, the next component I wanted to upgrade in my lab was SDDC Lifecycle. In this post I will go over upgrading it from &lt;strong&gt;9.1.0.0400&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 was released on September 3, 2026. This is a maintenance release focused mostly on supportability improvements. The release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1 first&lt;/strong&gt;, before any other VCF component. In my lab it is already on &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. Continue to follow the release-specific dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;9.1.1 release notes&lt;/a&gt; when planning the remaining components.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that a supported backup target is configured and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Use the target required by the component backup method. Keep the encryption passphrase available for a restore. The configuration steps are &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation/configure-sftp-backup-target-in-vmware-cloud-foundation-operations.html"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Take an &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation/backup-vcf-automation.html"&gt;on-demand backup&lt;/a&gt;. Go to &lt;strong&gt;Backup &amp;amp; Restore -&amp;gt; Backup -&amp;gt; Backup Now&lt;/strong&gt;, select the VCF instance and &lt;strong&gt;SDDC Lifecycle&lt;/strong&gt;, and verify that the backup completes successfully. Review the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;supported backup methods&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure the required upgrade binaries are available through the assigned depot. For offline or disconnected environments, prepare them with the VCF Download Tool using the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;binary management documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I ran this as a single component operation and waited for it to complete before starting another management-service operation. That keeps the workflow easy to follow and avoids competing lifecycle tasks during the maintenance window.&lt;/p&gt;
&lt;p&gt;Here are the versions from my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;SDDC Lifecycle&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570103&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25713940&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target version and build match the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vmware-cloud-foundation-9-1-1-0-bill-of-material.html"&gt;VCF 9.1.1 Bill of Materials&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="selecting-sddc-lifecycle"&gt;Selecting SDDC Lifecycle&lt;/h2&gt;
&lt;p&gt;To get started, log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Target VCF version&lt;/strong&gt; in my lab is already set to &lt;strong&gt;9.1.1.*&lt;/strong&gt; from the previous upgrade. If yours is still on &lt;strong&gt;9.1.0.*&lt;/strong&gt;, click on &lt;strong&gt;Select Version&lt;/strong&gt; and set the target to &lt;strong&gt;9.1.1.*&lt;/strong&gt;, as covered in the &lt;a href="https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/#selecting-the-target-version"&gt;runtime walkthrough&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Clear any existing component selections, filter the list for &lt;strong&gt;sddc&lt;/strong&gt;, and select &lt;strong&gt;SDDC lifecycle&lt;/strong&gt; for the instance you want to upgrade. In my lab this is &lt;strong&gt;instance-a&lt;/strong&gt;. Make sure only the intended component is selected; the buttons should show &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and &lt;strong&gt;Upgrade (1)&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and resolve any missing binaries before proceeding. Check that the upgrade path is &lt;strong&gt;9.1.0.0400.25570103 -&amp;gt; 9.1.1.0.25713940&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page with SDDC Lifecycle selected for instance-a and the upgrade path to 9.1.1.0.25713940." width="1800" height="646" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-prechecks"&gt;Running the Prechecks&lt;/h2&gt;
&lt;p&gt;Click on &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. The row changes to &lt;strong&gt;Prechecks in progress&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/002-capture-002.webp" alt="SDDC Lifecycle showing Prechecks in progress for the upgrade from 9.1.0.0400.25570103 to 9.1.1.0.25713940." width="1006" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Click on &lt;strong&gt;Precheck details&lt;/strong&gt; to follow the workflow. The detail view shows the precheck context being set and the SDDC Lifecycle precheck binaries being staged.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/003-capture-003.webp" alt="SDDC Lifecycle precheck workflow showing the precheck binaries being staged." width="1123" height="495" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In my lab the precheck started at &lt;strong&gt;8:56 AM&lt;/strong&gt; and completed at &lt;strong&gt;9:11 AM&lt;/strong&gt; on September 8. The final result was &lt;strong&gt;Passed&lt;/strong&gt;, including the component package, vCenter, database upgrade, and single-component backup checks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/004-capture-004.webp" alt="Completed SDDC Lifecycle precheck workflow with an overall Passed result and six checks passed." width="1374" height="565" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Once the prechecks pass, return to the upgrade list. The row should show &lt;strong&gt;Ready for upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/005-capture-005.webp" alt="SDDC Lifecycle ready for upgrade after the prechecks completed." width="1038" height="51" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Resolve any failed check before continuing, following Broadcom&amp;rsquo;s &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;individual component upgrade procedure&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Click on &lt;strong&gt;Upgrade&lt;/strong&gt; on the SDDC Lifecycle row.&lt;/p&gt;
&lt;p&gt;The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click on &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/006-capture-006.webp" alt="SDDC Lifecycle showing Upgrade in progress from 9.1.0.0400.25570103 to 9.1.1.0.25713940." width="1021" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow sets the upgrade context, stages the SDDC Lifecycle plugin in VCF Services Runtime, runs the component prechecks, stages the package, prepares and performs the upgrade, and finishes with an inventory sync.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/007-capture-007.webp" alt="SDDC Lifecycle upgrade workflow in progress while the component prechecks run." width="1124" height="481" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the workflow to finish. If a task fails, open its details, resolve the reported issue, and retry it before moving on.&lt;/p&gt;
&lt;h2 id="verifying-the-upgrade"&gt;Verifying the Upgrade&lt;/h2&gt;
&lt;p&gt;Once the upgrade is complete, the workflow shows &lt;strong&gt;Completed&lt;/strong&gt;. In my lab all seven subtasks completed, including &lt;strong&gt;Inventory sync post SDDC lifecycle upgrade&lt;/strong&gt;. The upgrade started at &lt;strong&gt;9:15 AM&lt;/strong&gt; and finished at &lt;strong&gt;10:04 AM&lt;/strong&gt; on September 8, about &lt;strong&gt;49 minutes&lt;/strong&gt; for the full workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/008-capture-008.webp" alt="Completed SDDC Lifecycle upgrade workflow with all seven subtasks completed." width="444" height="483" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can verify the installed version by going to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and opening &lt;strong&gt;SDDC Lifecycle&lt;/strong&gt; for the instance.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, check that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25713940&lt;/strong&gt;. Also confirm that it is managed by the expected VCF Services Runtime instance.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-sddc-lifecycle-9-1-1-upgrade/009-capture-009.webp" alt="SDDC Lifecycle Summary showing Running status, version 9.1.1.0.25713940, and management by VCF Services Runtime." width="488" height="525" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;One known issue to keep in mind: if you plan to scale VCF Services Runtime from &lt;strong&gt;Small&lt;/strong&gt; to &lt;strong&gt;Small (High Availability)&lt;/strong&gt;, upgrade &lt;strong&gt;SDDC Lifecycle to 9.1.1&lt;/strong&gt; before doing that. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; document a failure when Fleet Lifecycle is on 9.1.1 while SDDC Lifecycle is still on 9.1.0.&lt;/p&gt;
&lt;p&gt;SDDC Lifecycle in my lab is now on &lt;strong&gt;9.1.1&lt;/strong&gt;. We can continue with the remaining management components, following the release-specific dependencies above.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-08:
The supplied manifest identifies this as "VCF 9.1.1 SDDC lifecycle upgrade"; all nine
captures show SDDC Lifecycle. Captures are used as supplied, with no visual edits.
The lab evidence establishes the source and target builds, precheck progress and
pass result, upgrade progress and completion, workflow duration, and final Running
status. It does not establish backup completion or service downtime.
Official Broadcom release notes and lifecycle-management documentation were reviewed
on September 8, 2026. The generic component procedure requires one upgrade operation
at a time; the current KB 453246 concurrency warning also applies to the Upgrade (ALL) action.
The previous URL is retained as a permanent redirect in static/_redirects because
the draft was initially named for Software Depot before the screenshot component was
confirmed.
--&gt;</content:encoded></item><item><title>Upgrading VCF Services Runtime to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/</link><pubDate>Mon, 07 Sep 2026 18:30:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-services-runtime-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With Fleet Lifecycle upgraded to 9.1.1, the next component I wanted to upgrade in my lab was VCF Services Runtime. In this post I will go over upgrading it from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 was released on September 3, 2026. The release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;. The runtime fixes listed in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations release notes&lt;/a&gt; include improvements for mixed-case FQDNs, services recovering after a cluster power-on, and log buffers filling the logging disk.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With Fleet Lifecycle upgraded to 9.1.1, the next component I wanted to upgrade in my lab was VCF Services Runtime. In this post I will go over upgrading it from &lt;strong&gt;9.1.0.0200&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt; through VCF Operations.&lt;/p&gt;
&lt;p&gt;VCF 9.1.1 was released on September 3, 2026. The release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;. The runtime fixes listed in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations release notes&lt;/a&gt; include improvements for mixed-case FQDNs, services recovering after a cluster power-on, and log buffers filling the logging disk.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1 first&lt;/strong&gt;, before any other VCF component. Broadcom also requires the hosting runtime to be upgraded before the dependent Identity Broker and Salt RaaS upgrades to 9.1.1. The release-specific order is documented &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that a supported backup target is configured and reachable under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;. Use the target required by the component backup method. This is a prerequisite for patching VCF management services. Check the configuration status and keep the encryption passphrase available for a restore. The configuration steps are &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation/configure-sftp-backup-target-in-vmware-cloud-foundation-operations.html"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Take an &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation/backup-vcf-automation.html"&gt;on-demand backup&lt;/a&gt; before the upgrade. Go to &lt;strong&gt;Backup &amp;amp; Restore -&amp;gt; Backup -&amp;gt; Backup Now&lt;/strong&gt;, select the VCF instance and component, and verify that the backup completes. Include the runtime and the hosted services that support backup in your recovery plan. Broadcom lists the runtime&amp;rsquo;s file-based backup as covering &lt;strong&gt;service accounts only&lt;/strong&gt;; it does not replace the individual service backups. Review the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation.html"&gt;supported backup methods&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Check the runtime and hosted-service health before starting, including node CPU, memory, and disk utilization. Plan a maintenance window: hosted services can restart during maintenance. Broadcom describes these checks in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/infrastructure-operations/using-vcf-operations-diagnostics/monitor-your-environment-and-prevent-issues-with-vcf-health/vcf-management-services-metrics-and-health-in-vcf-diagnostics.html"&gt;VCF Management Services health documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure the required binaries are available through the assigned software depot. For offline or disconnected environments, prepare them with the VCF Download Tool using the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;binary management documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For this walkthrough we will upgrade one runtime instance and let it finish before starting another management-service operation. If VCF Operations itself is being patched, wait for that patch to complete first, as the banner in the screenshot below instructs. Also wait for any Software Depot patch to finish so the upgrade binaries are available.&lt;/p&gt;
&lt;p&gt;Here are the versions from my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Services Runtime&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25555874&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25714471&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Fleet Lifecycle was already on &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;. Both 9.1.1 build numbers match the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vmware-cloud-foundation-9-1-1-0-bill-of-material.html"&gt;VCF 9.1.1 Bill of Materials&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="selecting-the-target-version"&gt;Selecting the Target Version&lt;/h2&gt;
&lt;p&gt;To get started, log in to VCF Operations with an Administrator account and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;We can see that Fleet Lifecycle is already upgraded, but the management components still have &lt;strong&gt;9.1.0.*&lt;/strong&gt; selected as the target. If the new release is not available, use &lt;strong&gt;Sync&lt;/strong&gt; to refresh the lifecycle metadata and wait for the task to complete.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Management Components&lt;/strong&gt;, click on &lt;strong&gt;Select Version&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page showing Fleet Lifecycle at 9.1.1.0.25713934 and the management component target still set to 9.1.0.*." width="1186" height="508" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;Set Target Version&lt;/strong&gt; dialog, select &lt;strong&gt;9.1.1.*&lt;/strong&gt; from the &lt;strong&gt;VCF global version&lt;/strong&gt; drop-down and click on &lt;strong&gt;Set Version&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Please note that this target applies to management components across all VCF instances. Setting the target does not start the upgrades; we still need to select the component to upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/003-capture-003.webp" alt="Set Target Version dialog with VCF global version 9.1.1.* selected and the Set Version button enabled." width="1022" height="272" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-runtime-prechecks"&gt;Running the Runtime Prechecks&lt;/h2&gt;
&lt;p&gt;Clear any existing component selections, then filter the list for &lt;strong&gt;runtime&lt;/strong&gt; and select the &lt;strong&gt;VCF services runtime&lt;/strong&gt; row for the instance you want to upgrade. In my lab this is &lt;strong&gt;instance-a&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Make sure only the intended runtime is selected. The buttons should show &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt; and &lt;strong&gt;Upgrade (1)&lt;/strong&gt;. Check that the upgrade path is &lt;strong&gt;9.1.0.0200.25555874 -&amp;gt; 9.1.1.0.25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Expand &lt;strong&gt;Check Required Binaries&lt;/strong&gt; and confirm that the required binaries are available. Resolve any missing binaries before proceeding.&lt;/p&gt;
&lt;p&gt;Click on &lt;strong&gt;Run Prechecks (1)&lt;/strong&gt;. Once the task completes, review &lt;strong&gt;Precheck details&lt;/strong&gt; and resolve any errors before starting the upgrade, following the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;individual component upgrade procedure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here we can see the runtime row showing &lt;strong&gt;Ready for upgrade&lt;/strong&gt;, with the &lt;strong&gt;Precheck details&lt;/strong&gt; link available.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/005-capture-005.webp" alt="VCF Services Runtime selected for instance-a, with the upgrade path to 9.1.1.0.25714471, Ready for upgrade status, and Precheck details link." width="1800" height="645" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="starting-the-upgrade"&gt;Starting the Upgrade&lt;/h2&gt;
&lt;p&gt;Once the prechecks have completed successfully, click on &lt;strong&gt;Upgrade&lt;/strong&gt; on the runtime row.&lt;/p&gt;
&lt;p&gt;The status changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. We can follow the progress by clicking on &lt;strong&gt;Upgrade details&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/006-capture-006.webp" alt="VCF Services Runtime row showing Upgrade in progress from 9.1.0.0200.25555874 to 9.1.1.0.25714471." width="955" height="58" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow starts by setting the runtime upgrade context and staging the runtime plugin. In this capture we can see &lt;strong&gt;Staging binaries&lt;/strong&gt; followed by &lt;strong&gt;Running Component Stage Prechecks&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/007-capture-007.webp" alt="VCF Services Runtime upgrade workflow in progress, with the plugin staging subtask displaying binary staging and component stage precheck messages." width="1376" height="656" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We now have to wait for the workflow to finish. It continues through runtime prechecks, package staging, upgrade preparation, the upgrade itself, and the final inventory sync.&lt;/p&gt;
&lt;p&gt;If a task fails, open its details and resolve the reported issue before retrying. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;9.1.1 known issues&lt;/a&gt; also explain that a completed workflow can retain failed subtask attempts after successful retries. Review the final task status and component health when checking the result.&lt;/p&gt;
&lt;h2 id="verifying-the-upgrade"&gt;Verifying the Upgrade&lt;/h2&gt;
&lt;p&gt;Once the upgrade is complete, the workflow shows &lt;strong&gt;Completed&lt;/strong&gt;. The final &lt;strong&gt;Inventory sync post VCF services runtime upgrade&lt;/strong&gt; subtask also shows &lt;strong&gt;Completed&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In my lab the workflow started at &lt;strong&gt;9:01 AM&lt;/strong&gt; and completed at &lt;strong&gt;2:46 PM&lt;/strong&gt; on September 7, about &lt;strong&gt;5 hours and 45 minutes&lt;/strong&gt;. This is the total workflow time shown in my task, not a measurement of service downtime. Allow for your environment to take a different amount of time.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/008-capture-008.webp" alt="Completed VCF Services Runtime upgrade workflow, with a 9:01 AM start, 2:46 PM completion, and completed final inventory sync." width="1358" height="554" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can verify the installed version by going to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Components&lt;/strong&gt; and opening &lt;strong&gt;VCF Services Runtime&lt;/strong&gt; for the instance.&lt;/p&gt;
&lt;p&gt;Under &lt;strong&gt;Summary&lt;/strong&gt;, check that the status is &lt;strong&gt;Running&lt;/strong&gt; and the version is &lt;strong&gt;9.1.1.0.25714471&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-services-runtime-9-1-1-upgrade/009-capture-009.webp" alt="VCF Services Runtime Summary showing Running status, version 9.1.1.0.25714471, and Small size after the upgrade." width="542" height="741" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Before moving on, open &lt;strong&gt;Services runtime health&lt;/strong&gt; and check the nodes and hosted services for outstanding health issues. Verify the services you use, such as sign-in, log collection, and lifecycle operations, and confirm that backups are still working.&lt;/p&gt;
&lt;p&gt;The runtime in my lab is now on &lt;strong&gt;9.1.1&lt;/strong&gt;. We can continue with the remaining management components, following the release-specific dependencies above. Upgrading the runtime does not by itself confirm that every hosted component is on 9.1.1; check each component&amp;rsquo;s version separately.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-07:
Sources verified directly in Broadcom TechDocs, including the September 4 release-note updates.
All nine supplied PNGs have unique SHA-256 hashes. Captures 002 (open version menu)
and 004 (cropped list with ten components selected) were omitted as redundant.
The seven included screenshots are losslessly encoded copies, without visual edits.
The lab screenshots establish the source/target builds, completed workflow, duration,
and final Running status. They do not establish backup success, detailed precheck
results, full post-upgrade health, or duration of service unavailability.
The Fleet Lifecycle walkthrough is now published and linked from the all-in-one
runbook.
The generic individual-component documentation prohibits parallel operations, while
the 9.1.1 release notes permit them subject to dependencies. This walkthrough uses
one runtime at a time and preserves the VCF Operations isolation warning shown in
the supplied UI, without claiming a universal mandatory order for all components.
--&gt;</content:encoded></item><item><title>Upgrading VCF Operations Fleet Lifecycle to 9.1.1 Step by Step</title><link>https://cosmin.us/upgrading-vcf-operations-fleet-lifecycle-to-9-1-1-step-by-step/</link><pubDate>Sun, 06 Sep 2026 09:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-operations-fleet-lifecycle-to-9-1-1-step-by-step/</guid><description>&lt;p&gt;With the release of VCF 9.1.1 on September 3, 2026, I wanted to get Fleet Lifecycle in my lab upgraded. This is a maintenance release focused mostly on supportability improvements. The release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this post I will go over upgrading Fleet Lifecycle through VCF Operations, from &lt;strong&gt;9.1.0.0400&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, Broadcom requires us to upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. Make sure to follow the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;9.1.1 release-specific dependencies&lt;/a&gt; when planning the rest of the upgrade.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With the release of VCF 9.1.1 on September 3, 2026, I wanted to get Fleet Lifecycle in my lab upgraded. This is a maintenance release focused mostly on supportability improvements. The release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this post I will go over upgrading Fleet Lifecycle through VCF Operations, from &lt;strong&gt;9.1.0.0400&lt;/strong&gt; to &lt;strong&gt;9.1.1.0&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;For an existing &lt;strong&gt;9.1.0.x&lt;/strong&gt; environment, Broadcom requires us to upgrade &lt;strong&gt;Fleet Lifecycle to 9.1.1.0 before any other VCF component&lt;/strong&gt;. Make sure to follow the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;9.1.1 release-specific dependencies&lt;/a&gt; when planning the rest of the upgrade.&lt;/p&gt;
&lt;p&gt;Before starting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify that a supported backup target is configured and reachable. An external SFTP server is recommended for the file-based management-service backups. Configure it under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Backup &amp;amp; Restore&lt;/strong&gt;, following the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation/configure-sftp-backup-target-in-vmware-cloud-foundation-operations.html"&gt;SFTP backup location documentation&lt;/a&gt;. Keep the backup encryption passphrase available for a restore.&lt;/li&gt;
&lt;li&gt;Take an &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/fleet-management/backup-and-restore-of-cloud-foundation/backup-vcf-automation.html"&gt;on-demand backup&lt;/a&gt; of Fleet Lifecycle from &lt;strong&gt;Backup &amp;amp; Restore -&amp;gt; Backup -&amp;gt; Backup Now&lt;/strong&gt;. Select the VCF instance and component, start the backup, and verify that it completed successfully.&lt;/li&gt;
&lt;li&gt;Confirm that the configured depot can supply the upgrade binaries. If you use an offline or disconnected depot, prepare the required binaries with the VCF Download Tool using the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/binary-management-for-vmware-cloud-foundation.html"&gt;binary management documentation&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here are the versions from my lab:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Fleet Lifecycle&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570104&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25713934&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The target build also matches the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vmware-cloud-foundation-9-1-1-0-bill-of-material.html"&gt;VCF 9.1.1 Bill of Materials&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="checking-for-the-upgrade"&gt;Checking for the Upgrade&lt;/h2&gt;
&lt;p&gt;To get started, log in to VCF Operations and go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The lifecycle metadata is normally synced automatically. If it has been a while since the last sync, we can trigger one manually. I usually perform a manual sync before starting an upgrade to make sure I have the latest metadata.&lt;/p&gt;
&lt;p&gt;To do this, click on &lt;strong&gt;Sync&lt;/strong&gt; in the top right corner and wait for the task to complete before selecting the new version.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/001-capture-001.webp" alt="VCF Management Upgrade page showing the Sync link and Fleet Lifecycle still targeting 9.1.0.0400.25570104." width="1800" height="303" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In the capture above, both sides of the version arrow still show &lt;strong&gt;9.1.0.0400.25570104&lt;/strong&gt;. We need to change the Fleet Lifecycle target before clicking on &lt;strong&gt;Upgrade&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="selecting-the-target-version"&gt;Selecting the Target Version&lt;/h2&gt;
&lt;p&gt;On the &lt;strong&gt;Fleet Lifecycle&lt;/strong&gt; card, click on the &lt;strong&gt;&amp;hellip;&lt;/strong&gt; menu and select &lt;strong&gt;Select version&lt;/strong&gt;. Use the menu on this card; the &lt;strong&gt;Change Target Version&lt;/strong&gt; button below it controls the other VCF Management component targets.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/002-capture-002.webp" alt="Fleet Lifecycle three-dot menu expanded with Select version visible above the separate VCF Management Change Target Version button." width="1800" height="372" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Fleet Lifecycle Component Target Version&lt;/strong&gt; dialog opens. Select &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt; and click on &lt;strong&gt;Set Target Version&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/003-capture-003.webp" alt="Fleet Lifecycle Component Target Version dialog with 9.1.1.0.25713934 selected and the Set Target Version button." width="1702" height="470" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can now see the upgrade path from &lt;strong&gt;9.1.0.0400.25570104&lt;/strong&gt; to &lt;strong&gt;9.1.1.0.25713934&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Click on &lt;strong&gt;Check Binary Availability&lt;/strong&gt; and confirm that the required binary is available before proceeding. If it is missing, resolve the depot or download issue and run the check again.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/004-capture-004.webp" alt="Fleet Lifecycle card showing the upgrade path to 9.1.1.0.25713934 with Upgrade and Check Binary Availability buttons." width="1800" height="277" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="running-the-upgrade"&gt;Running the Upgrade&lt;/h2&gt;
&lt;p&gt;Once binary availability is confirmed, click on &lt;strong&gt;Upgrade&lt;/strong&gt;. The card changes to &lt;strong&gt;Upgrade in progress&lt;/strong&gt;. Click on &lt;strong&gt;Upgrade details&lt;/strong&gt; to follow the task.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/005-capture-005.webp" alt="Fleet Lifecycle upgrade in progress from 9.1.0.0400.25570104 to 9.1.1.0.25713934 with the Upgrade details link." width="1800" height="205" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Here we can see the workflow setting the Fleet Lifecycle upgrade context and staging the Fleet Lifecycle plugin in VCF Services Runtime. In this capture, the first subtask has completed and staging is still in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/006-capture-006.webp" alt="Fleet Lifecycle Upgrade Workflow in progress, with the upgrade context subtask completed and plugin staging in VCF Services Runtime still running." width="1800" height="511" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Wait for the workflow to finish. Review any failed task or precheck and resolve the reported issue before retrying the upgrade.&lt;/p&gt;
&lt;h2 id="verifying-the-new-version"&gt;Verifying the New Version&lt;/h2&gt;
&lt;p&gt;Once the upgrade is complete, return to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. Verify that the Fleet Lifecycle card shows &lt;strong&gt;Current version: 9.1.1.0.25713934&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-fleet-lifecycle-9-1-1-upgrade/007-capture-007.webp" alt="Fleet Lifecycle card showing current version 9.1.1.0.25713934 after the upgrade." width="1800" height="315" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;We can also check the &lt;strong&gt;Tasks&lt;/strong&gt; tab to verify that the upgrade workflow finished successfully. My final capture shows the last lifecycle metadata sync time as &lt;strong&gt;N/A&lt;/strong&gt;. If an automatic sync has not run recently, we can use &lt;strong&gt;Sync&lt;/strong&gt; before continuing with the other component upgrades.&lt;/p&gt;
&lt;p&gt;One known issue to keep in mind: if you plan to scale VCF Services Runtime from &lt;strong&gt;Small&lt;/strong&gt; to &lt;strong&gt;Small (High Availability)&lt;/strong&gt;, upgrade &lt;strong&gt;SDDC Lifecycle to 9.1.1&lt;/strong&gt; as well before doing that. The &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;VCF Operations 9.1.1 release notes&lt;/a&gt; document a failure when Fleet Lifecycle is on 9.1.1 while SDDC Lifecycle is still on 9.1.0.&lt;/p&gt;
&lt;p&gt;And with that we are finished upgrading Fleet Lifecycle to 9.1.1. We can now continue with the remaining VCF components following the dependencies in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;9.1.1 release notes&lt;/a&gt;.&lt;/p&gt;
&lt;!-- Editorial review, 2026-09-14:
The Fleet Lifecycle procedure was checked against the VCF 9.1.1 release notes,
BOM, and current VCF Operations lifecycle documentation. The screenshots establish
the target build, binary check, workflow progress, and final version. They do not
establish backup completion or service downtime. The article uses Fleet Lifecycle
as the first operation, as required for patching a 9.1.0.x environment.
--&gt;</content:encoded></item><item><title>Upgrading VCF Operations to 9.1.1 Using a .PAK File</title><link>https://cosmin.us/upgrading-vcf-operations-to-9-1-1-using-a-pak-file/</link><pubDate>Thu, 03 Sep 2026 06:50:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-operations-to-9-1-1-using-a-pak-file/</guid><description>&lt;p&gt;With the release of VMware Cloud Foundation 9.1.1 on September 3, 2026, I wanted to get my VCF Operations lab upgraded. This is a maintenance release focused mostly on supportability improvements. The VCF 9.1.1 release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;, and the VCF Operations release notes are &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this post I will go over upgrading VCF Operations from 9.1.0.0400 to 9.1.1 using the upgrade PAK file. If you are still on an older release, I also covered &lt;a href="https://cosmin.us/upgrading-vcf-operations-to-9-0-1-using-a-pak-file/"&gt;upgrading VCF Operations to 9.0.1 using a PAK file&lt;/a&gt;. That is a separate walkthrough, not a required intermediate upgrade.&lt;/p&gt;</description><content:encoded>&lt;p&gt;With the release of VMware Cloud Foundation 9.1.1 on September 3, 2026, I wanted to get my VCF Operations lab upgraded. This is a maintenance release focused mostly on supportability improvements. The VCF 9.1.1 release notes can be found &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;, and the VCF Operations release notes are &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-1-0-release-notes/vcfoperations-9-1-1-0-release-notes.html"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In this post I will go over upgrading VCF Operations from 9.1.0.0400 to 9.1.1 using the upgrade PAK file. If you are still on an older release, I also covered &lt;a href="https://cosmin.us/upgrading-vcf-operations-to-9-0-1-using-a-pak-file/"&gt;upgrading VCF Operations to 9.0.1 using a PAK file&lt;/a&gt;. That is a separate walkthrough, not a required intermediate upgrade.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Broadcom &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/upgrading-cloud-foundation/upgrade-backup-and-restore/install-a-software-update.html"&gt;does not recommend using the PAK method for maintenance upgrades&lt;/a&gt; in a fleet-managed VCF 9.1.0.x environment. In that case, upgrade Fleet Lifecycle to 9.1.1 first and use &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. I used the manual PAK workflow in my lab, and this post only covers the VCF Operations appliance. The screenshots document that lab result; they are not a replacement for the official component order or evidence that Fleet Lifecycle can be skipped. The PAK method remains the documented path when upgrading from Aria Operations 8.x or VCF Operations 9.0.x to 9.1.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="what-is-new-in-vcf-operations-911"&gt;What Is New in VCF Operations 9.1.1&lt;/h2&gt;
&lt;p&gt;A few changes in this release stood out to me:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SDDC Manager log collection can now be managed from VCF Operations.&lt;/li&gt;
&lt;li&gt;A network proxy can be configured when deploying a new cloud proxy from the OVA.&lt;/li&gt;
&lt;li&gt;The VMware Salt for VCF Components API is now available for managing configuration across VCF components.&lt;/li&gt;
&lt;li&gt;Active Directory lookup, password management, and certificate management now cover more users, accounts, and VCF components.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The release also fixes problems with mixed-case FQDNs during upgrade operations, the UI not loading when NTP is out of sync, services not recovering after a cluster power-on, and log buffers filling the logging disk. Broadcom also published a separate &lt;a href="https://techdocs.broadcom.com/content/dam/broadcom/techdocs/us/en/assets/vmware-cis/vcf-ops/VCF_Operations_9.1.1.0_Fixed%20_CVEs.xlsx"&gt;VCF Operations 9.1.1 fixed-CVE workbook&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="versions-used-in-this-upgrade"&gt;Versions Used in This Upgrade&lt;/h2&gt;
&lt;p&gt;The PAK file and the VCF Operations node use different build numbers. This is expected.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Item&lt;/th&gt;
					&lt;th&gt;Before&lt;/th&gt;
					&lt;th&gt;After&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Installed update package&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25541550&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679887&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Operations node&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25541561&lt;/td&gt;
					&lt;td&gt;9.1.1.0.25679751&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;In my case the PAK file was &lt;code&gt;Operations-Upgrade-9.1.1.0.25679887.pak&lt;/code&gt;, and the download was 7.03 GB.&lt;/p&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;p&gt;Before starting the upgrade:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Review the release notes and verify the supported upgrade path.&lt;/li&gt;
&lt;li&gt;Confirm that every VCF Operations node is online and healthy and that DNS and NTP are working correctly.&lt;/li&gt;
&lt;li&gt;Run the pre-upgrade assessment and review the results.&lt;/li&gt;
&lt;li&gt;Back up any customized content that you need to preserve.&lt;/li&gt;
&lt;li&gt;Take the VCF Operations cluster offline and snapshot every cluster node without virtual machine memory and without quiescing the guest file system. Broadcom documents the full process &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/upgrading-cloud-foundation/upgrade-backup-and-restore/create-a-snapshot.html"&gt;here&lt;/a&gt;. Bring the cluster online again before starting the upgrade.&lt;/li&gt;
&lt;li&gt;Plan for downtime. The VCF Operations cluster restarts and remains unavailable during the update.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;There is a known 9.1.1 issue where the Management Pack compatibility precheck can show raw resource keys and JSON. If that happens, download the APUAT support-bundle HTML report from the same precheck run to see the readable results.&lt;/p&gt;
&lt;h2 id="downloading-the-upgrade-pak"&gt;Downloading the Upgrade PAK&lt;/h2&gt;
&lt;p&gt;To get started, log in to the &lt;a href="https://support.broadcom.com"&gt;Broadcom Support Portal&lt;/a&gt; and go to &lt;strong&gt;My Downloads -&amp;gt; VMware Cloud Foundation -&amp;gt; VMware Cloud Foundation 9 -&amp;gt; 9.1.1.0&lt;/strong&gt;. Under &lt;strong&gt;VCF Operations&lt;/strong&gt;, click &lt;strong&gt;View Group&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/001-capture-001.webp" alt="Broadcom download portal row showing VCF Operations 9.1.1.0 and packlist ID 545687." width="1800" height="61" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Read both agreements and accept the terms to enable the downloads.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/002-capture-002.webp" alt="Checked box accepting the Broadcom terms and compliance-reporting terms." width="1300" height="112" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Download &lt;code&gt;Operations-Upgrade-9.1.1.0.25679887.pak&lt;/code&gt;. The portal also provides the checksums that we can use to validate the file after the download.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/003-capture-003.webp" alt="VCF Operations 9.1.1 upgrade PAK details showing a 7.03 GB file, build 25679887, and checksums." width="1800" height="123" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="checking-the-cluster-before-the-upgrade"&gt;Checking the Cluster Before the Upgrade&lt;/h2&gt;
&lt;p&gt;Open the VCF Operations administration interface at &lt;code&gt;https://&amp;lt;primary-node-fqdn&amp;gt;/admin&lt;/code&gt; and log in with the local &lt;code&gt;admin&lt;/code&gt; account.&lt;/p&gt;
&lt;p&gt;Go to &lt;strong&gt;System Status&lt;/strong&gt; and make sure the cluster is Online and every node is Running. In my lab the starting node version was &lt;strong&gt;9.1.0.0400.25541561&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/006-capture-006.webp" alt="VCF Operations primary node running online on version 9.1.0.0400.25541561 before the upgrade." width="1800" height="75" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Go to &lt;strong&gt;Software Update&lt;/strong&gt;. The previously installed update in my lab was &lt;strong&gt;9.1.0.0400.25541550&lt;/strong&gt;. Click &lt;strong&gt;Install a Software Update&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/007-capture-007.webp" alt="VCF Operations Software Update page showing installed version 9.1.0.0400.25541550." width="1670" height="576" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="uploading-the-pak-file"&gt;Uploading the PAK File&lt;/h2&gt;
&lt;p&gt;Click &lt;strong&gt;Browse&lt;/strong&gt;, select &lt;code&gt;Operations-Upgrade-9.1.1.0.25679887.pak&lt;/code&gt;, and click &lt;strong&gt;Upload&lt;/strong&gt;. Leave &lt;strong&gt;Install the PAK file even if it is already installed&lt;/strong&gt; unchecked.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/008-capture-008.webp" alt="Add Software Update wizard with the VCF Operations 9.1.1 PAK selected and ready to upload." width="1696" height="618" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The upload can take some time because the PAK is just over 7 GB. Once it finishes, confirm that the signature is valid and that the version is &lt;strong&gt;9.1.1.0.25679887&lt;/strong&gt;, then click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/009-capture-009.webp" alt="VCF Operations wizard confirming the 9.1.1 PAK signature is valid and warning that the cluster will restart." width="1778" height="1544" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Review the End User License Agreement, select &lt;strong&gt;I accept the terms of this agreement&lt;/strong&gt;, and click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/010-capture-010.webp" alt="VCF Operations update wizard with the Foundation Agreement accepted." width="1760" height="1532" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Review the update information and the software update best practices. This screen reminds us to have a backup or snapshots, run the pre-upgrade assessment, and remove the snapshots after the upgrade. Click &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/011-capture-011.webp" alt="VCF Operations 9.1.1 update information recommending snapshots, a pre-upgrade assessment, and snapshot removal after completion." width="1766" height="1538" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;On the last page, click &lt;strong&gt;Install&lt;/strong&gt;. The installer restarts the cluster before copying the files, and the administration interface will become unavailable for a while.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/012-capture-012.webp" alt="Final installation step warning that the VCF Operations cluster will restart before the files are copied." width="1774" height="1554" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="monitoring-the-upgrade"&gt;Monitoring the Upgrade&lt;/h2&gt;
&lt;p&gt;After the administration interface comes back, log in again and go to &lt;strong&gt;Software Update&lt;/strong&gt; to follow the progress. The workflow moves through 14 steps. In the capture below it is at &lt;strong&gt;7 of 14 - Preapply Validated&lt;/strong&gt; and is preparing for certificate renewal.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/013-capture-013.webp" alt="VCF Operations 9.1.1 installation at step 7 of 14, preparing for certificate renewal." width="1800" height="431" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Once all 14 steps complete, the status changes to &lt;strong&gt;Applied and Cleaned&lt;/strong&gt;. In my single-node lab the install took about 40 minutes after the PAK finished uploading.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/014-capture-014.webp" alt="Software Update page showing VCF Operations 9.1.1 installed with all 14 steps applied and cleaned." width="1800" height="643" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="verifying-the-upgrade"&gt;Verifying the Upgrade&lt;/h2&gt;
&lt;p&gt;Go back to &lt;strong&gt;System Status&lt;/strong&gt; and verify that the cluster is Online and every node is Running. The final node version in my lab is &lt;strong&gt;9.1.1.0.25679751&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/09/vcf-operations-9-1-1-upgrade/015-capture-015.webp" alt="VCF Operations System Status showing a successful upgrade, an online primary node, and version 9.1.1.0.25679751." width="1800" height="418" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;In the standard lifecycle workflow, cloud proxy and license server lifecycle is bundled with VCF Operations. Because this lab used the maintenance PAK route, verify both explicitly instead of assuming they were updated. The 9.1.1 release notes list cloud proxy build &lt;strong&gt;25679891&lt;/strong&gt; and license server build &lt;strong&gt;25679819&lt;/strong&gt;. I also recommend checking that collections have resumed, integrations are healthy, dashboards load, and fresh metrics are coming in.&lt;/p&gt;
&lt;p&gt;Don&amp;rsquo;t forget to remove the snapshots once everything has been validated. Since we are doing an upgrade, I also strongly recommend clearing the browser cache before using the new VCF Operations version.&lt;/p&gt;
&lt;p&gt;And with that we are finished upgrading the VCF Operations cluster to 9.1.1. If this is part of a full VCF 9.1.1 upgrade, don&amp;rsquo;t forget to continue with the remaining components in the order listed in the release notes.&lt;/p&gt;</content:encoded></item><item><title>Updating ESXi with the Authenticated Broadcom Depot or an Offline Bundle</title><link>https://cosmin.us/updating-esxi-with-the-authenticated-broadcom-depot-or-an-offline-bundle/</link><pubDate>Tue, 25 Aug 2026 23:05:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/updating-esxi-with-the-authenticated-broadcom-depot-or-an-offline-bundle/</guid><description>&lt;p&gt;This is the corrected follow-up to my earlier ESXi command-line upgrade articles. The shared public VMware host-update depot used in those examples is no longer valid. Broadcom now uses customer-specific authenticated download URLs, and its current standalone command-line procedure documents an offline depot ZIP with &lt;code&gt;esxcli software profile update&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The procedure and release information below were reviewed on August 25, 2026. Reopen the linked Broadcom articles during every change: depot authentication, entitlements, available profiles, release builds and support status can change.&lt;/p&gt;</description><content:encoded>&lt;p&gt;This is the corrected follow-up to my earlier ESXi command-line upgrade articles. The shared public VMware host-update depot used in those examples is no longer valid. Broadcom now uses customer-specific authenticated download URLs, and its current standalone command-line procedure documents an offline depot ZIP with &lt;code&gt;esxcli software profile update&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The procedure and release information below were reviewed on August 25, 2026. Reopen the linked Broadcom articles during every change: depot authentication, entitlements, available profiles, release builds and support status can change.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Scope:&lt;/strong&gt; This article is for a standalone, profile-based ESXi update when &lt;code&gt;esxcli&lt;/code&gt; is an approved lifecycle method. For a VCF-managed host, use the supported VCF lifecycle workflow. For a cluster managed with a vSphere Lifecycle Manager desired image, remediate through vLCM so the host does not drift from that image. NSX-prepared hosts have additional sequencing and kernel-module requirements.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="do-not-select-a-build-merely-because-it-is-called-latest"&gt;Do Not Select a Build Merely Because It Is Called Latest&lt;/h2&gt;
&lt;p&gt;An image-profile name is an exact change target, not a moving alias. Choose the release required by the approved bill of materials, upgrade path, hardware support and product interoperability. Then copy the exact profile name reported by the selected depot.&lt;/p&gt;
&lt;p&gt;The three old examples were pinned to releases that Broadcom&amp;rsquo;s &lt;a href="https://knowledge.broadcom.com/external/article/316595/build-numbers-and-versions-of-vmware-esx.html"&gt;build-number table&lt;/a&gt; now shows as superseded:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Historical article target&lt;/th&gt;
					&lt;th&gt;What the current table shows&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;ESXi 7.0 Update 3f, build 20036589&lt;/td&gt;
					&lt;td&gt;Later ESXi 7 entries exist, through Update 3w, build 24784741. ESXi 7 reached End of General Support on October 2, 2025.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ESXi 8.0 Update 3b, build 24280767&lt;/td&gt;
					&lt;td&gt;Later releases exist in the 8.0 Update 3 train, including Update 3k, build 25595708.&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;ESX 9.0 GA, build 24755229&lt;/td&gt;
					&lt;td&gt;Later 9.0 releases and a separate 9.1 train exist. The table lists 9.0.2.0100 build 25595025 and 9.1.0.0200 build 25557999.&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Those values describe the table on the review date; they are not recommendations and must not be copied as an automatic target. In particular, a numerically higher build in another maintenance or major-version train is not proof that it is the correct upgrade for an environment.&lt;/p&gt;
&lt;h2 id="confirm-the-lifecycle-method-and-exact-target"&gt;Confirm the Lifecycle Method and Exact Target&lt;/h2&gt;
&lt;p&gt;Before downloading or applying an image:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirm the supported upgrade path in the &lt;a href="https://interopmatrix.broadcom.com/"&gt;Broadcom Product Interoperability Matrix&lt;/a&gt;, including vCenter Server, NSX, vSAN and every integrated VMware product.&lt;/li&gt;
&lt;li&gt;Verify the server model, CPU, boot device, NICs, storage controllers, drivers, firmware and BIOS in the &lt;a href="https://compatibilityguide.broadcom.com/"&gt;Broadcom Compatibility Guide&lt;/a&gt;. Use the current vendor-customized image when the hardware vendor requires it.&lt;/li&gt;
&lt;li&gt;Read the target release notes and identify whether the required artifact is under &lt;strong&gt;Products&lt;/strong&gt; or &lt;strong&gt;Solutions&lt;/strong&gt; in the Broadcom Support Portal. Broadcom explains that base releases and patch releases can appear in different areas.&lt;/li&gt;
&lt;li&gt;For an NSX-prepared host, follow &lt;a href="https://knowledge.broadcom.com/external/article/312013"&gt;Broadcom KB 312013&lt;/a&gt; for the matching NSX kernel-module bundle and upgrade sequence. Do not apply a generic image and assume the NSX packages will remain correct.&lt;/li&gt;
&lt;li&gt;If the host is VCF-managed or governed by a vLCM desired image, stop using this standalone procedure and use that product&amp;rsquo;s lifecycle workflow.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ESXi 7 is now a legacy, end-of-general-support release. Do not treat a newer ESXi 7 patch as a substitute for an approved migration plan. Use post-EoGS content or a downgrade only under the applicable support policy and Broadcom Support guidance.&lt;/p&gt;
&lt;h2 id="prepare-the-host"&gt;Prepare the Host&lt;/h2&gt;
&lt;p&gt;Before changing the host:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Take a current ESXi configuration backup and verify the recovery path.&lt;/li&gt;
&lt;li&gt;Migrate or shut down all user VMs. Do not manually move or power off vCLS VMs unless Broadcom Support directs you to do so.&lt;/li&gt;
&lt;li&gt;Confirm the remaining cluster can satisfy the intended vSphere HA failover policy while this host is unavailable.&lt;/li&gt;
&lt;li&gt;For vSAN, confirm cluster health and object compliance, wait for active resynchronizations to finish, and select the maintenance-mode data-migration option appropriate to the storage policies and available capacity.&lt;/li&gt;
&lt;li&gt;Keep out-of-band console access available and patch one host at a time unless the validated design explicitly permits parallel remediation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Enter maintenance mode from the vSphere Client and confirm it from the ESXi shell:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vim-cmd hostsvc/hostsummary &lt;span class="p"&gt;|&lt;/span&gt; grep inMaintenanceMode
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Continue only when the result is &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="preferred-method-use-an-offline-depot-bundle"&gt;Preferred Method: Use an Offline Depot Bundle&lt;/h2&gt;
&lt;p&gt;Broadcom&amp;rsquo;s current standalone &lt;code&gt;esxcli&lt;/code&gt; procedure uses an offline depot ZIP. Download the artifact for the exact approved release from the Broadcom Support Portal or the hardware vendor, then upload it to a datastore accessible by the host. Confirm the upload completed and retain the portal filename and release information with the change record.&lt;/p&gt;
&lt;p&gt;Set the path to the uploaded file. Replace the uppercase example components with the actual datastore, directory and filename:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;OFFLINE_BUNDLE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/vmfs/volumes/DATASTORE/updates/ESXI_DEPOT_BUNDLE.zip&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;List every image profile in that bundle:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software sources profile list -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OFFLINE_BUNDLE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Read the target release notes to distinguish &lt;code&gt;standard&lt;/code&gt;, &lt;code&gt;no-tools&lt;/code&gt;, security-only and vendor-customized profiles. Copy one exact profile name from the command output only after confirming it matches the approved target:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TARGET_PROFILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;COPY_EXACT_PROFILE_NAME_FROM_LIST_OUTPUT&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Inspect the current host profile and perform a dry run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software profile get
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software profile update --dry-run -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OFFLINE_BUNDLE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$TARGET_PROFILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Treat every dependency, acceptance-level, hardware, space or package-removal message as a failed precheck until it is understood. A clean dry run is still not proof that the host will boot or rejoin the cluster successfully. Do not add &lt;code&gt;--force&lt;/code&gt;, &lt;code&gt;--no-sig-check&lt;/code&gt;, &lt;code&gt;--ok-to-remove&lt;/code&gt; or compatibility-bypass flags to make the command pass.&lt;/p&gt;
&lt;p&gt;Broadcom &lt;a href="https://knowledge.broadcom.com/external/article/344817"&gt;documents a false dry-run failure&lt;/a&gt; on ESXi 7 releases earlier than 7.0 Update 3i when a target profile contains the newer ESXio content. Do not simply ignore that failure. Move to the fixed baseline through an approved path, use the supported lifecycle workflow, or obtain Broadcom Support guidance for the exact source and target.&lt;/p&gt;
&lt;p&gt;When the dry-run result and change target have been reviewed, apply the same profile without &lt;code&gt;--dry-run&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software profile update -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OFFLINE_BUNDLE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$TARGET_PROFILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;profile update&lt;/code&gt; normally preserves vendor/OEM components unless they are superseded. Do not replace it with &lt;code&gt;profile install&lt;/code&gt; unless the exact upgrade documentation or Broadcom Support requires installation semantics and the planned package removals have been reviewed. Starting with ESXi 8.0 Update 2, &lt;code&gt;esxcli software vib update&lt;/code&gt; and &lt;code&gt;esxcli software vib install&lt;/code&gt; are not supported for changing the ESXi version.&lt;/p&gt;
&lt;h2 id="alternative-use-the-authenticated-broadcom-online-depot"&gt;Alternative: Use the Authenticated Broadcom Online Depot&lt;/h2&gt;
&lt;p&gt;Use the online method only when direct host access to &lt;code&gt;dl.broadcom.com&lt;/code&gt; is permitted and the change workflow accepts a customer-specific token in the depot URL. Broadcom says only a Product Administrator can generate a download token for an entitled Site ID. A newly generated token can also take a short time to become valid.&lt;/p&gt;
&lt;p&gt;Treat the token like a credential: do not publish it, add it to source control, include it in screenshots, or paste it into tickets and chat transcripts. Prefer the offline-bundle method when shell history, process arguments or logs containing the authenticated URL would violate credential-handling policy.&lt;/p&gt;
&lt;p&gt;Temporarily enable the outbound HTTP client ruleset:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli network firewall ruleset &lt;span class="nb"&gt;set&lt;/span&gt; -e &lt;span class="nb"&gt;true&lt;/span&gt; -r httpClient
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Set the authenticated main-depot URL, replacing &lt;code&gt;REPLACE_WITH_DOWNLOAD_TOKEN&lt;/code&gt; with the token for the entitled Site ID:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;DEPOT_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;https://dl.broadcom.com/REPLACE_WITH_DOWNLOAD_TOKEN/PROD/COMP/ESX_HOST/main/vmw-depot-index.xml&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;List the depot profiles and copy the exact approved profile name from the output:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software sources profile list -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$DEPOT_URL&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TARGET_PROFILE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;COPY_EXACT_PROFILE_NAME_FROM_LIST_OUTPUT&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run only the precheck first:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software profile update --dry-run -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$DEPOT_URL&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$TARGET_PROFILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When the dry run succeeds and its output has been reviewed, apply the update as a separate action:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software profile update -d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$DEPOT_URL&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; -p &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$TARGET_PROFILE&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Disable the temporary firewall exception and remove the shell variables when the depot is no longer needed:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli network firewall ruleset &lt;span class="nb"&gt;set&lt;/span&gt; -e &lt;span class="nb"&gt;false&lt;/span&gt; -r httpClient
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;unset&lt;/span&gt; TARGET_PROFILE DEPOT_URL
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;An HTTP 401 or 403 response can indicate a wrong Site ID, insufficient entitlement, a token that has not propagated yet or a token-access problem. Validate it with &lt;a href="https://knowledge.broadcom.com/external/article/395322"&gt;Broadcom&amp;rsquo;s authenticated-download troubleshooting guide&lt;/a&gt; instead of reverting to the retired public depot. Fix proxy and certificate trust problems; do not disable TLS certificate verification.&lt;/p&gt;
&lt;h2 id="reboot-and-validate-before-exiting-maintenance-mode"&gt;Reboot and Validate Before Exiting Maintenance Mode&lt;/h2&gt;
&lt;p&gt;If the profile update reports that a reboot is required, keep the host in maintenance mode and reboot it:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli system shutdown reboot -r &lt;span class="s1"&gt;&amp;#39;apply ESXi profile update&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After the host finishes booting, verify the version and active profile:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vmware -vl
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software profile get
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Before returning the host to service, also validate:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Management networking, physical NICs, DNS and host connectivity to vCenter Server.&lt;/li&gt;
&lt;li&gt;Storage adapters, paths, datastores and expected multipathing policy.&lt;/li&gt;
&lt;li&gt;vSphere HA, DRS and cluster alarms.&lt;/li&gt;
&lt;li&gt;vSAN health, object compliance and any post-reboot resynchronization.&lt;/li&gt;
&lt;li&gt;NSX transport-node, tunnel, datapath and kernel-module status when applicable.&lt;/li&gt;
&lt;li&gt;Compliance with the intended vLCM image or VCF bill of materials.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Exit maintenance mode only after these checks succeed:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vim-cmd /hostsvc/maintenance_mode_exit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Disable SSH or ESXi Shell again if it was enabled only for this change.&lt;/p&gt;
&lt;h2 id="official-references"&gt;Official References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/390985"&gt;Broadcom KB 390985: upgrading, updating or patching ESXi with esxcli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/390098/vcf-authenticated-downloads-configuratio.html"&gt;Broadcom KB 390098: authenticated downloads configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/379670/how-to-disable-the-hostupdatevmwarecom-d.html"&gt;Broadcom KB 379670: the old public host-update depots are no longer valid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/414704/esxi-upgrade-using-online-depot-fails-wi.html"&gt;Broadcom KB 414704: authenticated online-depot profile operations and the offline alternative&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/316595/build-numbers-and-versions-of-vmware-esx.html"&gt;Broadcom KB 316595: ESXi and ESX build numbers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/372545/download-latest-isos-and-patches-for-vsp.html"&gt;Broadcom KB 372545: downloading ESXi ISOs and patches&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/380215"&gt;Broadcom KB 380215: use profile-based updates on ESXi 8.0 Update 2 and later&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/344817"&gt;Broadcom KB 344817: legacy ESXi 7 dry-run failure with ESXio content&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/415405/end-of-general-support-for-vsphere"&gt;Broadcom KB 415405: vSphere 7 End of General Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/312013"&gt;Broadcom KB 312013: ESXi upgrades with NSX&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Safely Removing an SDDC Manager-Deployed NSX Edge Cluster from VCF</title><link>https://cosmin.us/safely-removing-an-sddc-manager-deployed-nsx-edge-cluster-from-vcf/</link><pubDate>Tue, 25 Aug 2026 12:05:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/safely-removing-an-sddc-manager-deployed-nsx-edge-cluster-from-vcf/</guid><description>&lt;p&gt;This is the corrected follow-up to my older article about &lt;a href="https://cosmin.us/simplifying-nsx-edge-removal-in-vmware-cloud-foundation-vcf-environment/"&gt;simplifying NSX Edge removal in VCF&lt;/a&gt;. The most important correction is that the Edge Cluster Deployment Removal Tool does &lt;strong&gt;not&lt;/strong&gt; preserve everything attached to an Edge cluster. Broadcom requires added dependencies to be removed or disconnected before the cleaner runs.&lt;/p&gt;
&lt;p&gt;The procedure below is based on &lt;a href="https://knowledge.broadcom.com/external/article/316110/vcf-nsxt-edge-cluster-deployment-removal.html"&gt;Broadcom KB 316110&lt;/a&gt;, reviewed on August 25, 2026. Always reopen the KB before a change because the attachment, checksum, prerequisites, and supported releases can change.&lt;/p&gt;</description><content:encoded>&lt;p&gt;This is the corrected follow-up to my older article about &lt;a href="https://cosmin.us/simplifying-nsx-edge-removal-in-vmware-cloud-foundation-vcf-environment/"&gt;simplifying NSX Edge removal in VCF&lt;/a&gt;. The most important correction is that the Edge Cluster Deployment Removal Tool does &lt;strong&gt;not&lt;/strong&gt; preserve everything attached to an Edge cluster. Broadcom requires added dependencies to be removed or disconnected before the cleaner runs.&lt;/p&gt;
&lt;p&gt;The procedure below is based on &lt;a href="https://knowledge.broadcom.com/external/article/316110/vcf-nsxt-edge-cluster-deployment-removal.html"&gt;Broadcom KB 316110&lt;/a&gt;, reviewed on August 25, 2026. Always reopen the KB before a change because the attachment, checksum, prerequisites, and supported releases can change.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Destructive operation:&lt;/strong&gt; The cleaner removes the selected deployment&amp;rsquo;s NSX gateways, Edge cluster and node VMs, network objects, associated vCenter objects, and SDDC Manager inventory records. A successful dry run is necessary, but it is not a rollback mechanism and does not replace dependency analysis or backups.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="confirm-that-the-deployment-is-supported"&gt;Confirm That the Deployment Is Supported&lt;/h2&gt;
&lt;p&gt;Use this cleaner only for an NSX Edge cluster deployment created through one of these SDDC Manager workflows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An Application Virtual Network (AVN) bring-up workflow.&lt;/li&gt;
&lt;li&gt;The SDDC Manager Edge Cluster Creation workflow, including the corresponding UI workflow.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;KB 316110 describes the cleaner as intended for freshly deployed Edge clusters. Stop and open a Broadcom Support case when the deployment&amp;rsquo;s origin or current inventory association is unclear.&lt;/p&gt;
&lt;p&gt;The current cleaner also exposes a separate &lt;code&gt;--db-removal-only&lt;/code&gt; mode for a specific VCF 9.x imported-Edge inventory scenario. That mode does not perform the deployment cleanup described here and is outside this article&amp;rsquo;s scope; use it only under the current KB instructions or Broadcom Support guidance.&lt;/p&gt;
&lt;p&gt;Do &lt;strong&gt;not&lt;/strong&gt; use this workflow when:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The Edge cluster is being used by Workload Control Plane (WCP), vSphere with Tanzu, or dependent Kubernetes services.&lt;/li&gt;
&lt;li&gt;The Edge cluster was created outside the supported SDDC Manager workflows.&lt;/li&gt;
&lt;li&gt;Edge VMs, gateways, or inventory records were already deleted manually and SDDC Manager no longer matches NSX or vCenter.&lt;/li&gt;
&lt;li&gt;Fabric or logical objects created by SDDC Manager were renamed and their original names are unknown.&lt;/li&gt;
&lt;li&gt;The requested action is to shrink, migrate, or repair an active Edge cluster rather than remove the deployment.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Manual deletion can leave SDDC Manager inventory out of sync with NSX and vCenter. Broadcom directs administrators who reach that state to open a support case rather than continue deleting objects; see &lt;a href="https://knowledge.broadcom.com/external/article/437372/remove-nsxt-edge-cluster-from-sddc-manag.html"&gt;KB 437372&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="remove-dependencies-before-running-the-cleaner"&gt;Remove Dependencies Before Running the Cleaner&lt;/h2&gt;
&lt;p&gt;Inventory everything using the Edge cluster and migrate or remove it before continuing. This includes, as applicable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added Tier-0 or Tier-1 gateway configuration.&lt;/li&gt;
&lt;li&gt;Segments linked to a Tier-1 gateway.&lt;/li&gt;
&lt;li&gt;Interfaces, services, static routes, NAT, VPN, load-balancing, DHCP, or other configuration attached above the SDDC Manager-created deployment.&lt;/li&gt;
&lt;li&gt;External Connections and Transit Gateway dependencies in applicable VCF 9.x deployments.&lt;/li&gt;
&lt;li&gt;WCP and related components, which must be removed through the supported vCenter workflow before the Edge cluster can be reconsidered for cleanup.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Revert renamed fabric or logical entities to the names assigned by the SDDC Manager deployment workflow. The cleaner has only limited ability to disconnect linked segments; do not rely on the dry run to discover or safely migrate every application dependency.&lt;/p&gt;
&lt;p&gt;Obtain approval from the network and application owners after confirming that removing the identified gateways and Edge nodes will not interrupt a service that should remain available.&lt;/p&gt;
&lt;h2 id="prepare-backups-and-recovery-access"&gt;Prepare Backups and Recovery Access&lt;/h2&gt;
&lt;p&gt;Before running a destructive cleanup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Verify a current, successful NSX file-based backup and confirm access to its passphrase and remote backup files.&lt;/li&gt;
&lt;li&gt;Follow the current VCF backup guidance for SDDC Manager. Take an SDDC Manager VM snapshot only when the Broadcom procedure or Support guidance for the specific scenario instructs you to do so, and remove it promptly after successful validation.&lt;/li&gt;
&lt;li&gt;Do not snapshot NSX Manager, Global Manager, or Edge appliances. Broadcom documents that VM snapshots of NSX appliances are unsupported and can cause database corruption or cluster instability; use the supported NSX file-based backup instead. See &lt;a href="https://knowledge.broadcom.com/external/article/433822/virtual-machine-snapshots-are-not-suppor.html"&gt;KB 433822&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Schedule a maintenance window and keep console access to SDDC Manager, NSX, and vCenter available.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="download-and-verify-the-current-tool"&gt;Download and Verify the Current Tool&lt;/h2&gt;
&lt;p&gt;Open &lt;a href="https://knowledge.broadcom.com/external/article/316110/vcf-nsxt-edge-cluster-deployment-removal.html"&gt;KB 316110&lt;/a&gt; and download its current Edge cleaner attachment. Do not reuse an older tarball or a bookmarked attachment URL.&lt;/p&gt;
&lt;p&gt;The KB publishes the filename and hashes for its current attachment and warns that the hashes change when the file changes. Copy the tarball to &lt;code&gt;/home/vcf&lt;/code&gt; on the SDDC Manager appliance, not &lt;code&gt;/tmp&lt;/code&gt;, then calculate its SHA-256 hash:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /home/vcf
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sha256sum &lt;span class="s1"&gt;&amp;#39;edge_cluster_cleaner_&amp;lt;version&amp;gt;.tar.gz&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Replace &lt;code&gt;&amp;lt;version&amp;gt;&lt;/code&gt; with the exact version in the downloaded filename. Compare the entire result with the current SHA-256 value shown in KB 316110. Stop if the filename or hash does not match.&lt;/p&gt;
&lt;p&gt;Extract the verified attachment and inspect the bundled help:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;tar -xzvf &lt;span class="s1"&gt;&amp;#39;edge_cluster_cleaner_&amp;lt;version&amp;gt;.tar.gz&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; cleanup
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./remove_edge_cluster.sh --help
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Use the flags reported by the downloaded tool. If its syntax differs from the KB or this article, stop and reconcile the version before continuing.&lt;/p&gt;
&lt;h2 id="run-a-dry-run-first"&gt;Run a Dry Run First&lt;/h2&gt;
&lt;p&gt;Use the exact Edge cluster name and, when supplied, the exact workload-domain name. Use a vCenter SSO administrator for the workload domain. Do not place its password on the command line; when neither a password flag nor password environment variable is supplied, the tool prompts for it without storing it in shell history.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./remove_edge_cluster.sh &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --cluster &lt;span class="s1"&gt;&amp;#39;&amp;lt;EDGE_CLUSTER_NAME&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --workload &lt;span class="s1"&gt;&amp;#39;&amp;lt;WORKLOAD_DOMAIN_NAME&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --user &lt;span class="s1"&gt;&amp;#39;&amp;lt;SSO_ADMIN_USER&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --dryrun &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --verbose
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;--workload&lt;/code&gt; argument is optional in the documented tool, but specifying the intended domain makes the target explicit. Review the dry-run output and generated log from beginning to end. Confirm that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The tool authenticated to the intended environment.&lt;/li&gt;
&lt;li&gt;The selected Edge cluster and workload domain are correct.&lt;/li&gt;
&lt;li&gt;Every object proposed for deletion belongs to the intended deployment.&lt;/li&gt;
&lt;li&gt;No unexpected dependency, renamed object, validation failure, or inventory mismatch appears.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If any check fails, do not add force or warning-suppression flags. Correct the prerequisite or open a Broadcom Support case, then repeat the dry run.&lt;/p&gt;
&lt;h2 id="run-the-live-cleanup"&gt;Run the Live Cleanup&lt;/h2&gt;
&lt;p&gt;After the dry run succeeds and the change is approved, run the same command without &lt;code&gt;--dryrun&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./remove_edge_cluster.sh &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --cluster &lt;span class="s1"&gt;&amp;#39;&amp;lt;EDGE_CLUSTER_NAME&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --workload &lt;span class="s1"&gt;&amp;#39;&amp;lt;WORKLOAD_DOMAIN_NAME&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --user &lt;span class="s1"&gt;&amp;#39;&amp;lt;SSO_ADMIN_USER&amp;gt;&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --verbose
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Read the warning and confirm the target interactively. Do not use &lt;code&gt;--skip-warning&lt;/code&gt; merely to make the example noninteractive. Keep the terminal connected until the cleaner finishes and retain its log with the change record.&lt;/p&gt;
&lt;p&gt;KB 316110 notes that a transient timeout can occasionally stop cleanup partway through. In that documented timeout condition, inspect the log and rerun the same cleaner invocation. If the Edge cluster was dissolved but its Edge node VMs remain, follow the KB&amp;rsquo;s specific direction to remove those residual Edge Transport Node VMs through the NSX UI. Do not improvise manual deletion for other partial states.&lt;/p&gt;
&lt;h2 id="validate-all-three-inventories"&gt;Validate All Three Inventories&lt;/h2&gt;
&lt;p&gt;After the cleaner reports success, verify the result in:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;SDDC Manager:&lt;/strong&gt; the Edge deployment and its workload-domain inventory association are removed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NSX Manager:&lt;/strong&gt; the intended gateways, Edge cluster, Edge nodes, uplink segments, and SDDC Manager-created transport-zone objects are gone, with no new alarms or stale dependencies.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vCenter Server:&lt;/strong&gt; the intended Edge node VMs, port groups, and deployment resource pool are gone, while unrelated infrastructure remains present.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Also test the management and workload paths that were intentionally migrated away from the removed Edge cluster. If the three inventories disagree, stop. Do not manually delete more objects to make the screens match; collect the cleaner log and support bundles and open a Broadcom Support case.&lt;/p&gt;
&lt;h2 id="what-the-cleaner-normally-removes"&gt;What the Cleaner Normally Removes&lt;/h2&gt;
&lt;p&gt;Depending on whether the deployment came from AVN bring-up or direct SDDC Manager Edge creation, KB 316110 says the cleaner normally removes some or all of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The deployment&amp;rsquo;s Tier-0 and Tier-1 gateways.&lt;/li&gt;
&lt;li&gt;The Edge cluster and Edge node VMs.&lt;/li&gt;
&lt;li&gt;Edge uplink segments and deployment-created VLAN transport zones.&lt;/li&gt;
&lt;li&gt;Deployment-created vCenter port groups and resource pool.&lt;/li&gt;
&lt;li&gt;The corresponding SDDC Manager inventory records.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That list is the reason dependency removal and a reviewed dry run come first. The cleaner is a deployment-removal tool, not an application-migration or dependency-preservation tool.&lt;/p&gt;
&lt;h2 id="official-references"&gt;Official References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/316110/vcf-nsxt-edge-cluster-deployment-removal.html"&gt;Broadcom KB 316110: VCF NSX-T Edge Cluster Deployment Removal Tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/437372/remove-nsxt-edge-cluster-from-sddc-manag.html"&gt;Broadcom KB 437372: inventory mismatch after manual Edge removal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/407767/removing-an-edge-from-nsx-fails-after-th.html"&gt;Broadcom KB 407767: remove External Connection and gateway dependencies first&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/433822/virtual-machine-snapshots-are-not-suppor.html"&gt;Broadcom KB 433822: NSX appliance VM snapshots are unsupported&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>VMSA-2025-0004: Current Remediation and Fixed Versions</title><link>https://cosmin.us/vmsa-2025-0004-current-remediation-and-fixed-versions/</link><pubDate>Tue, 25 Aug 2026 12:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/vmsa-2025-0004-current-remediation-and-fixed-versions/</guid><description>&lt;p&gt;Broadcom published &lt;strong&gt;&lt;a href="https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/SecurityAdvisories/0/25390"&gt;VMSA-2025-0004&lt;/a&gt;&lt;/strong&gt; on March 4, 2025, for three vulnerabilities affecting VMware ESXi and related desktop and cloud products. Fixed versions are available, and the advisory lists &lt;strong&gt;no workarounds&lt;/strong&gt; for any of the three vulnerabilities.&lt;/p&gt;
&lt;p&gt;The practical response is therefore straightforward: identify every affected product, move it to a fixed or later supported build using its supported update method, and verify the resulting build. Access restrictions and monitoring remain useful defense-in-depth controls, but they do not replace the update.&lt;/p&gt;</description><content:encoded>&lt;p&gt;Broadcom published &lt;strong&gt;&lt;a href="https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/SecurityAdvisories/0/25390"&gt;VMSA-2025-0004&lt;/a&gt;&lt;/strong&gt; on March 4, 2025, for three vulnerabilities affecting VMware ESXi and related desktop and cloud products. Fixed versions are available, and the advisory lists &lt;strong&gt;no workarounds&lt;/strong&gt; for any of the three vulnerabilities.&lt;/p&gt;
&lt;p&gt;The practical response is therefore straightforward: identify every affected product, move it to a fixed or later supported build using its supported update method, and verify the resulting build. Access restrictions and monitoring remain useful defense-in-depth controls, but they do not replace the update.&lt;/p&gt;
&lt;h2 id="fixed-versions"&gt;Fixed Versions&lt;/h2&gt;
&lt;p&gt;The following table reflects Broadcom&amp;rsquo;s VMSA response matrix. Where a newer supported update is available and compatible with your environment, use that newer update rather than treating the minimum fixed build as a preferred long-term target.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Product&lt;/th&gt;
					&lt;th&gt;Affected branch&lt;/th&gt;
					&lt;th&gt;Minimum remediation listed by Broadcom&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware ESXi&lt;/td&gt;
					&lt;td&gt;8.0&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ESXi80U3d-24585383&lt;/code&gt; or &lt;code&gt;ESXi80U2d-24585300&lt;/code&gt;, depending on the maintained branch&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware ESXi&lt;/td&gt;
					&lt;td&gt;7.0 (EOGS)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ESXi70U3s-24585291&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware Workstation&lt;/td&gt;
					&lt;td&gt;17.x&lt;/td&gt;
					&lt;td&gt;17.6.3&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware Fusion&lt;/td&gt;
					&lt;td&gt;13.x&lt;/td&gt;
					&lt;td&gt;13.6.3&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware Cloud Foundation&lt;/td&gt;
					&lt;td&gt;5.x&lt;/td&gt;
					&lt;td&gt;Async patch to &lt;code&gt;ESXi80U3d-24585383&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware Cloud Foundation&lt;/td&gt;
					&lt;td&gt;4.5.x (EOGS)&lt;/td&gt;
					&lt;td&gt;Async patch to &lt;code&gt;ESXi70U3s-24585291&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware Telco Cloud Platform&lt;/td&gt;
					&lt;td&gt;5.x, 4.x, 3.x, 2.x&lt;/td&gt;
					&lt;td&gt;Follow &lt;a href="https://knowledge.broadcom.com/external/article/389385"&gt;Broadcom KB 389385&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VMware Telco Cloud Infrastructure&lt;/td&gt;
					&lt;td&gt;3.x, 2.x&lt;/td&gt;
					&lt;td&gt;Follow &lt;a href="https://knowledge.broadcom.com/external/article/389385"&gt;Broadcom KB 389385&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The ESXi 7.0 and VCF 4.5.x entries record the advisory&amp;rsquo;s March 2025 minimum fixes; they are not current supported target releases. vSphere 7.0 reached End of General Support on October 2, 2025, and Broadcom&amp;rsquo;s current VCF release matrix places VCF 4.x under End of General Support. Unless a specific Extended Support agreement or Broadcom Support direction applies, plan migration to a supported release rather than stopping at those legacy builds.&lt;/p&gt;
&lt;p&gt;Cloud Foundation administrators should use the VCF async-patching procedure linked from the advisory rather than independently applying an ESXi image that has not been accounted for in the VCF bill of materials. Also confirm hardware, firmware, driver, add-on, backup, replication, and management-product interoperability before beginning a production rollout.&lt;/p&gt;
&lt;p&gt;The advisory is the source of truth if its matrix changes after this article is published.&lt;/p&gt;
&lt;h2 id="understand-the-three-vulnerabilities-correctly"&gt;Understand the Three Vulnerabilities Correctly&lt;/h2&gt;
&lt;p&gt;These vulnerabilities are related, but they do not all provide the same capability:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CVE-2025-22224 — VMCI heap overflow:&lt;/strong&gt; A malicious actor with local administrative privileges inside a VM may execute code as that VM&amp;rsquo;s &lt;strong&gt;VMX process&lt;/strong&gt; on the host. Broadcom rates it Critical with a maximum CVSSv3 score of 9.3.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE-2025-22225 — ESXi arbitrary write:&lt;/strong&gt; An actor who already has privileges within the VMX process may trigger an arbitrary kernel write and escape the &lt;strong&gt;VMX sandbox&lt;/strong&gt;. Broadcom rates it Important with a maximum CVSSv3 score of 8.2.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE-2025-22226 — HGFS information disclosure:&lt;/strong&gt; An actor with administrative privileges inside a VM may exploit an out-of-bounds read to disclose memory from the VMX process. Broadcom rates it Important with a maximum CVSSv3 score of 7.1.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This distinction matters. CVE-2025-22224 provides code execution in the VMX process; it should not be described by itself as complete host takeover. CVE-2025-22225 is the sandbox-escape step described by the advisory. CVE-2025-22226 is an information-disclosure issue, not a code-execution issue.&lt;/p&gt;
&lt;p&gt;Broadcom&amp;rsquo;s current advisory states that it has information suggesting exploitation of all three CVEs has occurred in the wild.&lt;/p&gt;
&lt;h2 id="recommended-remediation-workflow"&gt;Recommended Remediation Workflow&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Inventory the affected products and exact builds.&lt;/strong&gt; Include standalone ESXi, VCF-managed hosts, Workstation, Fusion, and applicable Telco products.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Compare each build with the current advisory.&lt;/strong&gt; Do not rely only on a scanner&amp;rsquo;s advisory title; confirm the installed build against the response matrix.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plan the supported update path.&lt;/strong&gt; Check compatibility and product-specific prerequisites. For VCF, use the documented async-patching workflow referenced by Broadcom.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protect recoverability.&lt;/strong&gt; Confirm that current configuration backups and workload recovery plans are usable before changing production infrastructure.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evacuate and maintain hosts correctly.&lt;/strong&gt; For clustered ESXi hosts, migrate or shut down workloads as appropriate and place each host into maintenance mode before applying its supported lifecycle operation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apply the fixed or a later supported build.&lt;/strong&gt; There is no Broadcom workaround that substitutes for this step.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify the result.&lt;/strong&gt; Confirm the reported build, cluster health, management connectivity, storage and network health, and workload availability before returning the host to service.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continue monitoring.&lt;/strong&gt; Review security telemetry and incident-response data for activity that predates remediation; applying the fixes blocks these vulnerable code paths but does not prove that earlier exploitation did not occur.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="no-workaround-means-no-equivalent-configuration-fix"&gt;No Workaround Means No Equivalent Configuration Fix&lt;/h2&gt;
&lt;p&gt;Broadcom lists &lt;strong&gt;None&lt;/strong&gt; in the Workarounds column for CVE-2025-22224, CVE-2025-22225, and CVE-2025-22226. Restricting administrative access inside VMs, segmenting management networks, and monitoring hosts are sensible controls, but they do not remove the vulnerable code and should not be presented as equivalent remediation.&lt;/p&gt;
&lt;h2 id="historical-context"&gt;Historical Context&lt;/h2&gt;
&lt;p&gt;My original March 2025 article described the initial urgency correctly but incorrectly stated that patches were not yet available. Broadcom&amp;rsquo;s initial advisory already included fixed versions. I have corrected the original article and retained it as historical context, while this page provides the current remediation-first guidance.&lt;/p&gt;
&lt;h2 id="official-references"&gt;Official References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/SecurityAdvisories/0/25390"&gt;VMSA-2025-0004 security advisory and response matrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://brcm.tech/vmsa-2025-0004"&gt;VMSA-2025-0004 supplemental FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article?legacyId=88287"&gt;VCF asynchronous patching guidance referenced by the advisory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/389385"&gt;Telco Cloud remediation guidance, KB 389385&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/415405/end-of-general-support-for-vsphere.html"&gt;Broadcom KB 415405: vSphere 7.0 End of General Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/314608/"&gt;Broadcom KB 314608: current and EOGS VCF releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Safely Removing Stale NSX VIBs from an ESXi Host</title><link>https://cosmin.us/safely-removing-stale-nsx-vibs-from-an-esxi-host/</link><pubDate>Tue, 25 Aug 2026 09:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/safely-removing-stale-nsx-vibs-from-an-esxi-host/</guid><description>&lt;p&gt;This post replaces the unsafe package-removal command that appeared in my older article about &lt;a href="https://cosmin.us/removing-nsx-stale-packages-from-esxi-host/"&gt;removing stale NSX packages from an ESXi host&lt;/a&gt;. Broadcom now documents a clear distinction between removing NSX through its management workflow and cleaning up VIBs that remain afterward.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not manually remove individual NSX VIBs with &lt;code&gt;esxcli software vib remove&lt;/code&gt;. Broadcom identifies that method as unsupported. It can break distributed-switch state, disconnect host networking, and in some failure cases leave reimaging as the recovery path.&lt;/p&gt;</description><content:encoded>&lt;p&gt;This post replaces the unsafe package-removal command that appeared in my older article about &lt;a href="https://cosmin.us/removing-nsx-stale-packages-from-esxi-host/"&gt;removing stale NSX packages from an ESXi host&lt;/a&gt;. Broadcom now documents a clear distinction between removing NSX through its management workflow and cleaning up VIBs that remain afterward.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not manually remove individual NSX VIBs with &lt;code&gt;esxcli software vib remove&lt;/code&gt;. Broadcom identifies that method as unsupported. It can break distributed-switch state, disconnect host networking, and in some failure cases leave reimaging as the recovery path.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="when-this-procedure-applies"&gt;When This Procedure Applies&lt;/h2&gt;
&lt;p&gt;Use this workflow for the documented stale-package condition: NSX has already been removed from the host through NSX Manager, or the host has been removed from NSX Manager, but NSX VIBs remain on ESXi. One example is the dependency error covered by &lt;a href="https://knowledge.broadcom.com/external/article/409544"&gt;Broadcom KB 409544&lt;/a&gt;, where &lt;code&gt;vsipfwlib&lt;/code&gt; remains dependent on &lt;code&gt;nsx-proto2-libs&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This is not a shortcut for dismantling an active transport node. If NSX Manager still shows the host as configured, if workloads or VMkernel adapters still depend on NSX-backed networking, or if the supported removal command reports attached resources, resolve those dependencies before continuing. Do not bypass the command&amp;rsquo;s safety checks by deleting individual VIBs.&lt;/p&gt;
&lt;h2 id="step-1-evacuate-the-host-and-enter-maintenance-mode"&gt;Step 1: Evacuate the Host and Enter Maintenance Mode&lt;/h2&gt;
&lt;p&gt;Before attempting either the NSX Manager removal or the stale-VIB cleanup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Evacuate powered-on workloads from the host.&lt;/li&gt;
&lt;li&gt;Put the host into maintenance mode.&lt;/li&gt;
&lt;li&gt;Confirm that the cluster and its storage can tolerate the host being unavailable.&lt;/li&gt;
&lt;li&gt;Keep console or out-of-band management access available in case normal host networking is interrupted.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do not perform this cleanup on an in-service host.&lt;/p&gt;
&lt;h2 id="step-2-remove-or-unprepare-the-host-in-nsx-manager"&gt;Step 2: Remove or Unprepare the Host in NSX Manager&lt;/h2&gt;
&lt;p&gt;Use NSX Manager as the first removal method. Select the applicable &lt;strong&gt;Remove NSX&lt;/strong&gt; or unprepare action for the host transport node. The exact navigation label varies by NSX release. Wait for NSX Manager to report the host as &lt;strong&gt;Not Configured&lt;/strong&gt; before treating the remaining packages as stale.&lt;/p&gt;
&lt;p&gt;For one currently documented reinstall scenario, Broadcom directs administrators to go to &lt;strong&gt;System&lt;/strong&gt; &amp;gt; &lt;strong&gt;Fabric&lt;/strong&gt; &amp;gt; &lt;strong&gt;Hosts&lt;/strong&gt;, move the host out of the prepared cluster, and use &lt;strong&gt;Remove NSX&lt;/strong&gt; if it does not transition to &lt;strong&gt;Not Configured&lt;/strong&gt;. See &lt;a href="https://knowledge.broadcom.com/external/article/401684"&gt;KB 401684&lt;/a&gt; and confirm the matching procedure for your installed NSX version.&lt;/p&gt;
&lt;h2 id="step-3-confirm-which-nsx-vibs-remain"&gt;Step 3: Confirm Which NSX VIBs Remain&lt;/h2&gt;
&lt;p&gt;Log in to the ESXi shell as an authorized administrator and list the relevant packages:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software vib list &lt;span class="p"&gt;|&lt;/span&gt; grep -E &lt;span class="s1"&gt;&amp;#39;nsx|vsipfwlib&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Record the output for troubleshooting. If the command returns no matching packages, there are no NSX VIBs for this procedure to remove. Reconcile the host&amp;rsquo;s state in NSX Manager instead of continuing blindly.&lt;/p&gt;
&lt;h2 id="step-4-use-the-supported-nsx-removal-command"&gt;Step 4: Use the Supported NSX Removal Command&lt;/h2&gt;
&lt;p&gt;For the stale-VIB condition documented in KB 409544, run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nsxcli -c del nsx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Allow the command to complete. If it fails, stop and address the reported dependency or attached-resource condition. Do not replace it with individual &lt;code&gt;esxcli software vib remove&lt;/code&gt; commands. Broadcom&amp;rsquo;s &lt;a href="https://knowledge.broadcom.com/external/article/426464/esx-host-loses-network-connectivity-afte.html"&gt;KB 426464&lt;/a&gt; explicitly says to correct the condition causing &lt;code&gt;del nsx&lt;/code&gt; to fail rather than using the unsupported ESXCLI method.&lt;/p&gt;
&lt;h2 id="step-5-reboot-and-verify-the-host"&gt;Step 5: Reboot and Verify the Host&lt;/h2&gt;
&lt;p&gt;KB 409544 requires a reboot after the removal. Reboot the host while it remains in maintenance mode. After it has returned, log in and repeat the package check:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;esxcli software vib list &lt;span class="p"&gt;|&lt;/span&gt; grep -E &lt;span class="s1"&gt;&amp;#39;nsx|vsipfwlib&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;For the KB 409544 condition, the expected result is no matching NSX VIBs. Also verify that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The management interface is reachable.&lt;/li&gt;
&lt;li&gt;NSX Manager reports the host as &lt;strong&gt;Not Configured&lt;/strong&gt; if it is meant to remain unprepared.&lt;/li&gt;
&lt;li&gt;No stale NSX-backed distributed-switch resources remain associated with the host.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you intend to prepare the host again, initiate that operation from NSX Manager. Wait for the transport node to report a healthy state, then validate management connectivity, workload networking, and tunnel status before exiting maintenance mode.&lt;/p&gt;
&lt;h2 id="if-esxcli-removal-was-already-attempted"&gt;If ESXCLI Removal Was Already Attempted&lt;/h2&gt;
&lt;p&gt;If individual NSX VIBs were already removed and the host lost network connectivity, do not continue removing packages. Use console or out-of-band access and follow the recovery article that matches the symptom:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/426464/esx-host-loses-network-connectivity-afte.html"&gt;KB 426464: ESX host loses network connectivity after running ESXCLI removal on NSX VIBs&lt;/a&gt; warns that affected hosts can require reimaging.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/394809/nsx-vibs-were-uninstalled-using-esxcli-c.html"&gt;KB 394809: NSX VIBs were uninstalled using ESXCLI, causing network outages&lt;/a&gt; documents a console-based recovery path and highly recommends reimaging afterward to avoid unexpected effects.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;When the host&amp;rsquo;s current state does not match either documented scenario, collect diagnostics and open a Broadcom Support case rather than combining cleanup commands from unrelated KB articles.&lt;/p&gt;
&lt;h2 id="official-references"&gt;Official References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/409544"&gt;Broadcom KB 409544: NSX VIB removal fails with a DependencyError&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/426464/esx-host-loses-network-connectivity-afte.html"&gt;Broadcom KB 426464: Network loss after unsupported NSX VIB removal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/394809/nsx-vibs-were-uninstalled-using-esxcli-c.html"&gt;Broadcom KB 394809: Recovery after ESXCLI removal causes a network outage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/401684"&gt;Broadcom KB 401684: UI-first NSX VIB removal and reinstall flow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Safely Canceling and Deleting Alerts with the VCF Operations API</title><link>https://cosmin.us/safely-canceling-and-deleting-alerts-with-the-vcf-operations-api/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/safely-canceling-and-deleting-alerts-with-the-vcf-operations-api/</guid><description>&lt;p&gt;The VCF Operations API uses different payloads for finding, canceling, and deleting alerts. Treating those operations as interchangeable can either fail validation or broaden a cleanup beyond the alerts you intended to remove.&lt;/p&gt;
&lt;p&gt;This follow-up corrects the API section in &lt;a href="https://cosmin.us/bulk-delete-alerts-in-vcf-operations-formerly-know-as-aria-operations/"&gt;Bulk Delete Alerts in VCF Operations&lt;/a&gt;. The safe sequence is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Query candidate alerts without changing them.&lt;/li&gt;
&lt;li&gt;Review every returned alert ID and account for pagination.&lt;/li&gt;
&lt;li&gt;Cancel only the approved IDs with a &lt;code&gt;uuid-values&lt;/code&gt; body.&lt;/li&gt;
&lt;li&gt;Verify those IDs are now &lt;code&gt;CANCELED&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Delete the same IDs with a direct &lt;code&gt;AlertQuery&lt;/code&gt; body.&lt;/li&gt;
&lt;li&gt;Query again to confirm that they are gone.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix or tune the alert definition first. Deleting alert history does not stop the condition from generating new alerts.&lt;/li&gt;
&lt;li&gt;Use a VCF Operations account whose application role and object scope permit the required alert operations.&lt;/li&gt;
&lt;li&gt;Take any database backup required by your change policy before a large cleanup.&lt;/li&gt;
&lt;li&gt;Start with one small batch. The API documents a default query page size of 1,000, so a single response is not proof that you found every match.&lt;/li&gt;
&lt;li&gt;Use a trusted certificate. The examples intentionally do not bypass TLS verification.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Set the appliance name, create a private working directory, and read an existing session token without placing it in shell history. Store the authorization header in a mode-600 file so the token is not expanded into each &lt;code&gt;curl&lt;/code&gt; process argument, then remove it as soon as the cleanup is verified:&lt;/p&gt;</description><content:encoded>&lt;p&gt;The VCF Operations API uses different payloads for finding, canceling, and deleting alerts. Treating those operations as interchangeable can either fail validation or broaden a cleanup beyond the alerts you intended to remove.&lt;/p&gt;
&lt;p&gt;This follow-up corrects the API section in &lt;a href="https://cosmin.us/bulk-delete-alerts-in-vcf-operations-formerly-know-as-aria-operations/"&gt;Bulk Delete Alerts in VCF Operations&lt;/a&gt;. The safe sequence is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Query candidate alerts without changing them.&lt;/li&gt;
&lt;li&gt;Review every returned alert ID and account for pagination.&lt;/li&gt;
&lt;li&gt;Cancel only the approved IDs with a &lt;code&gt;uuid-values&lt;/code&gt; body.&lt;/li&gt;
&lt;li&gt;Verify those IDs are now &lt;code&gt;CANCELED&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Delete the same IDs with a direct &lt;code&gt;AlertQuery&lt;/code&gt; body.&lt;/li&gt;
&lt;li&gt;Query again to confirm that they are gone.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="before-you-begin"&gt;Before You Begin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fix or tune the alert definition first. Deleting alert history does not stop the condition from generating new alerts.&lt;/li&gt;
&lt;li&gt;Use a VCF Operations account whose application role and object scope permit the required alert operations.&lt;/li&gt;
&lt;li&gt;Take any database backup required by your change policy before a large cleanup.&lt;/li&gt;
&lt;li&gt;Start with one small batch. The API documents a default query page size of 1,000, so a single response is not proof that you found every match.&lt;/li&gt;
&lt;li&gt;Use a trusted certificate. The examples intentionally do not bypass TLS verification.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Set the appliance name, create a private working directory, and read an existing session token without placing it in shell history. Store the authorization header in a mode-600 file so the token is not expanded into each &lt;code&gt;curl&lt;/code&gt; process argument, then remove it as soon as the cleanup is verified:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OPS_FQDN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ops.example.com&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;umask&lt;/span&gt; &lt;span class="m"&gt;077&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp -d /tmp/vcf-ops-alert-cleanup.XXXXXX&lt;span class="k"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;read&lt;/span&gt; -r -s -p &lt;span class="s1"&gt;&amp;#39;VCF Operations token: &amp;#39;&lt;/span&gt; OPS_TOKEN
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;Authorization: OpsToken %s\n&amp;#39;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPS_TOKEN&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/authorization.header&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;600&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/authorization.header&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;unset&lt;/span&gt; OPS_TOKEN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Current VCF Operations API requests use this header:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Authorization: OpsToken TOKEN_VALUE
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can obtain the session token from &lt;code&gt;POST /suite-api/api/auth/token/acquire&lt;/code&gt;. Do not save the token, account password, or response in a shared script or repository.&lt;/p&gt;
&lt;h2 id="step-1-query-a-narrow-candidate-set"&gt;Step 1: Query a Narrow Candidate Set&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;POST /suite-api/api/alerts/query&lt;/code&gt; with an &lt;code&gt;AlertQuery&lt;/code&gt;. Prefer an exact &lt;code&gt;alertDefinitionId&lt;/code&gt;, resource ID, or an already reviewed list of alert IDs. The &lt;code&gt;alertName&lt;/code&gt; field uses contains logic and is therefore less precise.&lt;/p&gt;
&lt;p&gt;Create a query for one exact alert definition:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;compositeOperator&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;AND&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;activeOnly&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;alertDefinitionId&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;11111111-2222-3333-4444-555555555555&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Save that JSON as &lt;code&gt;${OPS_WORK_DIR}/alert-candidates.json&lt;/code&gt;, replace the example UUID, and query the first page:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl --fail-with-body &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --request POST &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_FQDN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/suite-api/api/alerts/query?page=0&amp;amp;pageSize=1000&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/authorization.header&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header &lt;span class="s1"&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --data-binary @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-candidates.json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --output &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-page-0.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Review the count and identifying fields before doing anything destructive:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq &lt;span class="s1"&gt;&amp;#39;.pageInfo, [.alerts[] | {alertId, alertDefinitionId, alertDefinitionName, resourceId, status}]&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-page-0.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If &lt;code&gt;pageInfo.totalCount&lt;/code&gt; exceeds the number returned, query every remaining page and review it. Keep batches small enough to audit. Never replace the query with &lt;code&gt;{}&lt;/code&gt; merely to avoid pagination.&lt;/p&gt;
&lt;h2 id="step-2-build-and-review-the-exact-cancel-list"&gt;Step 2: Build and Review the Exact Cancel List&lt;/h2&gt;
&lt;p&gt;The modify-alerts endpoint does &lt;strong&gt;not&lt;/strong&gt; accept an &lt;code&gt;AlertQuery&lt;/code&gt;. It requires a &lt;code&gt;uuid-values&lt;/code&gt; body whose only required field is the &lt;code&gt;uuids&lt;/code&gt; array.&lt;/p&gt;
&lt;p&gt;After reviewing the first batch, build the body from its returned IDs:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq &lt;span class="s1"&gt;&amp;#39;{uuids: [.alerts[].alertId]}&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-page-0.json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-cancel.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq . &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-cancel.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Record the approved count and retain the reviewed ID list with the change record.&lt;/p&gt;
&lt;h2 id="step-3-cancel-only-those-ids"&gt;Step 3: Cancel Only Those IDs&lt;/h2&gt;
&lt;p&gt;Cancel the exact list with &lt;code&gt;POST /suite-api/api/alerts?action=cancel&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl --fail-with-body &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --request POST &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_FQDN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/suite-api/api/alerts?action=cancel&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/authorization.header&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header &lt;span class="s1"&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --data-binary @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-cancel.json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --output &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-cancel-response.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq &lt;span class="s1"&gt;&amp;#39;[.alerts[] | {alertId, status, cancelTimeUTC}]&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-cancel-response.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Canceling changes alert state; it does not delete the alert record.&lt;/p&gt;
&lt;h2 id="step-4-build-the-targeted-delete-query"&gt;Step 4: Build the Targeted Delete Query&lt;/h2&gt;
&lt;p&gt;The delete endpoint accepts a direct &lt;code&gt;AlertQuery&lt;/code&gt;, not an &lt;code&gt;alert-query&lt;/code&gt; wrapper. Reuse the reviewed IDs and require &lt;code&gt;CANCELED&lt;/code&gt; status:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq &lt;span class="s1"&gt;&amp;#39;{
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; compositeOperator: &amp;#34;AND&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; alertStatus: [&amp;#34;CANCELED&amp;#34;],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; alertId: .uuids
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; }&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-cancel.json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-delete.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq . &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-delete.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run the same body through the read-only query endpoint first:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl --fail-with-body &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --request POST &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_FQDN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/suite-api/api/alerts/query?page=0&amp;amp;pageSize=1000&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/authorization.header&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header &lt;span class="s1"&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --data-binary @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-delete.json&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --output &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-delete-preview.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;jq &lt;span class="s1"&gt;&amp;#39;.pageInfo, [.alerts[] | {alertId, alertDefinitionName, resourceId, status}]&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alert-delete-preview.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Stop if the preview contains an unexpected ID, definition, resource, or status. The preview count should match the reviewed cancel list for that batch.&lt;/p&gt;
&lt;h2 id="step-5-delete-and-verify"&gt;Step 5: Delete and Verify&lt;/h2&gt;
&lt;p&gt;Delete the targeted canceled alerts with &lt;code&gt;DELETE /suite-api/api/alerts/bulk&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl --fail-with-body &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --request DELETE &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;https://&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_FQDN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/suite-api/api/alerts/bulk&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/authorization.header&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --header &lt;span class="s1"&gt;&amp;#39;Content-Type: application/json&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --data-binary @&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/alerts-to-delete.json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The documented success response is HTTP 204 and indicates that the deletion was started. It does not return a deleted-object list. Query the exact IDs again until the API returns no matching alerts, and confirm the expected result in the UI and audit history before closing the change.&lt;/p&gt;
&lt;p&gt;Delete the temporary authorization header immediately. Retain or securely remove the reviewed JSON files according to the change-record policy, then remove the directory when it is empty:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rm -f -- &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;OPS_WORK_DIR&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;/authorization.header&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;unset&lt;/span&gt; OPS_TOKEN
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# After retaining or deleting the reviewed JSON files:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rmdir -- &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;$OPS_WORK_DIR&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;unset&lt;/span&gt; OPS_WORK_DIR
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="requests-to-avoid"&gt;Requests to Avoid&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Do not send an empty &lt;code&gt;{}&lt;/code&gt; query to the bulk-delete endpoint.&lt;/li&gt;
&lt;li&gt;Do not use only &lt;code&gt;alertStatus: [&amp;quot;CANCELED&amp;quot;]&lt;/code&gt; unless the approved scope is explicitly every canceled alert in the environment.&lt;/li&gt;
&lt;li&gt;Do not put an &lt;code&gt;AlertQuery&lt;/code&gt; inside an &lt;code&gt;alert-query&lt;/code&gt; wrapper; the endpoint expects the query fields at the JSON root.&lt;/li&gt;
&lt;li&gt;Do not send alert IDs directly to &lt;code&gt;DELETE /suite-api/api/alerts&lt;/code&gt;; the documented bulk deletion route is &lt;code&gt;/suite-api/api/alerts/bulk&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Do not assume the first 1,000 results are the complete set.&lt;/li&gt;
&lt;li&gt;Do not schedule destructive cleanup until the query, count limits, audit logging, and failure handling have been tested with a small batch.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.broadcom.com/xapis/vcf-operations-api/latest/suite-api/api/alerts/query/post/"&gt;VCF Operations API: Query Alert&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.broadcom.com/xapis/vcf-operations-api/latest/suite-api/api/alerts/post/"&gt;VCF Operations API: Modify Alerts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.broadcom.com/xapis/vcf-operations-api/latest/suite-api/api/alerts/bulk/delete/"&gt;VCF Operations API: Delete Canceled Alerts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.broadcom.com/xapis/vcf-operations-api/latest/data-structures/alert-query/"&gt;VCF Operations API: AlertQuery schema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.broadcom.com/xapis/vcf-operations-api/latest/api-security-schema/"&gt;VCF Operations API authentication&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Using a 90-Day Planning Horizon Correctly in VCF Operations</title><link>https://cosmin.us/using-a-90-day-planning-horizon-correctly-in-vcf-operations/</link><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/using-a-90-day-planning-horizon-correctly-in-vcf-operations/</guid><description>&lt;p&gt;A 90-day capacity goal can describe three different things in VCF Operations: past demand used by the projection, future warning lead time, or the future period considered by VM rightsizing. They are controlled separately.&lt;/p&gt;
&lt;p&gt;This article replaces &lt;a href="https://cosmin.us/configuring-vcf-operations-9-capacity-calculations-to-consider-90-days-of-usage/"&gt;the earlier 90-day capacity procedure&lt;/a&gt;, which incorrectly treated Time Remaining thresholds as a historical lookback setting.&lt;/p&gt;
&lt;h2 id="the-three-meanings-of-90-days"&gt;The Three Meanings of 90 Days&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Planning question&lt;/th&gt;
					&lt;th&gt;Relevant control&lt;/th&gt;
					&lt;th&gt;What it does not control&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Should the forecast consider up to 90 days of past demand?&lt;/td&gt;
					&lt;td&gt;Historical Data window, if that value is available in the installed build&lt;/td&gt;
					&lt;td&gt;Alert severity or procurement lead time&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Should an alert become critical when exhaustion is projected within 90 days?&lt;/td&gt;
					&lt;td&gt;Time Remaining criticality thresholds&lt;/td&gt;
					&lt;td&gt;Historical lookback&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Should Recommended Size cover demand projected across a 90-day future horizon?&lt;/td&gt;
					&lt;td&gt;The applicable Time Remaining warning/green threshold plus the documented 30-day extension&lt;/td&gt;
					&lt;td&gt;Past-data retention&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Changing one row does not configure the other two.&lt;/p&gt;</description><content:encoded>&lt;p&gt;A 90-day capacity goal can describe three different things in VCF Operations: past demand used by the projection, future warning lead time, or the future period considered by VM rightsizing. They are controlled separately.&lt;/p&gt;
&lt;p&gt;This article replaces &lt;a href="https://cosmin.us/configuring-vcf-operations-9-capacity-calculations-to-consider-90-days-of-usage/"&gt;the earlier 90-day capacity procedure&lt;/a&gt;, which incorrectly treated Time Remaining thresholds as a historical lookback setting.&lt;/p&gt;
&lt;h2 id="the-three-meanings-of-90-days"&gt;The Three Meanings of 90 Days&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Planning question&lt;/th&gt;
					&lt;th&gt;Relevant control&lt;/th&gt;
					&lt;th&gt;What it does not control&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Should the forecast consider up to 90 days of past demand?&lt;/td&gt;
					&lt;td&gt;Historical Data window, if that value is available in the installed build&lt;/td&gt;
					&lt;td&gt;Alert severity or procurement lead time&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Should an alert become critical when exhaustion is projected within 90 days?&lt;/td&gt;
					&lt;td&gt;Time Remaining criticality thresholds&lt;/td&gt;
					&lt;td&gt;Historical lookback&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Should Recommended Size cover demand projected across a 90-day future horizon?&lt;/td&gt;
					&lt;td&gt;The applicable Time Remaining warning/green threshold plus the documented 30-day extension&lt;/td&gt;
					&lt;td&gt;Past-data retention&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Changing one row does not configure the other two.&lt;/p&gt;
&lt;h2 id="what-the-capacity-engine-actually-does"&gt;What the Capacity Engine Actually Does&lt;/h2&gt;
&lt;p&gt;VCF Operations forecasts demand rather than simply averaging a fixed block of historical utilization. Current Broadcom guidance describes these behaviors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recent samples receive more weight through exponential decay.&lt;/li&gt;
&lt;li&gt;Conservative risk uses the upper bound of the projection range.&lt;/li&gt;
&lt;li&gt;Aggressive risk uses the mean of the upper and lower projection bounds.&lt;/li&gt;
&lt;li&gt;Peak-focused mode incorporates peaks detected in historical demand and can be combined with either risk posture.&lt;/li&gt;
&lt;li&gt;Business Hours limits the demand samples used for projection to the configured hours; it does not merely give those hours extra weight.&lt;/li&gt;
&lt;li&gt;Capacity Remaining is based on a short forward projection, while Time Remaining estimates when demand will intersect usable capacity.&lt;/li&gt;
&lt;li&gt;vSphere HA admission-control reservations reduce usable cluster capacity and can therefore change the result even when current utilization appears low.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These settings change the model&amp;rsquo;s behavior. None of them, by itself, means “use exactly 90 days of history.”&lt;/p&gt;
&lt;h2 id="before-changing-a-policy"&gt;Before Changing a Policy&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Identify the active policy on the exact cluster, VM group, or object you are evaluating.&lt;/li&gt;
&lt;li&gt;Record the existing Capacity settings and take screenshots for the change record.&lt;/li&gt;
&lt;li&gt;Confirm whether the object is using the Demand model, the optional Allocation model, or both. Do not add arbitrary allocation ratios to hide a Demand-based alert.&lt;/li&gt;
&lt;li&gt;Check vSphere HA admission control before interpreting usable capacity as missing physical capacity.&lt;/li&gt;
&lt;li&gt;Decide which 90-day outcome you actually need: historical evidence, alert lead time, VM sizing horizon, or a documented combination.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Clone an inherited policy when you need a separate production, non-production, cluster, or VM posture. Broadcom recommends separate VM policies when rightsizing settings should differ from higher-level capacity policies.&lt;/p&gt;
&lt;h2 id="goal-1-use-a-90-day-future-alert-lead-time"&gt;Goal 1: Use a 90-Day Future Alert Lead Time&lt;/h2&gt;
&lt;p&gt;If procurement must begin when capacity is projected to run out within a quarter, configure Time Remaining severity thresholds for that operational lead time.&lt;/p&gt;
&lt;p&gt;For example, an organization might choose warning at 120 days and critical at 90 days so the earlier warning leaves a 30-day intake buffer. Those numbers are governance choices, not Broadcom defaults. Keep the thresholds in a logical order, document who owns each severity, and verify how the installed version labels warning, immediate, and critical.&lt;/p&gt;
&lt;p&gt;This configuration means “alert us based on a future exhaustion date.” It does &lt;strong&gt;not&lt;/strong&gt; mean the forecast reads only the last 90 days.&lt;/p&gt;
&lt;h2 id="goal-2-use-a-90-day-vm-recommended-size-horizon"&gt;Goal 2: Use a 90-Day VM Recommended Size Horizon&lt;/h2&gt;
&lt;p&gt;Broadcom&amp;rsquo;s current rightsizing explanation states that Recommended Size considers the peak projected demand from now through 30 days beyond the Time Remaining threshold used by the policy. Its example uses a 30-day warning threshold and therefore produces a 60-day sizing horizon.&lt;/p&gt;
&lt;p&gt;Under that documented rule, a 90-day Recommended Size horizon corresponds to a 60-day applicable threshold plus the 30-day extension:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;60-day policy threshold + 30-day extension = 90-day sizing horizon
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Do not set the threshold to 90 days and call the sizing horizon 90 days; that would extend the evaluated period to 120 days under the same rule. Because UI wording can differ by release, verify the resulting projection on a VM&amp;rsquo;s Capacity tab before applying the policy broadly.&lt;/p&gt;
&lt;p&gt;Use a VM-specific policy if clusters need different Time Remaining severities. Select Conservative, Aggressive, and Peak Focused according to workload risk and peak behavior, not merely to force a preferred recommendation.&lt;/p&gt;
&lt;h2 id="goal-3-consider-90-days-of-historical-demand"&gt;Goal 3: Consider 90 Days of Historical Demand&lt;/h2&gt;
&lt;p&gt;The Historical Data setting is the control associated with the model&amp;rsquo;s past-data window. Broadcom KB 437777 explicitly treats it separately from Time Remaining risk and gives an example of temporarily reducing a 30-day window to one day when an obsolete spike is distorting a forecast.&lt;/p&gt;
&lt;p&gt;To request a 90-day historical window:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to &lt;strong&gt;Infrastructure Operations &amp;gt; Configurations &amp;gt; Policy Definition&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Edit or clone the policy that is active on the intended objects.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;Capacity&lt;/strong&gt; and unlock the inherited Historical Data setting if necessary.&lt;/li&gt;
&lt;li&gt;Select 90 days only if the installed VCF Operations build exposes 90 days as a supported value.&lt;/li&gt;
&lt;li&gt;Save the policy, confirm its object assignment and precedence, and record the effective value.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If the installed build does not offer a 90-day value, do not substitute a 90-day Time Remaining threshold and describe it as a lookback. Use 90-day historical charts or reports as supporting evidence, and confirm the supported forecasting-window choices for that release with Broadcom Support.&lt;/p&gt;
&lt;p&gt;Historical-data retention is also separate. Retaining a metric for reporting does not guarantee that every retained sample is used by the current projection.&lt;/p&gt;
&lt;h2 id="correcting-anomalous-history"&gt;Correcting Anomalous History&lt;/h2&gt;
&lt;p&gt;Use the Capacity view&amp;rsquo;s &lt;strong&gt;Reset&lt;/strong&gt; control when a known change or anomaly makes the current projection unrepresentative. Broadcom documents two relevant behaviors:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Selecting a new projection start date causes forecasting to use data from that point forward.&lt;/li&gt;
&lt;li&gt;Selecting a start and end time for exclusion omits that interval from capacity planning and forecasting.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A reset does not delete the underlying historical metric data. Charts, reports, and retained time-series data remain available.&lt;/p&gt;
&lt;p&gt;Do not assume an object maintenance schedule is a substitute for this exclusion workflow. Maintenance behavior is designed around monitoring and alert handling; use the capacity engine&amp;rsquo;s own reset or exclusion controls when the goal is to change forecasting input.&lt;/p&gt;
&lt;h2 id="recalculate-and-validate"&gt;Recalculate and Validate&lt;/h2&gt;
&lt;p&gt;Capacity forecasting runs periodically, so a policy change may not appear after one five-minute collection cycle. Broadcom KB 437777 describes two supported validation paths:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;For a global recalculation, go to &lt;strong&gt;Administration &amp;gt; Control Panel &amp;gt; Dynamic Thresholds&lt;/strong&gt; and start recalculation during an approved window.&lt;/li&gt;
&lt;li&gt;For a specific cluster, open its &lt;strong&gt;Capacity&lt;/strong&gt; tab and use &lt;strong&gt;Reset&lt;/strong&gt; only when changing the projection baseline is intended.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then validate all of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The expected policy is active on the target object.&lt;/li&gt;
&lt;li&gt;The effective Historical Data value matches the approved setting.&lt;/li&gt;
&lt;li&gt;Time Remaining severity changes at the intended future thresholds.&lt;/li&gt;
&lt;li&gt;The Capacity chart shows the expected projection start point and any excluded interval.&lt;/li&gt;
&lt;li&gt;VM Recommended Size uses the intended future horizon.&lt;/li&gt;
&lt;li&gt;HA reservation and capacity buffers match the actual resilience design.&lt;/li&gt;
&lt;li&gt;Demand and Allocation models are interpreted separately, with the more constrained model understood.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Test on a small object group before broad assignment. Keep the before-and-after values with the change record so a surprising forecast can be traced to a specific policy decision.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/437777/critical-cpu-capacity-alerts-despite-low.html"&gt;Broadcom KB 437777: Critical CPU capacity alerts despite low utilization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blogs.vmware.com/cloud-foundation/2025/08/12/vmware-cloud-foundation-helps-you-optimally-size-vms-and-keep-your-infrastructure-and-workloads-running-smoothly/"&gt;Broadcom VCF Blog: Rightsizing VMs with VMware Cloud Foundation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Deploying a VCF 9.1 Fleet with the VCF Installer</title><link>https://cosmin.us/deploying-a-vcf-9-1-fleet-with-the-vmware-cloud-foundation-installer-step-by-step-instructions/</link><pubDate>Fri, 07 Aug 2026 09:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/deploying-a-vcf-9-1-fleet-with-the-vmware-cloud-foundation-installer-step-by-step-instructions/</guid><description>&lt;p&gt;Last year, when VCF 9.0 shipped, I covered the VCF Installer in three posts: &lt;a href="https://cosmin.us/deploying-the-vmware-cloud-foundation-installer-appliance-step-by-step-instructions/"&gt;deploying the appliance&lt;/a&gt;, &lt;a href="https://cosmin.us/configuring-the-vmware-cloud-foundation-installer-appliance-step-by-step-instructions/"&gt;configuring it&lt;/a&gt;, and &lt;a href="https://cosmin.us/deploy-a-vcf-9-instance-in-an-existing-vcf-fleet/"&gt;deploying a VCF 9 instance&lt;/a&gt;. With VCF 9.1 &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes.html"&gt;generally available since May 12, 2026&lt;/a&gt;, it was time to run the whole flow again in the lab, and enough has changed that it earns a fresh walkthrough. This post covers the complete path in one go: downloading and deploying the 9.1 installer appliance, connecting the depot, downloading binaries, and deploying a new VCF fleet on top of an existing vCenter. I used the 9.1.0.0400 installer from the July 2026 refresh.&lt;/p&gt;</description><content:encoded>&lt;p&gt;Last year, when VCF 9.0 shipped, I covered the VCF Installer in three posts: &lt;a href="https://cosmin.us/deploying-the-vmware-cloud-foundation-installer-appliance-step-by-step-instructions/"&gt;deploying the appliance&lt;/a&gt;, &lt;a href="https://cosmin.us/configuring-the-vmware-cloud-foundation-installer-appliance-step-by-step-instructions/"&gt;configuring it&lt;/a&gt;, and &lt;a href="https://cosmin.us/deploy-a-vcf-9-instance-in-an-existing-vcf-fleet/"&gt;deploying a VCF 9 instance&lt;/a&gt;. With VCF 9.1 &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes.html"&gt;generally available since May 12, 2026&lt;/a&gt;, it was time to run the whole flow again in the lab, and enough has changed that it earns a fresh walkthrough. This post covers the complete path in one go: downloading and deploying the 9.1 installer appliance, connecting the depot, downloading binaries, and deploying a new VCF fleet on top of an existing vCenter. I used the 9.1.0.0400 installer from the July 2026 refresh.&lt;/p&gt;
&lt;h2 id="what-changed-since-the-90-posts"&gt;What changed since the 9.0 posts&lt;/h2&gt;
&lt;p&gt;The overall shape is the same (deploy the OVA, connect a depot, download binaries, run the deployment wizard) but 9.1 moves a few important pieces, per the official &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/what-s-new/whats-new-installer.html"&gt;What&amp;rsquo;s New for the VCF Installer&lt;/a&gt; and the depot KBs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The download token is gone.&lt;/strong&gt; Depot authentication now uses a &lt;strong&gt;Download Service ID + Activation Code&lt;/strong&gt; obtained from the VCF Business Services console. The token flow from my 9.0 configuration post no longer applies. See &lt;a href="https://knowledge.broadcom.com/external/article/443647/download-token-has-been-replaced-by-acti.html"&gt;KB 443647&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VCF Management Services are deployed by default.&lt;/strong&gt; The installer now provisions the VCF services runtime, fleet lifecycle, identity broker, software depot, Salt RaaS, telemetry, and the centralized &lt;strong&gt;License Server&lt;/strong&gt; as part of a new deployment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrated planning workflow.&lt;/strong&gt; The wizard generates CPU, memory, storage, VLAN, and FQDN requirements up front and validates your infrastructure against them, including a &lt;strong&gt;Pre-fill generated FQDNs&lt;/strong&gt; button.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto-generated passwords.&lt;/strong&gt; The installer can generate the component passwords for you, retrievable after deployment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dual-stack support.&lt;/strong&gt; The appliance OVA now asks for an IP Address Version (IPv4 only, or IPv4 and IPv6), and existing dual-stack environments are supported, though wizard-driven deployments on an existing vCenter remain IPv4-only; dual-stack goes through a JSON spec.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lowercase FQDNs are now formalized.&lt;/strong&gt; The 9.1 planning docs state &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/planning-and-preparation/vcf-components-fqdns-and-ip-addresses/first-vcf-instance-fqdns-and-ip-addresses.html"&gt;do not use capital letters in the FQDN&lt;/a&gt;, and uppercase component FQDNs are a documented deployment-failure &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/known-issues/vcf-installer-91-known-issues.html"&gt;known issue&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="download-the-vcf-installer"&gt;Download the VCF Installer&lt;/h2&gt;
&lt;p&gt;The appliance OVA comes from the Broadcom Support Portal at &lt;a href="https://support.broadcom.com/web/ecx"&gt;support.broadcom.com&lt;/a&gt;: select the &lt;strong&gt;VMware Cloud Foundations&lt;/strong&gt; division, go to &lt;strong&gt;My Downloads&lt;/strong&gt;, and pick &lt;strong&gt;VMware Cloud Foundation 9&lt;/strong&gt; with your target release. If the portal navigation fights you, &lt;a href="https://knowledge.broadcom.com/external/article/401497/vmware-vcf-90-or-vvf-90-downloads-in-the.html"&gt;KB 401497&lt;/a&gt; walks through it.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the release. I grabbed &lt;strong&gt;9.1.0.0400&lt;/strong&gt; from the July 2026 patch wave&lt;/li&gt;
&lt;li&gt;Agree to the Terms and Conditions&lt;/li&gt;
&lt;li&gt;Download &lt;strong&gt;VCF-SDDC-Manager-Appliance-9.1.0.0400.25570100.ova&lt;/strong&gt; (2.28 GB) and verify the checksum&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/001-capture-001.webp" alt="Broadcom support portal showing the VCF Installer 9.1.0.0400 download page with the VCF-SDDC-Manager-Appliance OVA file, build number 25570100, and its SHA2 and MD5 checksums." width="1649" height="588" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="deploy-the-vcf-installer-appliance"&gt;Deploy the VCF Installer appliance&lt;/h2&gt;
&lt;p&gt;Sizing is unchanged from 9.0: 4 vCPUs, 16 GB RAM, and 914 GB storage (thin provisioning keeps that honest), per the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/preparing-your-environment/deploy-the-vmware-cloud-foundation-installer-appliance.html"&gt;official deployment page&lt;/a&gt;. The docs describe two placement options: on one of the ESX hosts that will form the management domain (the appliance is converted into SDDC Manager during deployment), or outside the management infrastructure entirely, where one appliance can deploy multiple platforms. As in the 9.0 post, I am deploying the OVA through an existing vCenter.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Log in to vCenter with a user that can deploy an OVF&lt;/li&gt;
&lt;li&gt;Right click the cluster and click &lt;strong&gt;Deploy OVF Template&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/002-capture-002.webp" alt="vSphere Client actions menu on cluster mgmt-cluster-01 showing the Deploy OVF Template option." width="488" height="256" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select &lt;strong&gt;Local file&lt;/strong&gt; and upload the installer OVA&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/003-capture-003.webp" alt="Deploy OVF Template wizard step 1 with the local file VCF-SDDC-Manager-Appliance-9.1.0.0400.25570100.ova selected." width="1148" height="610" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Give the appliance a name&lt;/li&gt;
&lt;li&gt;Select a deployment location&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/004-capture-004.webp" alt="Deploy OVF Template wizard step 2 with the VM name set and mgmt-datacenter-01 selected as the target location under vcenter-mgmt.vcf.sddc.lab." width="1143" height="607" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select a compute resource and wait for the compatibility checks&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/005-capture-005.webp" alt="Deploy OVF Template wizard step 3 with mgmt-cluster-01 selected and compatibility checks succeeded." width="1143" height="601" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Review the deployment details, note the 914 GB thick footprint vs 4.2 GB thin&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/006-capture-006.webp" alt="Review details step of the Deploy OVF Template wizard showing VMware VCF SDDC Manager Appliance version 9.1.0.0400." width="1141" height="609" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Read and accept the license agreements&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/007-capture-007.webp" alt="License agreements step of the Deploy OVF Template wizard with the Broadcom Foundation Agreement accepted." width="1144" height="600" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select a datastore for the deployment&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/008-capture-008.webp" alt="Select storage step of the Deploy OVF Template wizard with the vcf-vsan datastore selected and compatibility checks succeeded." width="1149" height="608" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the destination network: the appliance needs to reach the ESX hosts, the VM management network, DNS, and NTP&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/009-capture-009.webp" alt="Select networks step of the Deploy OVF Template wizard mapping Network 1 to the sddc-vds01-mgmt port group with static IPv4 allocation." width="1143" height="605" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fill in the template customization: root and local user passwords (minimum 15 characters with the usual complexity rules; the local password is what you will use for &lt;strong&gt;admin@local&lt;/strong&gt; in the UI and &lt;strong&gt;vcf&lt;/strong&gt; over SSH), hostname, networking, DNS, and NTP&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is also where 9.1 differs from 9.0: the networking section now starts with an &lt;strong&gt;IP Address Version&lt;/strong&gt; selector, with IPv6 address, prefix length, and gateway fields if you go dual-stack.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/010-capture-010.webp" alt="Customize template step of the Deploy OVF Template wizard with masked root and local user password fields for the VCF Installer appliance." width="1142" height="610" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Review the summary&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Finish&lt;/strong&gt; and wait for the deployment to complete&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/011-capture-011.webp" alt="Ready to complete summary of the Deploy OVF Template wizard for the VCF-SDDC-Manager-Appliance-9.1.0.0400.25570100 OVA." width="1146" height="608" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="log-in-and-connect-the-depot"&gt;Log in and connect the depot&lt;/h2&gt;
&lt;p&gt;Once the appliance is up, navigate to https://ip_address/ui or https://hostname/ui. Same as 9.0, the services take a few minutes to start after first boot.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;For username use &lt;strong&gt;admin@local&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Enter the local user password from the OVA deployment&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Log in&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/012-capture-012.webp" alt="VMware Cloud Foundation Installer login page with admin@local entered as the username." width="577" height="668" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Get Started page opens with the Download Binaries card flagging &lt;strong&gt;No Depot Connection&lt;/strong&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Depot Settings and Binary Management&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/013-capture-013.webp" alt="The VCF Installer Get Started page with the Download Binaries card showing a No Depot Connection warning." width="586" height="327" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Both depot types are available: online (direct or via proxy) and offline, fed by the VCF Download Tool, only one can be connected at a time. For air-gapped environments the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/preparing-your-environment/downloading-binaries-to-the-vcf-installer-appliance/download-install-binaries-to-an-offline-depot.html"&gt;official offline depot procedure&lt;/a&gt; covers the Download Tool flow; William Lam also documented the new &lt;a href="https://williamlam.com/2026/05/vcf-9-1-new-http-offline-depot-support-for-vcf-installer-fleet-depot-service.html"&gt;HTTP offline depot support in 9.1&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Configure&lt;/strong&gt; under the &lt;strong&gt;Online Depot&lt;/strong&gt; tile&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/014-capture-014.webp" alt="Depot settings and binary management page with unconfigured Online Depot and Offline Depot tiles." width="1465" height="650" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Here is the big change from 9.0: instead of pasting a download token, the dialog shows the appliance&amp;rsquo;s &lt;strong&gt;Download Service ID&lt;/strong&gt; (the docs and KB call it the Software Depot ID). Take that ID to the BSC portal at &lt;a href="https://vcf.broadcom.com"&gt;vcf.broadcom.com&lt;/a&gt;, register it, and you get an &lt;strong&gt;Activation Code&lt;/strong&gt; back; the full flow is in the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/preparing-your-environment/downloading-binaries-to-the-vcf-installer-appliance/connect-to-an-online-depot-to-download-binaries.html"&gt;official depot procedure&lt;/a&gt; and &lt;a href="https://knowledge.broadcom.com/external/article/443647/download-token-has-been-replaced-by-acti.html"&gt;KB 443647&lt;/a&gt;. The download token from &lt;a href="https://knowledge.broadcom.com/external/article/390098"&gt;KB 390098&lt;/a&gt; that we used in the 9.0 post is not used here anymore.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy the &lt;strong&gt;Download Service ID&lt;/strong&gt; and register it in the BSC portal to obtain the Activation Code&lt;/li&gt;
&lt;li&gt;Enter the &lt;strong&gt;Activation Code&lt;/strong&gt; (enable the proxy toggle if you need one)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Authenticate&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/015-capture-015.webp" alt="The Online Depot dialog showing the Download Service ID with the Activation Code field to be filled from the BSC portal." width="853" height="402" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="download-the-binaries"&gt;Download the binaries&lt;/h2&gt;
&lt;p&gt;With the depot connected, the Binary Management section lists everything available for the release.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirm the Online Depot tile shows &lt;strong&gt;Depot connection active&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;Binary Management&lt;/strong&gt;, select the product and version, &lt;strong&gt;VMware Cloud Foundation 9.1.0.0&lt;/strong&gt; in my case&lt;/li&gt;
&lt;li&gt;Select the binaries and click &lt;strong&gt;Download&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/016-capture-016.webp" alt="Depot settings page with the online depot connection active and the VMware Cloud Foundation 9.1.0.0 binaries listed as not downloaded." width="1434" height="614" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The component list is a good illustration of how 9.1 patch waves work: the installer pulls the latest patch of each component rather than a single uniform build: SDDC Manager 9.1.0.0400, NSX 9.1.0.0200, VCF Automation 9.1.0.0200, VCF Operations 9.1.0.0400, and so on. William Lam has a good write-up of &lt;a href="https://williamlam.com/2026/06/vcf-9-1-quick-tip-understanding-vcf-installer-default-behavior-for-vcf-patch-releases.html"&gt;this default behavior&lt;/a&gt; if you need to pin earlier versions. Also note the sizes, VCF services runtime alone is 17.42 GB and VCF Automation 14.95 GB, so give the downloads some time.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/017-capture-017.webp" alt="Binary Management table with all VMware Cloud Foundation 9.1 components showing download status Success." width="1406" height="582" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="start-the-deployment-wizard"&gt;Start the Deployment Wizard&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Return Home&lt;/strong&gt;: the Deploy card sits next to Download Binaries. Progress in the wizard is saved locally in the browser after each step, so you can safely step away&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/018-capture-018.webp" alt="The VCF Installer home page with the Download Binaries and Deploy cards side by side." width="864" height="252" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Deployment Wizard&lt;/strong&gt; and select &lt;strong&gt;VMware Cloud Foundation&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The dropdown also offers &lt;strong&gt;VMware vSphere Foundation&lt;/strong&gt;: the 9.1 installer deploys VVF through the same wizard framework, with a reduced flow (no NSX Manager or SDDC Manager steps). That is a post for another day; everything below follows the VCF path.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/019-capture-019.webp" alt="The Deploy card with the Deployment Wizard dropdown expanded showing VMware Cloud Foundation and VMware vSphere Foundation options." width="425" height="296" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="deploy-vmware-cloud-foundation"&gt;Deploy VMware Cloud Foundation&lt;/h2&gt;
&lt;p&gt;The wizard runs through four phases: Introduction, Plan, Prepare, Deploy; the official procedure is &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/deploy-a-new-vcf-fleet-or-a-new-vcf-instance.html"&gt;Start a New VCF Fleet or a New VCF Instance Deployment&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id="introduction"&gt;Introduction&lt;/h3&gt;
&lt;p&gt;The About page is worth an actual read: it diagrams the VCF fleet concept and calls out that &lt;strong&gt;VCF 9.1 introduces VCF management services&lt;/strong&gt; inside the management domain, next to vCenter, NSX Manager, and SDDC Manager. The installer deploys the management domain; workload domains come later from VCF Operations.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/032-capture-032.webp" alt="The VCF Installer deployment wizard introduction page showing the VCF fleet diagram with VCF Operations, VCF Automation, and the first VCF instance’s management domain." width="1496" height="658" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Three deployment paths are offered: a new VCF fleet, a new VCF instance joining an existing fleet&amp;rsquo;s VCF Operations, or deploying deferred components. Same as in my 9.0 fleet post, this lab is a fresh start.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select &lt;strong&gt;Deploy a new VCF fleet&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/033-capture-033.webp" alt="The Deployment Paths step with Deploy a new VCF fleet selected over the new VCF Instance and deferred components options." width="1478" height="386" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="plan"&gt;Plan&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Check &lt;strong&gt;I have an existing vCenter instance&lt;/strong&gt;: the wizard will collect and validate the details later&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can also flag an existing VCF Operations 9.1 instance or an NSX-registered vCenter here. VCF Automation is no longer a hard requirement at deployment time; it can be connected or deployed later as a day-N operation.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/034-capture-034.webp" alt="The Plan phase Existing Component step with the existing vCenter checkbox selected." width="1494" height="701" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select the &lt;strong&gt;Deployment model&lt;/strong&gt;. I went with &lt;strong&gt;Simple&lt;/strong&gt;, which locks the size to &lt;strong&gt;Small&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Review the component sizing table and click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The sizing table is part of the new integrated planning workflow, and it is worth pausing on: VCF management services alone ask for 40 vCPUs, 82 GB RAM, and 3 TB of disk in this smallest configuration.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/035-capture-035.webp" alt="The Size Options step with the Simple deployment model and Small size selected, showing per-component vCPU, RAM, and disk requirements." width="1492" height="659" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Review the &lt;strong&gt;Network Options&lt;/strong&gt;: by default VCF Operations, VCF Automation, and the management services land on the VM management network, and a distributed Transit Gateway is configured to make the domain VPC-ready&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt; (or &lt;strong&gt;Customize&lt;/strong&gt; if you need separate networks)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;One caveat straight from the wizard: with an existing vCenter the wizard supports IPv4-only; dual-stack deployments have to go through a JSON spec.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/036-capture-036.webp" alt="The Network Options step showing the default network configuration with the Customize button." width="1488" height="661" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Review Prerequisites step is the payoff of the planning workflow: capacity totals (2 hosts, 84 vCPUs, 254 GB RAM, 5,244 GB disk for my configuration), VLAN requirements (none for this path), and the exact FQDN and IP requirements: 12 IPs for the management services pool, 5 for VCF Automation, plus FQDNs for Cloud proxy, NSX Manager, VCF Operations, and the License Server. The &lt;strong&gt;Pre-fill generated FQDNs in wizard&lt;/strong&gt; button carries these into the later steps. Remember: lowercase only, forward and reverse resolvable.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create the DNS records and reserve the IP ranges&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/037-capture-037.webp" alt="The Review Prerequisites step listing capacity totals, VLAN requirements, and the FQDNs and IP address pools needed for the deployment." width="1487" height="656" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="prepare"&gt;Prepare&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Select the &lt;strong&gt;Version&lt;/strong&gt;: 9.1.0.0, with the latest downloaded patch of each component applied automatically&lt;/li&gt;
&lt;li&gt;Name the VCF instance and the management domain&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/038-capture-038.webp" alt="The Prepare phase General Information step with version 9.1.0.0, instance name instance-01, and management domain name mgmt." width="1493" height="660" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The VCF Management step collects the FQDNs for VCF Operations, the License Server, and the fleet, instance, and services-runtime components; this is where the pre-filled FQDNs from the Plan phase save the typing.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Enter the details of the existing vCenter: FQDN, administrator, and root credentials&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Connect&lt;/strong&gt;: the cluster running the vCenter appliance is selected as the deployment destination&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/039-capture-039.webp" alt="The Existing vCenter step with fields for the vCenter FQDN, administrator credentials, and root password and the Connect button." width="1492" height="656" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Provide the IP pools, a single IPv4 range works for both: minimum 12 addresses for the VCF Management Services pool and 5 for the VCF Automation pool&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/040-capture-040.webp" alt="The Networks step with the VCF Management Services and VCF Automation IP pool ranges to be filled in." width="1492" height="650" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Enter the NSX Manager cluster and appliance FQDNs&lt;/li&gt;
&lt;li&gt;Decide on the overlay networking mode&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The &lt;strong&gt;Configure overlay using ESX Management VMkernel Networking&lt;/strong&gt; toggle is one of my favorite quality-of-life items in 9.x: NSX 9 can run overlay over the ESX management VMkernel network without a VLAN-backed transport configuration. Unchecked, NSX is configured in VLAN transport zone mode instead.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/041-capture-041.webp" alt="The NSX Manager step with cluster and appliance FQDN fields and the overlay via ESX Management VMkernel Networking toggle enabled." width="1496" height="663" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Enter the SDDC Manager FQDN and the installer appliance password&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The info banner explains why the appliance password is requested: when the installer appliance runs on one of the management domain hosts, it is converted into the SDDC Manager appliance during deployment: the same appliance transition the official docs describe, and the reason the prerequisites page noted the SDDC Manager FQDN is optional in that placement.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/042-capture-042.webp" alt="The SDDC Manager step with the FQDN filled in and the info banner explaining the installer appliance is converted into SDDC Manager during deployment." width="1498" height="658" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h3 id="deploy"&gt;Deploy&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Review the summary, every section from the wizard is expandable here&lt;/li&gt;
&lt;li&gt;Optionally click &lt;strong&gt;Download JSON Spec&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The JSON preview tab and the downloadable spec make the whole deployment repeatable: the same file drives API-based deployments, and it is the vehicle for the options the wizard does not expose, like dual-stack networking or an alternative internal cluster CIDR.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/043-capture-043.webp" alt="The Review step of the Deploy phase showing the deployment summary with the Download JSON Spec option." width="1495" height="659" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Wait for the 11 validation checks to complete: deployment specification, security configuration, DNS resolution, versions and bundles, existing SDDC Manager configuration, password policies, network configuration, existing components, and the capacity calculations&lt;/li&gt;
&lt;li&gt;Resolve any errors, acknowledge warnings if appropriate, and click &lt;strong&gt;Deploy&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-91-installer/044-capture-044.webp" alt="The Validate and Deploy step with validation in progress showing 0 of 11 checks completed and the Deploy button still disabled." width="1493" height="654" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;From here the installer takes over: management services, VCF Operations, NSX, SDDC Manager conversion, and the rest of the management domain roll out in sequence. Depending on hardware, expect this to run for a few hours.&lt;/p&gt;
&lt;h2 id="if-validation-or-deployment-fails"&gt;If validation or deployment fails&lt;/h2&gt;
&lt;p&gt;A few 9.1-specific failure modes worth knowing before you hit Deploy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;Deploy and configure VCF Management Platform&amp;rdquo; fails&lt;/strong&gt;: the management services use an internal cluster CIDR of 198.18.0.0/15 by default; if that overlaps your network, &lt;a href="https://knowledge.broadcom.com/external/article/440541/deploying-vcf-91-fails-at-deploy-and-con.html"&gt;KB 440541&lt;/a&gt; covers switching it to 240.0.0.0/15 or 250.0.0.0/15 via the JSON spec.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;VCF Management Services Deployment Task&amp;rdquo; fails on NTP&lt;/strong&gt;: the NTP server must be reachable over UDP 123 from the deployed appliances, not just from the installer: &lt;a href="https://knowledge.broadcom.com/external/article/439240/vcf-91-installer-deployment-is-failing-i.html"&gt;KB 439240&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;vMotion / vSAN network connectivity validations fail&lt;/strong&gt;: the installer does not recognize standby uplinks; set the vmnics active/active or disable the check per &lt;a href="https://knowledge.broadcom.com/external/article/437248/91-vcf-installer-fails-on-vmotion-networ.html"&gt;KB 437248&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Uppercase FQDNs&lt;/strong&gt;: deployment fails for fleet components, identity broker, services runtime, and VCF Automation; lowercase everything (&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/known-issues/vcf-installer-91-known-issues.html"&gt;known issues&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For nested labs, William Lam maintains a &lt;a href="https://williamlam.com/2026/05/vcf-9-1-comprehensive-vcf-installer-sddc-manager-configuration-workarounds-for-lab-deployments.html"&gt;comprehensive set of installer workarounds for 9.1&lt;/a&gt; (pNIC speed, vSAN HCL, and MTU prechecks included. And a neat trick from the same source: the installer doubles as a &lt;a href="https://williamlam.com/2026/05/vcf-9-1-quick-tip-using-the-vcf-installer-as-a-standalone-pre-check-tool.html"&gt;standalone pre-check tool&lt;/a&gt;) you can run the full validation suite against your infrastructure without deploying anything.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Official documentation&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-.html"&gt;Deploying a New VCF or vSphere Foundation Platform (9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/preparing-your-environment/deploy-the-vmware-cloud-foundation-installer-appliance.html"&gt;Deploy VCF Installer (9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/preparing-your-environment/downloading-binaries-to-the-vcf-installer-appliance.html"&gt;Downloading Binaries to VCF Installer (9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/preparing-your-environment/downloading-binaries-to-the-vcf-installer-appliance/connect-to-an-online-depot-to-download-binaries.html"&gt;Connect VCF Installer to Broadcom or an Offline Depot (9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/deployment/deploying-a-new-vmware-cloud-foundation-or-vmware-vsphere-foundation-private-cloud-/deploy-a-new-vcf-fleet-or-a-new-vcf-instance.html"&gt;Start a New VCF Fleet or a New VCF Instance Deployment (9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/planning-and-preparation/vcf-components-fqdns-and-ip-addresses/first-vcf-instance-fqdns-and-ip-addresses.html"&gt;First VCF Instance FQDNs and IP Addresses (9.1 planning)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes.html"&gt;VCF 9.1 Release Notes&lt;/a&gt; · &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/vmware-cloud-foundation-bill-of-materials.html"&gt;Bill of Materials&lt;/a&gt; · &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/what-s-new/whats-new-installer.html"&gt;What&amp;rsquo;s New - VCF Installer&lt;/a&gt; · &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/vmware-cloud-foundation-9-1-0-0-release-notes/known-issues/vcf-installer-91-known-issues.html"&gt;VCF Installer Known Issues&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Broadcom KBs&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/443647/download-token-has-been-replaced-by-acti.html"&gt;KB 443647 - Download token replaced by Activation Code in VCF Installer 9.1&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/401497/vmware-vcf-90-or-vvf-90-downloads-in-the.html"&gt;KB 401497 - VCF/VVF downloads in the Broadcom Support Portal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/440541/deploying-vcf-91-fails-at-deploy-and-con.html"&gt;KB 440541 - VCF 9.1 fails at Deploy and configure VCF Management Platform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/439240/vcf-91-installer-deployment-is-failing-i.html"&gt;KB 439240 - VCF 9.1 installer fails at VCF Management Services Deployment Task&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://knowledge.broadcom.com/external/article/437248/91-vcf-installer-fails-on-vmotion-networ.html"&gt;KB 437248 - VCF 9.1 installer fails on vMotion/vSAN network connectivity&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;My VCF 9.0 installer series&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cosmin.us/deploying-the-vmware-cloud-foundation-installer-appliance-step-by-step-instructions/"&gt;Deploying the VMware Cloud Foundation Installer Appliance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cosmin.us/configuring-the-vmware-cloud-foundation-installer-appliance-step-by-step-instructions/"&gt;Configuring the VMware Cloud Foundation Installer Appliance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cosmin.us/deploy-a-vcf-9-instance-in-an-existing-vcf-fleet/"&gt;Deploy a VCF 9 Instance in a New VCF Fleet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Upgrading VCF 9.1 Management Services to 9.1.0.0400 Step by Step</title><link>https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/</link><pubDate>Mon, 03 Aug 2026 10:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/upgrading-vcf-9-1-management-services-to-9-1-0-0400-step-by-step/</guid><description>&lt;p&gt;On July 13, 2026 Broadcom shipped the next VCF 9.1 patch wave, and this post walks through the part of it that lives under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;: the VCF Management services. The headline releases on this surface are &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vcf-operations/9-1-0-0400/vcfoperations-9-1-0-0400-release-notes.html"&gt;VCF Operations 9.1.0.0400&lt;/a&gt; and &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vcf-automation/vcfautomation-9-1-0-0200-release-notes.html"&gt;VCF Automation 9.1.0.0200&lt;/a&gt;, mostly security enhancements plus a batch of fixes. This post is the follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-to-9-1-0-0300-step-by-step/"&gt;9.1.0.0300 walkthrough&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To be clear on scope: this post covers only the management services. SDDC Manager 9.1.0.0400 and the core components (vCenter, NSX, ESX, vSAN) go through the VCF Instances flow and are not covered here; see the short section at the end.&lt;/p&gt;</description><content:encoded>&lt;p&gt;On July 13, 2026 Broadcom shipped the next VCF 9.1 patch wave, and this post walks through the part of it that lives under &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;: the VCF Management services. The headline releases on this surface are &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vcf-operations/9-1-0-0400/vcfoperations-9-1-0-0400-release-notes.html"&gt;VCF Operations 9.1.0.0400&lt;/a&gt; and &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vcf-automation/vcfautomation-9-1-0-0200-release-notes.html"&gt;VCF Automation 9.1.0.0200&lt;/a&gt;, mostly security enhancements plus a batch of fixes. This post is the follow-up to my &lt;a href="https://cosmin.us/upgrading-vcf-9-1-to-9-1-0-0300-step-by-step/"&gt;9.1.0.0300 walkthrough&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To be clear on scope: this post covers only the management services. SDDC Manager 9.1.0.0400 and the core components (vCenter, NSX, ESX, vSAN) go through the VCF Instances flow and are not covered here; see the short section at the end.&lt;/p&gt;
&lt;p&gt;One thing to understand up front: &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x.html"&gt;patch releases are not synchronized among all VCF components&lt;/a&gt;, and you can pick and choose which components to apply. That is why my target list below is a mix of 0400, 0200, and 0100 builds. It looks odd the first time. It is expected.&lt;/p&gt;
&lt;h2 id="versions-in-this-update"&gt;Versions in This Update&lt;/h2&gt;
&lt;p&gt;Here is the full From/To picture from my lab, exactly as the VCF Operations UI reports it.&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Component&lt;/th&gt;
					&lt;th&gt;Current Version&lt;/th&gt;
					&lt;th&gt;Target Version&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Fleet Lifecycle&lt;/td&gt;
					&lt;td&gt;9.1.0.0300.25536195&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570104&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Operations&lt;/td&gt;
					&lt;td&gt;9.1.0.0300.25531073&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25541561&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Operations for Networks&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25427421&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25517220&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Identity Broker&lt;/td&gt;
					&lt;td&gt;9.1.0.0.25368698&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25522734&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Automation&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25429499&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25556825&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Log Management&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25435121&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544947&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;SDDC Lifecycle&lt;/td&gt;
					&lt;td&gt;9.1.0.0300.25536194&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570103&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Real-Time Metrics&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25435036&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544944&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Real-Time Metrics Store&lt;/td&gt;
					&lt;td&gt;9.1.0.0.25370367&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25555874&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Salt Master&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25434834&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544946&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Salt RaaS&lt;/td&gt;
					&lt;td&gt;9.1.0.0100.25434834&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25544946&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Software Depot&lt;/td&gt;
					&lt;td&gt;9.1.0.0.25371105&lt;/td&gt;
					&lt;td&gt;9.1.0.0400.25570105&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Migration Service Engine&lt;/td&gt;
					&lt;td&gt;9.1.0.0.25370929&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25556825&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;VCF Services Runtime&lt;/td&gt;
					&lt;td&gt;9.1.0.0.25370367&lt;/td&gt;
					&lt;td&gt;9.1.0.0200.25555874&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;SDDC Manager &lt;strong&gt;9.1.0.0400&lt;/strong&gt; (build &lt;strong&gt;25570100&lt;/strong&gt;) ships in the same wave but lives outside this component list. See the scope section at the end of the post.&lt;/p&gt;
&lt;h2 id="before-you-start"&gt;Before You Start&lt;/h2&gt;
&lt;p&gt;A few rules before clicking anything. &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/lifecycle-management/using-the-depot-configuration-tab/upgrade-a-vcf-management-component.html"&gt;Back up your components before patching, and remember only one upgrade or patch operation can run at a time&lt;/a&gt;. That single-operation rule matters more than it sounds with fourteen components in the queue, plan for a long session or spread it over a maintenance window. If your depot is online, the binaries pull directly. If you run offline, update the &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vmware-download-tool/vcf-download-tool-9-1-0-0400-release-notes.html"&gt;VCF Download Tool to &lt;strong&gt;9.1.0.0400&lt;/strong&gt;&lt;/a&gt; (build &lt;strong&gt;25550178&lt;/strong&gt;) first and download the binaries with it.&lt;/p&gt;
&lt;p&gt;Two known issues shape how I ran this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vcf-operations/9-1-0-0400/sddc-lifecycle-9-1-0-0400-release-notes.html"&gt;SDDC Lifecycle 9.1.0.0400&lt;/a&gt;: the batch precheck can fail with &lt;strong&gt;VCF_LCM_FLEET_UPGRADE_400_COMPONENT_NOT_NEEDED_USER_INPUT_SPEC_PROVIDED&lt;/strong&gt;. Do not use Run Prechecks (ALL). Precheck each component individually.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vcf-operations/9-1-0-0400/software-depot-9-1-0-0400-release-notes.html"&gt;Software Depot 9.1.0.0400&lt;/a&gt;: patching the depot takes it temporarily offline. Do not run any other component patch at the same time, and retry anything that failed afterwards.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="upgrade-fleet-lifecycle"&gt;Upgrade Fleet Lifecycle&lt;/h2&gt;
&lt;p&gt;Broadcom&amp;rsquo;s ordering guidance for maintenance releases starts with Fleet Lifecycle. For patch releases the order is flexible, but I still go Fleet Lifecycle first; it drives patch deployment for the rest of the fleet components.&lt;/p&gt;
&lt;p&gt;In VCF Operations, go to &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Management -&amp;gt; Upgrade&lt;/strong&gt;. Open the &amp;ldquo;&amp;hellip;&amp;rdquo; menu on the Fleet Lifecycle card and click Select version.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/001-capture-001.webp" alt="The VCF Management Upgrade page with the Fleet Lifecycle three-dot menu expanded and the Select version option visible." width="1282" height="356" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Fleet Lifecycle Component Target Version dialog opens. Set the target to &lt;strong&gt;9.1.0.0400.25570104&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/002-capture-002.webp" alt="The Fleet Lifecycle Component Target Version dialog with 9.1.0.0400.25570104 selected." width="858" height="255" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Back on the card, the upgrade path now reads &lt;strong&gt;9.1.0.0300.25536195&lt;/strong&gt; to &lt;strong&gt;9.1.0.0400.25570104&lt;/strong&gt;. Click Upgrade.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/003-capture-003.webp" alt="The Fleet Lifecycle card showing the upgrade path to 9.1.0.0400.25570104 with the Upgrade button." width="915" height="127" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Kick off the upgrade. The card flips to Upgrade in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/004-capture-004.webp" alt="The Fleet Lifecycle card showing Upgrade in progress with a link to Upgrade details." width="963" height="124" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Open Upgrade details. The first two subtasks are &amp;ldquo;Set Fleet lifecycle upgrade context&amp;rdquo; and &amp;ldquo;Stage Fleet lifecycle plugin in VCF services runtime&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/005-capture-005.webp" alt="The Fleet Lifecycle upgrade workflow with its first two subtasks, Set Fleet lifecycle upgrade context and Stage Fleet lifecycle plugin in VCF services runtime." width="1308" height="511" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The status messages move through Staging binaries and Running Component Stage Prechecks. Nothing to do here but watch.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/006-capture-006.webp" alt="The Fleet Lifecycle upgrade workflow showing the Staging binaries and Running Component Stage Prechecks messages." width="1303" height="729" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;All 7 subtasks land on Completed. In this run the whole thing took about 45 minutes, 11:08 to 11:54 AM.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/007-capture-007.webp" alt="The Fleet Lifecycle upgrade workflow with all 7 subtasks showing Completed after roughly 45 minutes." width="1315" height="680" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="set-the-vcf-management-target-version"&gt;Set the VCF Management Target Version&lt;/h2&gt;
&lt;p&gt;With Fleet Lifecycle done, click CHANGE TARGET VERSION.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/008-capture-008.webp" alt="The VCF Management page with the CHANGE TARGET VERSION button highlighted after the Fleet Lifecycle upgrade." width="470" height="61" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Set Target Version dialog offers the VCF global version 9.1.0.*.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/009-capture-009.webp" alt="The Set Target Version dialog showing the VCF global version 9.1.0.* selection." width="850" height="279" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The component list now shows everything Ready for upgrade, with the mixed 0400/0200/0100 targets from the table above. This is the per-component patch numbering at work, not a depot problem.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/010-capture-010.webp" alt="The VCF Management component list showing every component Ready for upgrade with mixed 9.1.0.0400, 9.1.0.0200, and 9.1.0.0100 target versions." width="1265" height="641" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Because of the SDDC Lifecycle known issue, I did not touch RUN PRECHECKS (ALL). I ran prechecks per component instead, right before each upgrade. It costs a few extra clicks per component, but it avoids the &lt;strong&gt;VCF_LCM_FLEET_UPGRADE_400_COMPONENT_NOT_NEEDED_USER_INPUT_SPEC_PROVIDED&lt;/strong&gt; failure entirely.&lt;/p&gt;
&lt;h2 id="upgrade-vcf-operations"&gt;Upgrade VCF Operations&lt;/h2&gt;
&lt;p&gt;First up, VCF Operations itself to &lt;strong&gt;9.1.0.0400.25541561&lt;/strong&gt;. Note that the cloud proxy and the license server are patched automatically as part of this one, no separate steps needed for either.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/011-capture-011.webp" alt="The VCF Operations row Ready for upgrade with target version 9.1.0.0400.25541561." width="1254" height="312" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The workflow runs through its subtasks; I moved on once it was In Progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/012-capture-012.webp" alt="The VCF Operations upgrade workflow with its subtasks In Progress." width="1305" height="723" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-identity-broker"&gt;Upgrade Identity Broker&lt;/h2&gt;
&lt;p&gt;Next, Identity Broker to &lt;strong&gt;9.1.0.0100.25522734&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/013-capture-013.webp" alt="The Identity Broker row Ready for upgrade with target version 9.1.0.0100.25522734." width="1159" height="87" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;This one is a 6-subtask workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/014-capture-014.webp" alt="The Identity Broker upgrade workflow showing its 6 subtasks In Progress." width="1315" height="614" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-vcf-automation"&gt;Upgrade VCF Automation&lt;/h2&gt;
&lt;p&gt;VCF Automation goes to &lt;strong&gt;9.1.0.0200.25556825&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/015-capture-015.webp" alt="The VCF Automation row Ready for upgrade with target version 9.1.0.0200.25556825." width="1209" height="168" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The precheck workflow runs first, then the upgrade takes over.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/016-capture-016.webp" alt="The VCF Automation precheck workflow running before the upgrade proceeds." width="1313" height="704" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-vcf-operations-for-networks"&gt;Upgrade VCF Operations for Networks&lt;/h2&gt;
&lt;p&gt;VCF Operations for Networks moves to &lt;strong&gt;9.1.0.0200.25517220&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/017-capture-017.webp" alt="The VCF Operations for Networks row Ready for upgrade with target version 9.1.0.0200.25517220." width="1246" height="172" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-log-management"&gt;Upgrade Log Management&lt;/h2&gt;
&lt;p&gt;Log Management targets &lt;strong&gt;9.1.0.0400.25544947&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/019-capture-019.webp" alt="The Log Management row Ready for upgrade with target version 9.1.0.0400.25544947." width="1056" height="100" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Same pattern: precheck, then the upgrade workflow.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/020-capture-020.webp" alt="The Log Management upgrade workflow with its subtasks In Progress." width="1068" height="710" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-sddc-lifecycle"&gt;Upgrade SDDC Lifecycle&lt;/h2&gt;
&lt;p&gt;SDDC Lifecycle goes to &lt;strong&gt;9.1.0.0400.25570103&lt;/strong&gt;: the component behind the batch precheck known issue, upgraded here with its own individual precheck.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/021-capture-021.webp" alt="The SDDC Lifecycle row Ready for upgrade with target version 9.1.0.0400.25570103." width="1054" height="92" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-real-time-metrics-and-metrics-store"&gt;Upgrade Real-Time Metrics and Metrics Store&lt;/h2&gt;
&lt;p&gt;Real-Time Metrics targets &lt;strong&gt;9.1.0.0400.25544944&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/022-capture-022.webp" alt="The Real-Time Metrics row Ready for upgrade with target version 9.1.0.0400.25544944." width="1054" height="90" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Real-Time Metrics row switches to Upgrade in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/023-capture-023.webp" alt="The Real-Time Metrics row showing Upgrade in progress with the Upgrade details link." width="855" height="66" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Then the upgrade workflow itself.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/024-capture-024.webp" alt="The Real-Time Metrics upgrade workflow with its subtasks In Progress." width="1065" height="224" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Real-Time Metrics Store is a separate component; it targets &lt;strong&gt;9.1.0.0200.25555874&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/025-capture-025.webp" alt="The Real-Time Metrics Store row Ready for upgrade with target version 9.1.0.0200.25555874." width="1051" height="92" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Real-Time Metrics Store row switches to Upgrade in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/026-capture-026.webp" alt="The Real-Time Metrics Store row showing Upgrade in progress with the Upgrade details link." width="857" height="56" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;And the upgrade workflow follows.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/027-capture-027.webp" alt="The Real-Time Metrics Store upgrade workflow with its subtasks In Progress." width="1064" height="412" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-salt-master"&gt;Upgrade Salt Master&lt;/h2&gt;
&lt;p&gt;Salt Master targets &lt;strong&gt;9.1.0.0400.25544946&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/029-capture-029.webp" alt="The Salt Master row Ready for upgrade with target version 9.1.0.0400.25544946." width="1051" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Salt Master row switches to Upgrade in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/030-capture-030.webp" alt="The Salt Master row showing Upgrade in progress with the Upgrade details link." width="847" height="58" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The upgrade workflow takes over and works through its subtasks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/031-capture-031.webp" alt="The Salt Master upgrade workflow with its subtasks In Progress." width="1067" height="584" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-software-depot"&gt;Upgrade Software Depot&lt;/h2&gt;
&lt;p&gt;Software Depot goes to &lt;strong&gt;9.1.0.0400.25570105&lt;/strong&gt;. Per the known issue in the release notes, the depot goes briefly offline during its own patch, so avoid launching other component patches at the same time and retry anything that failed afterwards.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/033-capture-033.webp" alt="The Software Depot row Ready for upgrade with target version 9.1.0.0400.25570105." width="1056" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Software Depot row switches to Upgrade in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/034-capture-034.webp" alt="The Software Depot row showing Upgrade in progress with the Upgrade details link." width="854" height="59" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Then the upgrade workflow, while the depot is briefly unavailable.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/035-capture-035.webp" alt="The Software Depot upgrade workflow with its subtasks In Progress while the depot is temporarily offline." width="1064" height="662" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-migration-service-engine"&gt;Upgrade Migration Service Engine&lt;/h2&gt;
&lt;p&gt;Migration Service Engine targets &lt;strong&gt;9.1.0.0200.25556825&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/036-capture-036.webp" alt="The Migration Service Engine row Ready for upgrade with target version 9.1.0.0200.25556825." width="1053" height="93" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The Migration Service Engine row switches to Upgrade in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/037-capture-037.webp" alt="The Migration Service Engine row showing Upgrade in progress with the Upgrade details link." width="849" height="56" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Fun detail in the workflow panel: the staging task exposes the internal component name &lt;strong&gt;VCD_MIGRATOR&lt;/strong&gt;: &amp;ldquo;Stage VCD_MIGRATOR plugin in VCF services runtime&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/038-capture-038.webp" alt="The Migration Service Engine upgrade workflow with the Stage VCD_MIGRATOR plugin in VCF services runtime subtask." width="1069" height="386" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-vcf-services-runtime"&gt;Upgrade VCF Services Runtime&lt;/h2&gt;
&lt;p&gt;VCF Services Runtime goes to &lt;strong&gt;9.1.0.0200.25555874&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/039-capture-039.webp" alt="The VCF Services Runtime row Ready for upgrade with target version 9.1.0.0200.25555874." width="1051" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;The VCF Services Runtime row switches to Upgrade in progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/040-capture-040.webp" alt="The VCF Services Runtime row showing Upgrade in progress with the Upgrade details link." width="851" height="56" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;Then the upgrade workflow with its subtasks.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/041-capture-041.webp" alt="The VCF Services Runtime upgrade workflow with its subtasks In Progress." width="1057" height="404" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="upgrade-salt-raas"&gt;Upgrade Salt RaaS&lt;/h2&gt;
&lt;p&gt;Salt RaaS ran last in my lab, targeting &lt;strong&gt;9.1.0.0400.25544946&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/028-capture-028.webp" alt="The Salt RaaS row Ready for upgrade with target version 9.1.0.0400.25544946." width="1053" height="95" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;p&gt;At the time of this capture the precheck workflow was still running, &amp;ldquo;Run Salt RaaS upgrade prechecks&amp;rdquo; shows In Progress.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cosmin.us/images/2026/08/vcf-9-1-0400-upgrade/044-capture-044.webp" alt="The Salt RaaS precheck workflow with the Run Salt RaaS upgrade prechecks subtask still In Progress." width="1060" height="520" loading="lazy" decoding="async"&gt;
&lt;/p&gt;
&lt;h2 id="what-about-sddc-manager-and-the-core-components"&gt;What About SDDC Manager and the Core Components?&lt;/h2&gt;
&lt;p&gt;They are out of scope for this post. &lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/release-notes/patch-releases-9-1-0-x/vcf-installer/sddc-manager-9-1-0-0400-release-notes.html"&gt;SDDC Manager 9.1.0.0400&lt;/a&gt; (build &lt;strong&gt;25570100&lt;/strong&gt;) and the core components from this wave (ESX 9.1.0.0200, vSAN 9.1.0.0200, NSX 9.1.0.0200, and vCenter 9.1.0.0200, later bumped to 9.1.0.0300 on July 29, 2026) are applied through &lt;strong&gt;Build -&amp;gt; Lifecycle -&amp;gt; VCF Instances&lt;/strong&gt;. That is the same flow I documented in &lt;a href="https://cosmin.us/upgrading-vcf-9-1-to-9-1-0-0300-step-by-step/"&gt;Upgrading VCF 9.1 to 9.1.0.0300 Step by Step&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="validate-the-update"&gt;Validate the Update&lt;/h2&gt;
&lt;p&gt;Before calling it done:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check the Component Versions page, every patched management component should show On Target.&lt;/li&gt;
&lt;li&gt;Check the task list, no failed workflows left behind.&lt;/li&gt;
&lt;li&gt;Confirm the VCF Operations UI is reachable and healthy.&lt;/li&gt;
&lt;li&gt;Retry anything that failed while the Software Depot was being patched; the depot was offline during that window.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For SDDC Manager and the core components, see the previous section, the flow in &lt;a href="https://cosmin.us/upgrading-vcf-9-1-to-9-1-0-0300-step-by-step/"&gt;Upgrading VCF 9.1 to 9.1.0.0300 Step by Step&lt;/a&gt; still applies one-to-one.&lt;/p&gt;</content:encoded></item><item><title>Fixing Swagger’s localhost:8600 URL in VCF Automation 9.1</title><link>https://cosmin.us/fixing-swagger-localhost-8600-server-url-vcf-automation-9-1/</link><pubDate>Fri, 31 Jul 2026 00:00:00 +0000</pubDate><dc:creator>Cosmin Trif</dc:creator><guid>https://cosmin.us/fixing-swagger-localhost-8600-server-url-vcf-automation-9-1/</guid><description>&lt;p&gt;While putting together the &lt;a href="https://cosmin.us/vcf-automation-9-1-api-getting-started/"&gt;VCF Automation 9.1 API getting started&lt;/a&gt; post, I spent some time in the in-product API Help Center. Log into the VM Apps tenant, click your username, &lt;strong&gt;API Help Center &amp;gt; Explore Automation APIs&lt;/strong&gt;. The Swagger pages render fine, but the moment you try an actual call, it fails. The &lt;strong&gt;Servers&lt;/strong&gt; box for the VCF Automation (Blueprint) API shows:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;http://localhost:8600
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Swagger UI builds Try It Out requests from &lt;code&gt;servers[0].url&lt;/code&gt;, so the browser dutifully sends every request to port 8600 on &lt;em&gt;your own workstation&lt;/em&gt;. Connection refused, every time. The documentation is correct; the advertised host is not.&lt;/p&gt;</description><content:encoded>&lt;p&gt;While putting together the &lt;a href="https://cosmin.us/vcf-automation-9-1-api-getting-started/"&gt;VCF Automation 9.1 API getting started&lt;/a&gt; post, I spent some time in the in-product API Help Center. Log into the VM Apps tenant, click your username, &lt;strong&gt;API Help Center &amp;gt; Explore Automation APIs&lt;/strong&gt;. The Swagger pages render fine, but the moment you try an actual call, it fails. The &lt;strong&gt;Servers&lt;/strong&gt; box for the VCF Automation (Blueprint) API shows:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;http://localhost:8600
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Swagger UI builds Try It Out requests from &lt;code&gt;servers[0].url&lt;/code&gt;, so the browser dutifully sends every request to port 8600 on &lt;em&gt;your own workstation&lt;/em&gt;. Connection refused, every time. The documentation is correct; the advertised host is not.&lt;/p&gt;
&lt;p&gt;This post is about finding where that value actually comes from (which took three wrong turns through the appliance&amp;rsquo;s Kubernetes internals) and the override that finally fixed it without touching a container image. The short version:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;localhost:8600&lt;/code&gt; value is &lt;strong&gt;not in any configuration on the appliance&lt;/strong&gt;. A grep across a full support-bundle cluster dump finds no ConfigMap, Helm value, gateway route, or forwarded-headers setting that produces it.&lt;/li&gt;
&lt;li&gt;The spec is a &lt;strong&gt;static JSON file generated by springdoc at build time&lt;/strong&gt; (the giveaway is its &lt;code&gt;&amp;quot;description&amp;quot;: &amp;quot;Generated server url&amp;quot;&lt;/code&gt;) and it ships &lt;strong&gt;as a classpath resource inside the Spring Boot application&lt;/strong&gt; in the &lt;code&gt;tango-blueprint-service-app&lt;/code&gt; pod. Whoever built it had the service listening on port 8600, and the URL froze there.&lt;/li&gt;
&lt;li&gt;The api-docs page itself is served by a &lt;em&gt;different&lt;/em&gt; pod than the spec, which is why the obvious nginx-level fixes go nowhere.&lt;/li&gt;
&lt;li&gt;The fix: mount a corrected copy of the spec from a ConfigMap and prepend &lt;code&gt;file:/override/&lt;/code&gt; to &lt;code&gt;spring.web.resources.static-locations&lt;/code&gt; via &lt;code&gt;JAVA_OPTS&lt;/code&gt;, so Spring serves the fixed file and never falls through to the copy shipped in the image. Survives pod restarts with nothing to reconcile it away; a product upgrade will wipe it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everything below was done on a lab appliance running build &lt;code&gt;9.1.0.0100.25429499&lt;/code&gt;. This is an unsupported modification. More on that at the end.&lt;/p&gt;
&lt;h2 id="the-symptom"&gt;The Symptom&lt;/h2&gt;
&lt;p&gt;In the tenant API Help Center, open the VCF Automation API (the Blueprint one, version 2019-09-12). The spec renders, the paths are all correct, but the servers dropdown offers exactly one entry: &lt;code&gt;http://localhost:8600&lt;/code&gt;. There is no way to type a different URL: the dropdown only lists what the spec declares, and this spec declares one hardcoded server with no variables.&lt;/p&gt;
&lt;p&gt;Browser DevTools (Network tab) shows what the page actually loads. First an index of every API the Help Center knows about:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/tenant/&amp;lt;your-tenant&amp;gt;/api-docs/assets/content/soft/automation-apis.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That index maps each tile to a spec URL: about sixteen specs across a dozen backend services. The Blueprint entry points at:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/blueprint/api-docs/classic-apis/api-doc-public-classic-vra-2019-09-12.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And that document contains the problem, verbatim:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;servers&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;http://localhost:8600&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;description&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Generated server url&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Two details in that response are worth pausing on, because they shaped the whole investigation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;quot;Generated server url&amp;quot;&lt;/code&gt; is the literal default description springdoc attaches when it auto-computes the server URL from the incoming request. So springdoc generated this, but if it were computed per request, it would show the appliance FQDN, not localhost.&lt;/li&gt;
&lt;li&gt;The response carries a &lt;code&gt;last-modified&lt;/code&gt; date from months before I ever opened the page, plus &lt;code&gt;accept-ranges: bytes&lt;/code&gt;. That is a static file being read off disk (or classpath), not a document rendered per request.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Put together: someone ran the Blueprint service on a build machine, where it listened on &lt;code&gt;localhost:8600&lt;/code&gt;, exported the generated spec to a file, and shipped that file in the product. The URL froze at build time.&lt;/p&gt;
&lt;h2 id="ruling-out-configuration"&gt;Ruling Out Configuration&lt;/h2&gt;
&lt;p&gt;Before touching anything, I wanted to know whether some appliance setting produces or rewrites that value, because if it did, that would be the supported place to fix it.&lt;/p&gt;
&lt;p&gt;It does not. I had a full support bundle from this appliance handy (that is a story for another post), and the extracted cluster object dump is conclusive:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The string &lt;code&gt;8600&lt;/code&gt; appears nowhere in the cluster as a port, URL, or config value. No Service exposes it, no container declares it, no ConfigMap mentions it. The only matches are UID substrings.&lt;/li&gt;
&lt;li&gt;There is no &lt;code&gt;springdoc&lt;/code&gt;, &lt;code&gt;server.forward-headers-strategy&lt;/code&gt;, or server-URL configuration in any ConfigMap in the &lt;code&gt;prelude&lt;/code&gt; or &lt;code&gt;vmsp-platform&lt;/code&gt; namespaces.&lt;/li&gt;
&lt;li&gt;The Envoy gateway routes (Gateway API &lt;code&gt;HTTPRoute&lt;/code&gt; objects) that publish the api-docs paths perform &lt;strong&gt;path rewrites only&lt;/strong&gt;: nothing rewrites hosts or response bodies.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So there is no knob. The value lives in content, not configuration, and only Broadcom can fix it properly. Everything from here on is about making the appliance serve a corrected copy.&lt;/p&gt;
&lt;h2 id="wrong-turn-1-the-pod-that-serves-the-page-doesnt-serve-the-spec"&gt;Wrong Turn #1: The Pod That Serves the Page Doesn&amp;rsquo;t Serve the Spec&lt;/h2&gt;
&lt;p&gt;The api-docs page shell (the Angular app with the tiles) is served by the &lt;code&gt;cloud-automation-ui-app&lt;/code&gt; pod in the &lt;code&gt;prelude&lt;/code&gt; namespace. Its nginx config (ConfigMap &lt;code&gt;cloud-automation-ui&lt;/code&gt;) rewrites &lt;code&gt;/tenant/&amp;lt;org&amp;gt;/api-docs&lt;/code&gt; and &lt;code&gt;/provider/api-docs&lt;/code&gt; into static content under &lt;code&gt;/usr/share/nginx/html/dist&lt;/code&gt;. My first instinct was an nginx &lt;code&gt;sub_filter&lt;/code&gt; there, rewriting &lt;code&gt;localhost:8600&lt;/code&gt; in responses.&lt;/p&gt;
&lt;p&gt;Dead end, for a structural reason: the spec never passes through that pod. The gateway routes the two URLs to different backends entirely:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Path&lt;/th&gt;
					&lt;th&gt;HTTPRoute&lt;/th&gt;
					&lt;th&gt;Backend&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/tenant/&amp;lt;org&amp;gt;/api-docs/...&lt;/code&gt; (the page, the index JSON)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;tenant-in-path-automation-ui&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;cloud-automation-ui&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;/blueprint/api-docs/...&lt;/code&gt; (the spec)&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;blueprintapi-docs&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;tango-blueprint:8080&lt;/code&gt;, prefix rewritten to &lt;code&gt;/api-docs/&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;A &lt;code&gt;sub_filter&lt;/code&gt; in the UI pod would rewrite a response it never sees. The actual owner of the spec is the Blueprint service itself: &lt;code&gt;Deployment/tango-blueprint-service-app&lt;/code&gt;, image &lt;code&gt;blueprint-webapp:9.1.0.0100.25429499&lt;/code&gt;: a Spring Boot app, which also explains the Spring Security headers on the spec response.&lt;/p&gt;
&lt;h2 id="wrong-turn-2-there-is-no-file-to-edit"&gt;Wrong Turn #2: There Is No File to Edit&lt;/h2&gt;
&lt;p&gt;Fine, exec into the right pod and &lt;code&gt;sed&lt;/code&gt; the file in place:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude &lt;span class="nb"&gt;exec&lt;/span&gt; deploy/tango-blueprint-service-app -- &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sh -c &lt;span class="s1"&gt;&amp;#39;find / -name &amp;#34;api-doc-public-classic-vra-*.json&amp;#34; -not -path &amp;#34;/proc/*&amp;#34; 2&amp;gt;/dev/null&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nothing. And looking for the application itself:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude &lt;span class="nb"&gt;exec&lt;/span&gt; deploy/tango-blueprint-service-app -- &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; sh -c &lt;span class="s1"&gt;&amp;#39;find / -maxdepth 3 -name &amp;#34;*.jar&amp;#34; -not -path &amp;#34;/proc/*&amp;#34; 2&amp;gt;/dev/null | head&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/bc-fips/bcutil-fips-2.1.5.jar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/bc-fips/bctls-fips-2.1.22.jar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/bc-fips/bcpkix-fips-2.1.10.jar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/bc-fips/bc-fips-2.1.2.jar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/opt/bc-fips/bcmail-fips-2.1.6.jar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;/jdk/lib/jrt-fs.jar
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Only the Bouncy Castle FIPS libraries and the JDK, the shallow search doesn&amp;rsquo;t even turn up the application archive itself. Wherever the application lives, the spec is packaged inside it as a classpath resource: &lt;code&gt;find&lt;/code&gt; sees nothing, and &lt;code&gt;sed&lt;/code&gt; has nothing to reach. Even if you dug out the archive, patched it, and re-packed it in the running container, the fix would be pointless: the JVM holds it open, so a restart is needed to pick up the change, and the restart is exactly what rebuilds the container filesystem from the pristine image. The fix would erase itself at the moment of application.&lt;/p&gt;
&lt;h2 id="wrong-turn-3-kubectl-edit-ate-my-java_opts"&gt;Wrong Turn #3: kubectl edit Ate My JAVA_OPTS&lt;/h2&gt;
&lt;p&gt;The mechanism that does work is Spring&amp;rsquo;s static resource resolution. Spring Boot serves static content from an ordered list of locations, and the first location that contains a matching file wins:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;spring.web.resources.static-locations =
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Setting that property &lt;em&gt;replaces&lt;/em&gt; the default list. So if I prepend a filesystem directory and re-append the defaults, a file I control shadows the identically-pathed resource on the application classpath, and everything else keeps being served from the classpath exactly as before.&lt;/p&gt;
&lt;p&gt;The path arithmetic works out neatly. After the gateway&amp;rsquo;s prefix rewrite, the backend sees the request as &lt;code&gt;/api-docs/classic-apis/api-doc-public-classic-vra-2019-09-12.json&lt;/code&gt;. With &lt;code&gt;file:/override/&lt;/code&gt; first in the list, Spring checks &lt;code&gt;/override/api-docs/classic-apis/api-doc-public-classic-vra-2019-09-12.json&lt;/code&gt; before falling through to the classpath. That is exactly where a ConfigMap mount can put a corrected copy.&lt;/p&gt;
&lt;p&gt;The wrong-turn part: my first attempt applied all of this with &lt;code&gt;kubectl edit deploy&lt;/code&gt;. The volume and volumeMount saved; the &lt;code&gt;JAVA_OPTS&lt;/code&gt; append &lt;strong&gt;silently did not&lt;/strong&gt;. That env value is one enormous line that already contains &lt;code&gt;$(SERVICE_ACCOUNT_SECRET)&lt;/code&gt; (literal Kubernetes variable-expansion syntax) and somewhere in the editor round-trip the appended text was lost; I never pinned down exactly where. (The same string is also a shell command-substitution landmine if you ever round-trip the value through a shell, which is why the fix below patches programmatically.) The pod rolled, the override directory appeared, and the spec still said &lt;code&gt;localhost:8600&lt;/code&gt; because the JVM never got the property. Verify the property reached the Deployment before concluding the approach failed.&lt;/p&gt;
&lt;h2 id="the-fix"&gt;The Fix&lt;/h2&gt;
&lt;p&gt;All commands run as root on the appliance, where &lt;code&gt;kubectl&lt;/code&gt; is already configured. Replace &lt;code&gt;vcfa.domain.com&lt;/code&gt; with your appliance FQDN.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Produce the corrected spec.&lt;/strong&gt; No spelunking inside the image needed, pull it through the gateway and fix the one string:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -sk https://vcfa.domain.com/blueprint/api-docs/classic-apis/api-doc-public-classic-vra-2019-09-12.json &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; sed &lt;span class="s1"&gt;&amp;#39;s|http://localhost:8600|https://vcfa.domain.com|g&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;gt; /root/api-doc-public-classic-vra-2019-09-12.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sanity-check it: zero remaining hits, and still valid JSON:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grep -c localhost:8600 /root/api-doc-public-classic-vra-2019-09-12.json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python3 -m json.tool /root/api-doc-public-classic-vra-2019-09-12.json &amp;gt; /dev/null &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;valid json&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;2. Create the ConfigMap and back up the Deployment:&lt;/strong&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude create configmap blueprint-apidocs-override &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --from-file&lt;span class="o"&gt;=&lt;/span&gt;/root/api-doc-public-classic-vra-2019-09-12.json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude get deploy tango-blueprint-service-app -o yaml &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;gt; /root/tango-blueprint-deploy.backup.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;3. Add the volume and mount.&lt;/strong&gt; A strategic merge patch merges named list entries, so this adds without disturbing the existing volumes and mounts:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude patch deploy tango-blueprint-service-app --type&lt;span class="o"&gt;=&lt;/span&gt;strategic -p &lt;span class="s1"&gt;&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;spec:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; template:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; spec:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; volumes:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; - name: apidocs-override
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; configMap:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; name: blueprint-apidocs-override
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; containers:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; - name: tango-blueprint-service-app
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; volumeMounts:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; - name: apidocs-override
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt; mountPath: /override/api-docs/classic-apis
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;4. Append the properties to JAVA_OPTS (programmatically.&lt;/strong&gt; This reads the current value, appends both the current (&lt;code&gt;spring.web.resources.static-locations&lt;/code&gt;) and the pre-2.4 (&lt;code&gt;spring.resources.static-locations&lt;/code&gt;) property names) whichever one this Spring Boot generation ignores does no harm, and writes a JSON patch. It refuses to double-apply:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude get deploy tango-blueprint-service-app -o json &amp;gt; /root/d.json
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python3 - &lt;span class="s"&gt;&amp;lt;&amp;lt;&amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;import json
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;d = json.load(open(&amp;#34;/root/d.json&amp;#34;))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;env = d[&amp;#34;spec&amp;#34;][&amp;#34;template&amp;#34;][&amp;#34;spec&amp;#34;][&amp;#34;containers&amp;#34;][0][&amp;#34;env&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;i = [n for n, e in enumerate(env) if e[&amp;#34;name&amp;#34;] == &amp;#34;JAVA_OPTS&amp;#34;][0]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;loc = &amp;#34;file:/override/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;add = &amp;#34; -Dspring.web.resources.static-locations=&amp;#34; + loc + &amp;#34; -Dspring.resources.static-locations=&amp;#34; + loc
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;if &amp;#34;static-locations&amp;#34; in env[i][&amp;#34;value&amp;#34;]:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; json.dump([], open(&amp;#34;/root/patch.json&amp;#34;, &amp;#34;w&amp;#34;))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; print(&amp;#34;already present - nothing to do&amp;#34;); raise SystemExit
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;json.dump([{&amp;#34;op&amp;#34;: &amp;#34;replace&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;path&amp;#34;: &amp;#34;/spec/template/spec/containers/0/env/%d/value&amp;#34; % i,
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; &amp;#34;value&amp;#34;: env[i][&amp;#34;value&amp;#34;] + add}],
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt; open(&amp;#34;/root/patch.json&amp;#34;, &amp;#34;w&amp;#34;))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;print(&amp;#34;patch written for env index&amp;#34;, i)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude patch deploy tango-blueprint-service-app --type&lt;span class="o"&gt;=&lt;/span&gt;json --patch-file&lt;span class="o"&gt;=&lt;/span&gt;/root/patch.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;5. Wait for the rollout.&lt;/strong&gt; The Deployment uses the &lt;code&gt;Recreate&lt;/code&gt; strategy with a single replica, so the Blueprint service is briefly down while the pod is replaced:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude rollout status deploy/tango-blueprint-service-app --timeout&lt;span class="o"&gt;=&lt;/span&gt;180s
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="verification"&gt;Verification&lt;/h2&gt;
&lt;p&gt;Learned from wrong turn #3: verify each layer, not just the end result.&lt;/p&gt;
&lt;p&gt;The property is on the Deployment:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude get deploy tango-blueprint-service-app &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -o &lt;span class="nv"&gt;jsonpath&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;{.spec.template.spec.containers[0].env[?(@.name==&amp;#34;JAVA_OPTS&amp;#34;)].value}&amp;#39;&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; tr &lt;span class="s1"&gt;&amp;#39; &amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;\n&amp;#39;&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -i static
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-Dspring.web.resources.static-locations=file:/override/,classpath:/META-INF/resources/,...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-Dspring.resources.static-locations=file:/override/,classpath:/META-INF/resources/,...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The override file is mounted in the new pod:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude &lt;span class="nb"&gt;exec&lt;/span&gt; deploy/tango-blueprint-service-app -c tango-blueprint-service-app -- &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ls -la /override/api-docs/classic-apis/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And the actual test, the spec as served through the gateway:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -sk https://vcfa.domain.com/blueprint/api-docs/classic-apis/api-doc-public-classic-vra-2019-09-12.json &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; grep -A2 &lt;span class="s1"&gt;&amp;#39;&amp;#34;servers&amp;#34;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;servers&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://vcfa.domain.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hard-reload the API Help Center page (the SPA caches aggressively) and the Servers box shows the appliance FQDN. Try It Out now sends requests where they belong.&lt;/p&gt;
&lt;h2 id="what-this-does-and-does-not-fix"&gt;What This Does and Does Not Fix&lt;/h2&gt;
&lt;p&gt;Worth being precise here, because the Help Center is bigger than one spec:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fixed:&lt;/strong&gt; the 2019-09-12 Blueprint spec shown above. Its 2019-01-15 sibling from the same &lt;code&gt;/blueprint/api-docs/classic-apis/&lt;/code&gt; directory - if it shows the same URL - is the same fix: repeat step 1 for it, then rebuild the ConfigMap with both files: &lt;code&gt;kubectl -n prelude create configmap blueprint-apidocs-override --from-file=/root/api-doc-public-classic-vra-2019-09-12.json --from-file=/root/api-doc-public-classic-vra-2019-01-15.json --dry-run=client -o yaml | kubectl -n prelude replace -f -&lt;/code&gt;. The mounted volume picks up the change on its own within a minute or so; no restart needed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Same pattern, different pod:&lt;/strong&gt; the catalog, deployment, and policies tiles point at &lt;code&gt;api-doc-public-classic-vra-*.yaml&lt;/code&gt; files under &lt;code&gt;/catalog/api-docs/classic-apis/&lt;/code&gt; - the same baked-file shape, owned by the catalog service. If those show the same URL, it is the same fix against that Deployment.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Possibly not broken at all:&lt;/strong&gt; several tiles point at live springdoc endpoints (&lt;code&gt;/identity/doc/v3/api-docs&lt;/code&gt;, &lt;code&gt;/iaas-api/swagger/v3/api-docs/...&lt;/code&gt;, &lt;code&gt;/project-service/api/swagger/v3/api-docs/...&lt;/code&gt;). Those generate their spec per request, so check before assuming. A quick &lt;code&gt;curl ... | jq .servers&lt;/code&gt; against each URL from the index tells you which ones need attention.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="caveats"&gt;Caveats&lt;/h2&gt;
&lt;p&gt;This is an unsupported modification to a Broadcom appliance, and it behaves accordingly:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It survives pod restarts, and nothing reconciles it away.&lt;/strong&gt; The fix lives in the Deployment spec, so every pod the Deployment creates from now on gets the mount and the property - the verified state above is itself a freshly recreated pod. The &lt;code&gt;tango-blueprint-service&lt;/code&gt; Helm release is deployed once at install/upgrade time with nothing reconciling it continuously, so it should come back intact after an appliance reboot as well; re-check the spec once after your next reboot to confirm. (Do not assume this generalizes: several other components in the same namespace &lt;em&gt;are&lt;/em&gt; Flux-managed and would revert an edit within minutes.)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A product upgrade will wipe it.&lt;/strong&gt; The LCM re-renders the Deployment from the new chart. Expect to re-apply, and re-check after any lifecycle operation.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Roll back at any time&lt;/strong&gt; with the backup from step 2. Not with &lt;code&gt;kubectl apply&lt;/code&gt;, though - the backup carries the pre-patch &lt;code&gt;resourceVersion&lt;/code&gt; (so the apply is rejected as a conflict), and client-side apply against a Helm-created object has no &lt;code&gt;last-applied-configuration&lt;/code&gt; to prune from, so the added volume would survive the merge and the next pod would wedge on the then-deleted ConfigMap. &lt;code&gt;kubectl replace&lt;/code&gt; does a full PUT and removes the volume, mount, and &lt;code&gt;JAVA_OPTS&lt;/code&gt; additions in one shot; strip the &lt;code&gt;resourceVersion&lt;/code&gt; so the PUT is unconditional, and delete the ConfigMap only after the Deployment no longer references it:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sed &lt;span class="s1"&gt;&amp;#39;/^ resourceVersion:/d&amp;#39;&lt;/span&gt; /root/tango-blueprint-deploy.backup.yaml &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;|&lt;/span&gt; kubectl -n prelude replace -f -
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude rollout status deploy/tango-blueprint-service-app --timeout&lt;span class="o"&gt;=&lt;/span&gt;180s
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kubectl -n prelude delete configmap blueprint-apidocs-override
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;File an SR anyway.&lt;/strong&gt; As of this writing there is no KB and nothing in the 9.1 release notes for this - the proper fix has to ship in the product, and that only happens if it gets reported. Reference the build number and the &lt;code&gt;&amp;quot;Generated server url&amp;quot;&lt;/code&gt; value in the spec.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you only need a working Try It Out for yourself and would rather not touch the appliance at all, there is a zero-footprint alternative: download the spec, fix &lt;code&gt;servers[0].url&lt;/code&gt; in the copy, and import it into Postman; it seeds the collection&amp;rsquo;s &lt;code&gt;baseUrl&lt;/code&gt; from the spec, and auth works as described in the &lt;a href="https://cosmin.us/vcf-automation-9-1-api-getting-started/"&gt;getting started post&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="final-notes"&gt;Final Notes&lt;/h2&gt;
&lt;p&gt;The frustrating part of this bug is how little is actually wrong: every path in the spec is correct, authentication is correct, the API itself works. One string, frozen at build time on some build machine where the Blueprint service happened to listen on port 8600, breaks the one feature the page exists to provide.&lt;/p&gt;
&lt;p&gt;The investigation pattern is the reusable part. When a value appears in a rendered page and nothing in the configuration produces it, stop grepping ConfigMaps and follow the bytes instead: DevTools tells you the exact URL, the response headers tell you whether it is static or generated, and the gateway routes tell you which pod actually owns it. In this case each of those three steps invalidated an otherwise-reasonable fix (the nginx rewrite targeted the wrong pod, the in-pod &lt;code&gt;sed&lt;/code&gt; targeted a file that does not exist, and the editor-based patch failed silently) before the resource-shadowing approach landed on the one layer where the platform genuinely offers an override.&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://cosmin.us/vcf-automation-9-1-api-getting-started/"&gt;VCF Automation 9.1 API Getting Started&lt;/a&gt;: authentication against the same appliance, and where the API docs moved in 9.1&lt;/li&gt;
&lt;li&gt;&lt;a href="https://techdocs.broadcom.com/us/en/vmware-cis/vcf/vcf-9-0-and-later/9-1/administration-sdks-cli-and-tools/what-are-the-automation-apis-and-how-do-i-use-them_1.html"&gt;Broadcom TechDocs - What Are the Automation APIs and How Do I Use Them (VCF 9.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.broadcom.com/xapis/org-management-vm-apps-org/latest/"&gt;VM Apps Org APIs on the Broadcom Developer Portal&lt;/a&gt;, the hosted alternative to the in-product Help Center&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.spring.io/spring-boot/reference/web/servlet.html#web.servlet.spring-mvc.static-content"&gt;Spring Boot Reference - Serving Static Content&lt;/a&gt;, the &lt;code&gt;static-locations&lt;/code&gt; resolution order this fix relies on&lt;/li&gt;
&lt;li&gt;&lt;a href="https://springdoc.org/faq.html"&gt;springdoc-openapi FAQ&lt;/a&gt;; how the &amp;ldquo;Generated server url&amp;rdquo; value is computed, and why it goes stale behind a proxy&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item></channel></rss>