11 KiB
VMware vSphere Phase-1 Execution Plan
Last updated: 2026-03-31 Status: ACTIVE Governance surfaces:
status.json.candidate_lanes.platform-admission-executionstatus.json.resolved_decisions.vmware-vsphere-vcenter-first-admission-model
Intent
Pulse now has a locked architecture recommendation for VMware vSphere. This document turns that recommendation into an executable phase-1 plan so implementation can proceed without drifting into a provider-specific island, and so the harness can distinguish real pre-support progress from the final support claim.
Current Checkpoint
Current governed checkpoint: first-lab-ready, not supported.
That means:
- the architecture and support floor are locked
- the bounded shared phase-1 implementation floor is landed
- automated non-live proof covers the shared onboarding, projection,
alerts/history, Assistant-read, and exclusion boundaries well enough that
the next highest-value step is a real
vCenterrun - the remaining blockers to a support claim are live-only facts: privilege floor, supported version floor, and real-signal fidelity
This checkpoint is an implementation handoff, not a product support claim.
Support Decision
Pulse should add VMware support, but only in one narrow form:
- first-class platform id:
vmware-vsphere - supported entry point:
vCenteronly - primary ingestion model:
api-backed - phase-1 resource projections: canonical
agent,vm, andstorage - phase-1 product stance: read-first
- assistant control:
read-only - recovery support:
n/a
Implementation may continue on that basis. If live validation disproves the minimum privilege bundle, supported version floor, or declared support-floor coverage, Pulse should stop at governance and must not widen the support claim.
Product Sentence
Pulse phase-1 VMware support means a shared platform-connections path to
vCenter that projects ESXi hosts, VMs, and datastores into the canonical
Pulse resource model, surfaces alarms and history through the shared product
surfaces, and keeps assistant behavior read-only.
Why This Is A Separate Lane Slice
This is not just another provider adapter.
It crosses:
- platform onboarding and saved-connection health
- canonical inventory and identity projection
- shared infrastructure, workload, and storage presentation
- shared alert and incident surfaces
- assistant read classification and action boundaries
- support-floor proof before a matrix claim changes
That makes VMware a cross-surface admission problem, not a monitoring-only implementation detail.
Phase-1 Scope
Phase 1 should include:
vCenteronboarding through the sharedPlatform connectionsworkspace- host inventory projected as canonical
agent - VM inventory and runtime state projected as canonical
vm - datastore inventory and capacity state projected as canonical
storage - topology metadata for datacenter, cluster, folder, resource-pool, and placement relationships under those shared resources
- vSphere alarm state, overall health, and related event/task history through shared alert and incident surfaces
- snapshot-tree visibility and recovery-adjacent VM context as read-side workload detail
- assistant read on canonical VMware-backed resources through shared read paths only
Explicit Exclusions
Phase 1 should not include:
- direct
ESXionboarding - agent-first VMware support
physical-disk,system-container, orapp-containerprojections- treating vSphere snapshots as Pulse recovery support
- restore, failover, changed-block recovery, or backup-orchestration claims
- provider-local VMware pages, top-level resource types, or AI tools
- assistant or operator control for VM power, snapshot lifecycle, guest operations, host maintenance, or cluster administration
Execution Slices
1. Platform Connection Admission
Owners:
agent-lifecycleapi-contracts
Slice contract:
docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_ONBOARDING_SPEC.mddocs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_API_RUNTIME_SPEC.md
Deliver:
vCenteradded only through the shared platform-connections workspace- one saved-connection contract for create, update, masked-secret preservation, test, health, and contribution summary
- one backend contract for VMware session ownership, provider ownership, dual API-family access, and stable failure classification under that same saved connection model
- explicit disabled/default behavior, reconnect semantics, and credential ownership on the shared platform-connections path
Required proof:
- real
vCenterconnection succeeds through the governed setup path - auth, TLS, endpoint, and permission failures classify cleanly
- minimum privilege bundle is written down from live validation, not inferred
- supported version floor is written down from live validation, not inferred
- a real
vCentercapability is recorded inLOCAL_CAPABILITIES.mdso the support-floor proof path is explicit and reusable
2. Canonical Projection Floor
Owners:
monitoringunified-resources
Slice contract:
docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_RESOURCE_PROJECTION_SPEC.md
Deliver:
- API-backed ingest from the official vCenter Automation API plus the Virtual Infrastructure JSON API
- one canonical VMware source classification and
platformType: vmware-vsphereon shared resources instead of provider-local source forks - stable identity and dedupe for ESXi hosts, VMs, and datastores
- shared-resource projection with no provider-local
esxi-host,vsphere-vm, orvsphere-datastoretop-level types - relationship metadata for cluster, folder, placement, and datastore attachment without promoting those objects to new top-level Pulse types
Required proof:
- one real
vCenterproduces canonicalagent,vm, andstorageresources end to end as defined in the projection spec - topology, identity, and counts stay coherent across infrastructure and workload surfaces
- no phase-1 path depends on a unified agent being installed on ESXi or guests
3. Alerts, History, And Assistant Read
Owners:
alertsmonitoringai-runtime
Slice contract:
docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_ALERTS_AND_ASSISTANT_SPEC.md
Deliver:
- vSphere alarm and health signals routed through shared alert/incident paths
- event/task/performance context available where the shared monitoring and history model expects it
- assistant read on canonical VMware-backed resources through shared tools and read-state views
- no VMware-specific control verbs, remediation tools, or admin-plane promises
Required proof:
- shared alerts can drill into VMware-backed incidents without a provider-local shell
- assistant can inspect canonical VMware-backed resources without special-case VMware tools or VMware-specific capability exposure
- assistant control remains read-only in both product wording and runtime capability exposure
Automated proof already landed for part of this slice:
tests/integration/tests/38-vmware-ai-chat-mentions.spec.tstests/integration/tests/42-vmware-ai-chat-read-recovery.spec.tsinternal/ai/chat/context_prefetch_additional_test.gointernal/ai/chat/service_tooling_test.gointernal/ai/tools/control_resource_test.go
4. Support Claim Ratchet
Owners:
- release-control governance
- owning subsystem contracts above
Companion proof matrix:
docs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_PROOF_MATRIX.mddocs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_PROOF_RECORD_TEMPLATE.mddocs/release-control/v6/internal/VMWARE_VCENTER_PHASE1_RESOURCE_PROJECTION_SPEC.mddocs/release-control/v6/internal/records/vmware-vcenter-phase1-proof-blocked-2026-03-30.md
Deliver:
- version floor documented
- minimum privilege bundle documented
- explicit phase-1 exclusions documented in support language
- support matrix changed only after live proof exists
- successful proof record written from the shared VMware proof template
- blocked proof state replaced by a dated successful proof record only after the
first real
vCenterpass
Required proof:
- onboarding, inventory, storage, alerts, metrics/history, and assistant read
all hold on a real
vCenter - support wording matches the narrow floor exactly
- the implementation can fail closed without silently inheriting direct-ESXi or recovery support claims
Automated exclusion proof already landed for the shipped floor:
internal/api/route_inventory_test.gotests/integration/tests/41-vmware-phase1-exclusion-integrity.spec.ts
What Must Be True Before Pulse Can Say VMware Is Supported
Pulse should not call VMware supported until all of these are true:
vCenteronboarding works through the shared platform-connections path- the minimum required privilege bundle is validated on a real environment
- the supported
vCenterversion floor is validated on a real environment - ESXi hosts, VMs, and datastores project cleanly into canonical
agent,vm, andstorage - alarm, health, and metrics/history signals appear on the shared alert and monitoring surfaces
- assistant read works on those canonical resources without VMware-specific tools
- product wording keeps direct
ESXi, recovery, and broad control out of the support claim
Known Gaps Requiring Live Validation
These are not reasons to block the planning decision, but they are reasons to block a support claim until proven:
- exact minimum privilege bundle for a production-grade read-first floor
- exact supported
vCenterversion floor - signal quality and consistency of alarms, events, and history across that version floor
- whether guest-identity and snapshot-detail fidelity is sufficient in mixed VMware Tools coverage environments
Primary Source Basis
The architecture lock and this execution plan are grounded in the official VMware/Broadcom APIs:
- vCenter and inventory/control surface: vCenter VM APIs
- detail and topology surface: Virtual Infrastructure JSON API
- alarms: AlarmManager GetAlarm
- snapshots: VirtualMachine snapshot API
- performance/history: PerformanceManager QueryPerfComposite
Next Decision
The next proper move is the first real vCenter proof run.
Additional non-live VMware work is still valid only when it:
- closes a newly found shared-contract or shared-runtime gap
- materially reduces first-lab risk
- strengthens the same governed phase-1 floor instead of adding synthetic VMware-local polish
Do not keep extending VMware through repetitive non-live polish once this plan
is already first-lab-ready.