Skip to content

docs: flesh out vSphere provider overview, API reference, and CRDs#51

Open
jiazhiguang wants to merge 3 commits intomasterfrom
docs/flesh-out-vsphere-provider
Open

docs: flesh out vSphere provider overview, API reference, and CRDs#51
jiazhiguang wants to merge 3 commits intomasterfrom
docs/flesh-out-vsphere-provider

Conversation

@jiazhiguang
Copy link
Copy Markdown

@jiazhiguang jiazhiguang commented Apr 17, 2026

Summary by CodeRabbit

  • Documentation
    • Added API reference and individual docs for VMware vSphere custom resources (VSphereCluster, VSphereMachine, VSphereMachineTemplate, VSphereMachineConfigPool, VSphereFailureDomain, VSphereDeploymentZone) and specified their API group (infrastructure.cluster.x-k8s.io/v1beta1).
    • Marked VMware vSphere provider as "Available" with expanded overview and key features.
    • Clarified workload object namespace must be cpaas-system.
    • Added frontmatter/metadata for the new docs.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 17, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: c39bdc30-8d18-448c-ac25-e9843eb7a018

📥 Commits

Reviewing files that changed from the base of the PR and between e94b0da and a3b2c86.

📒 Files selected for processing (4)
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheredeploymentzones.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachines.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachinetemplates.yaml
✅ Files skipped from review due to trivial changes (1)
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachines.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachinetemplates.yaml

Walkthrough

Adds extensive VMware vSphere documentation and six new vSphere CRD manifests (VSphereCluster, VSphereMachine, VSphereMachineTemplate, VSphereMachineConfigPool, VSphereFailureDomain, VSphereDeploymentZone); marks provider Available; tightens a create-cluster parameter namespace constraint.

Changes

Cohort / File(s) Summary
Provider Overview & Status
docs/en/overview/feature.mdx, docs/en/overview/providers/index.mdx, docs/en/overview/providers/vmware-vsphere.mdx
Marked VMware vSphere as Available; added frontmatter, expanded overview, key features, supported resources, and concrete documentation links.
Provider API Index
docs/en/apis/providers/vmware-vsphere/index.mdx
Replaced placeholder Status/Planned sections with intro text, a “Custom Resources” table listing vSphere CRDs, and an API Group note (infrastructure.cluster.x-k8s.io/v1beta1).
API Resource docs (new)
docs/en/apis/providers/vmware-vsphere/vspherecluster.mdx, .../vspheremachine.mdx, .../vspheremachinetemplate.mdx, .../vspheremachineconfigpool.mdx, .../vspherefailuredomain.mdx, .../vspheredeploymentzone.mdx
Added six MDX pages with frontmatter, queries, and <K8sCrd> components to render each CRD.
Create-cluster parameter update
docs/en/create-cluster/vmware-vsphere/parameter-checklist.mdx
Restricted “Workload object namespace” to cpaas-system and updated validation/notes and example.
CRD Manifests (new, large)
docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vsphereclusters.yaml, ..._vspheremachines.yaml, ..._vspheremachinetemplates.yaml, ..._vspheremachineconfigpools.yaml, ..._vspherefailuredomains.yaml, ..._vspheredeploymentzones.yaml
Added six CRD YAMLs with multi-version schemas (v1alpha3/v1alpha4/v1beta1 as applicable), OpenAPI v3 validation, printer columns, and enabled status subresources; v1beta1 served/storage where present.

Sequence Diagram(s)

(omitted)

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

Suggested reviewers

  • wgkingk

Poem

🐰 I hopped through docs with nimble feet,
Six CRDs and pages, tidy and neat.
Status flipped and namespaces right,
vSphere now gleams in docbook light. ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs: flesh out vSphere provider overview, API reference, and CRDs' accurately and specifically summarizes the main changes in the pull request, which include expanding vSphere provider documentation with comprehensive overview, API references, and CRD definitions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/flesh-out-vsphere-provider

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/en/overview/providers/vmware-vsphere.mdx (1)

45-49: Nit: link style is inconsistent within the same list.

Lines 45, 47, and 48 use explicit .mdx file references, while lines 46 and 49 use trailing-slash directory links. For consistency and easier maintenance, consider normalizing to explicit index.mdx references.

♻️ Suggested normalization
 - [Installation Guide](../../install/vmware-vsphere.mdx)
-- [Creating Clusters](../../create-cluster/vmware-vsphere/)
+- [Creating Clusters](../../create-cluster/vmware-vsphere/index.mdx)
 - [Managing Nodes](../../manage-nodes/vmware-vsphere.mdx)
 - [Upgrading Clusters](../../upgrade-cluster/vmware-vsphere.mdx)
-- [Provider APIs](../../apis/providers/vmware-vsphere/)
+- [Provider APIs](../../apis/providers/vmware-vsphere/index.mdx)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/en/overview/providers/vmware-vsphere.mdx` around lines 45 - 49,
Normalize the inconsistent link styles in the VMwarе vSphere overview list by
replacing directory-style links that end with a trailing slash (the entries
pointing to ../../create-cluster/vmware-vsphere/ and
../../apis/providers/vmware-vsphere/) with explicit index.mdx file references
(e.g., ../../create-cluster/vmware-vsphere/index.mdx and
../../apis/providers/vmware-vsphere/index.mdx) so all list entries consistently
use explicit .mdx paths like the other items (Installation Guide, Managing
Nodes, Upgrading Clusters).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachineconfigpools.yaml`:
- Line 115: The regex for hostname validation in the CRD's pattern field
currently contains a double-backslash sequence
"(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*" which will be interpreted as a literal
backslash in YAML rather than an escaped dot; get explicit user approval before
changing generated code, then verify the intended upstream CAPV pattern and, if
upstream is wrong here, update the generated YAML to use a single-escaped dot
(e.g. "\.[a-z0-9]...") or properly quote/escape the pattern so the regex matches
DNS subdomains, and if this is an upstream generator bug open an issue/PR in the
CAPV repo instead of only patching locally.

---

Nitpick comments:
In `@docs/en/overview/providers/vmware-vsphere.mdx`:
- Around line 45-49: Normalize the inconsistent link styles in the VMwarе
vSphere overview list by replacing directory-style links that end with a
trailing slash (the entries pointing to ../../create-cluster/vmware-vsphere/ and
../../apis/providers/vmware-vsphere/) with explicit index.mdx file references
(e.g., ../../create-cluster/vmware-vsphere/index.mdx and
../../apis/providers/vmware-vsphere/index.mdx) so all list entries consistently
use explicit .mdx paths like the other items (Installation Guide, Managing
Nodes, Upgrading Clusters).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 759ad669-b8c3-4051-bfe2-f86c58cc0e1d

📥 Commits

Reviewing files that changed from the base of the PR and between e5025f8 and 7d11b5b.

📒 Files selected for processing (17)
  • docs/en/apis/providers/vmware-vsphere/index.mdx
  • docs/en/apis/providers/vmware-vsphere/vspherecluster.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheredeploymentzone.mdx
  • docs/en/apis/providers/vmware-vsphere/vspherefailuredomain.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachine.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachineconfigpool.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachinetemplate.mdx
  • docs/en/create-cluster/vmware-vsphere/parameter-checklist.mdx
  • docs/en/overview/feature.mdx
  • docs/en/overview/providers/index.mdx
  • docs/en/overview/providers/vmware-vsphere.mdx
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vsphereclusters.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheredeploymentzones.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachineconfigpools.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachines.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachinetemplates.yaml

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 17, 2026

Deploying alauda-immutable-infra with  Cloudflare Pages  Cloudflare Pages

Latest commit: a3b2c86
Status: ✅  Deploy successful!
Preview URL: https://41aaf04a.alauda-immutable-infra.pages.dev
Branch Preview URL: https://docs-flesh-out-vsphere-provi.alauda-immutable-infra.pages.dev

View logs

@jiazhiguang jiazhiguang force-pushed the docs/flesh-out-vsphere-provider branch from 7d11b5b to 2d7546b Compare April 21, 2026 10:59
Ubuntu and others added 2 commits April 21, 2026 20:10
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Currently only cpaas-system is supported for storing vSphere workload
cluster objects; using another namespace may cause cluster creation
to fail. The <namespace> placeholder is retained in the manifests.

Also sync VSphereMachineConfigPool CRD with the upstream hostname regex
escape fix from cluster-api-provider-vsphere commit 012a6e775. The
previous pattern used `\\.` which YAML's plain scalar preserved as two
literal backslashes, making the regex reject any multi-label hostname
such as node1.example.com.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jiazhiguang jiazhiguang force-pushed the docs/flesh-out-vsphere-provider branch from 2d7546b to e94b0da Compare April 21, 2026 12:10
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml (1)

366-367: Minor: description says “list” but schema is a keyed map.

networkConfigurations is described as “a list of network configurations within this failure domain,” but the schema declares x-kubernetes-list-type: map with x-kubernetes-list-map-keys: [networkName] (Line 546-548), i.e. a keyed map-list. This wording comes from upstream, so only worth fixing if you’re happy to diverge from the generated source; otherwise ignore. No functional impact.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml`
around lines 366 - 367, The description for networkConfigurations incorrectly
calls it a "list" while the schema uses a keyed map; update the description for
networkConfigurations to reflect that it's a map keyed by networkName (or "a
keyed map of network configurations keyed by networkName") to match the schema
that uses x-kubernetes-list-type: map and x-kubernetes-list-map-keys:
[networkName].
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheredeploymentzones.yaml`:
- Around line 80-81: The CRD description for the conditions field is incorrect:
update the description string under the VSphereDeploymentZone schema (the
conditions property) so it references VSphereDeploymentZone instead of
VSphereMachine; search for the three occurrences of the conditions description
(the entries adjacent to the VSphereDeploymentZone schema/conditions property)
and replace "VSphereMachine" with "VSphereDeploymentZone" in each occurrence
(the same replacement should be applied at the two other matching descriptions
noted in the comment).
- Around line 323-337: Update the descriptions for the schema fields message and
reason to match the validation (minLength: 1) by clarifying that while the
fields may be omitted, they must not be empty strings when provided (e.g., "This
field may be omitted; if present it MUST be a non-empty string."). Locate the
message and reason entries in the VsphereDeploymentZones CRD and replace the
current "may be empty" wording with text that enforces the non-empty requirement
to align documentation with the minLength constraint.

In
`@docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml`:
- Around line 456-460: Update the CRD definitions for useRoutes in both
dhcp4Overrides and dhcp6Overrides: change the schema type from "string" to
"boolean" for the useRoutes field (retain the existing description), ensuring
its type matches the sibling use* boolean flags (e.g., useDNS, useHostname) and
the intended true/false semantics; locate the useRoutes entries inside the
dhcp4Overrides and dhcp6Overrides object schemas and replace type: string with
type: boolean.

---

Nitpick comments:
In
`@docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml`:
- Around line 366-367: The description for networkConfigurations incorrectly
calls it a "list" while the schema uses a keyed map; update the description for
networkConfigurations to reflect that it's a map keyed by networkName (or "a
keyed map of network configurations keyed by networkName") to match the schema
that uses x-kubernetes-list-type: map and x-kubernetes-list-map-keys:
[networkName].
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: fa99d4b3-11db-4775-bf64-f0ec7ea9c51c

📥 Commits

Reviewing files that changed from the base of the PR and between 2d7546b and e94b0da.

📒 Files selected for processing (17)
  • docs/en/apis/providers/vmware-vsphere/index.mdx
  • docs/en/apis/providers/vmware-vsphere/vspherecluster.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheredeploymentzone.mdx
  • docs/en/apis/providers/vmware-vsphere/vspherefailuredomain.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachine.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachineconfigpool.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachinetemplate.mdx
  • docs/en/create-cluster/vmware-vsphere/parameter-checklist.mdx
  • docs/en/overview/feature.mdx
  • docs/en/overview/providers/index.mdx
  • docs/en/overview/providers/vmware-vsphere.mdx
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vsphereclusters.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheredeploymentzones.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspherefailuredomains.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachineconfigpools.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachines.yaml
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachinetemplates.yaml
✅ Files skipped from review due to trivial changes (11)
  • docs/en/apis/providers/vmware-vsphere/vspheredeploymentzone.mdx
  • docs/en/overview/feature.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachineconfigpool.mdx
  • docs/en/apis/providers/vmware-vsphere/vspherecluster.mdx
  • docs/en/overview/providers/index.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachinetemplate.mdx
  • docs/en/apis/providers/vmware-vsphere/vspherefailuredomain.mdx
  • docs/en/create-cluster/vmware-vsphere/parameter-checklist.mdx
  • docs/en/apis/providers/vmware-vsphere/index.mdx
  • docs/en/apis/providers/vmware-vsphere/vspheremachine.mdx
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachineconfigpools.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vsphereclusters.yaml

Sync CRD description fixes from cluster-api-provider-vsphere commit
7a5fa5119:

- VSphereDeploymentZone status.conditions description erroneously
  referenced VSphereMachine across all three schema versions; now
  points to VSphereDeploymentZone.

- v1beta1 Condition message/reason said "This field may be empty"
  while the kubebuilder markers enforce minLength: 1, so a literal ""
  is rejected. Reworded to "optional, but if set it must not be
  empty." Origin of the contradiction is upstream CAPI.

- DHCPOverrides.UseRoutes is typed as *string and accepts true,
  false, or route (tests pass "route"), but its description implied a
  bool. Aligned with UseDomains wording across vspherefailuredomains,
  vspheremachines, and vspheremachinetemplates CRDs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@chinameok
Copy link
Copy Markdown
Collaborator

Review Findings Report

Scope

  • PR: alauda/immutable-infra-docs#51 at head e94b0da
  • Latest master baseline: fetched origin/master at f200c60
  • Truth source used for VMware provider behavior/schema: local repo /Users/changjia/alauda/cluster-api-provider-vsphere
  • I kept this read-only and reviewed origin/master directly instead of switching your current branch

Repository Evidence Used

Read-only Result

Latest master still does not meet the HCS-quality AI-usable bar because the VMware overview/API landing pages are placeholders that still say “In Development” and “documentation will be available later” in vmware-vsphere.mdx and index.mdx. PR #51 is directionally correct and fixes that biggest baseline gap.

After comparing PR #51 against the provider source, I still see four issues worth fixing before I would call the VMware docs source-faithful and HCS-level AI-usable.

Findings

  1. P2 | PR #51 | The imported VSphereMachineConfigPool CRD no longer matches the provider source

    On the PR branch, docs/shared/crds/providers/vmware-vsphere/infrastructure.cluster.x-k8s.io_vspheremachineconfigpools.yaml line 115 rewrites the hostname pattern from \\. to \.. The local truth source still ships \\. in infrastructure.cluster.x-k8s.io_vspheremachineconfigpools.yaml. If that regex really needs correction, the fix belongs in the provider source and then the docs should be re-synced. Fixing only the docs mirror makes the API reference describe a schema users do not actually install.

  2. P2 | PR #51 | The new API surface is still incomplete for a page titled “Provider APIs”

    On the PR branch, the new API index only documents six resources. But the provider source still ships at least VSphereVM, VSphereClusterIdentity, and VSphereClusterTemplate in README.md and infrastructure.cluster.x-k8s.io_vspherevms.yaml. This omission is already user-visible because the current docs tell operators to inspect vspherevm during verification and troubleshooting in manage-nodes.mdx and create-cluster-in-global.mdx. If the page is meant to be the provider API reference, it is incomplete; if it is intentionally workflow-scoped, the title and framing need to say that explicitly.

  3. P2 | PR #51 | The new “only cpaas-system is supported” namespace rule is not source-backed

    The PR adds “Currently only cpaas-system is supported” to the parameter checklist. I could not verify that in the provider truth source. The controller deployment does not set a watch namespace in deployments.yaml, and the pool CRD only requires same-namespace references to the owning Cluster in infrastructure.cluster.x-k8s.io_vspheremachineconfigpools.yaml. Existing cluster-creation docs also consistently use a generic <namespace> in create-cluster-in-global.mdx. Unless another product-layer codebase hard-enforces cpaas-system, this should not be documented as a provider constraint.

  4. P2 | Master-wide VMware docs | cloneMode and powerOffMode are still treated as opaque inputs

    The current checklist tells users to fill <clone_mode> and <power_off_mode> without exposing the source-backed semantics in parameter-checklist.mdx, while the manifest examples wire those values straight into VSphereMachineTemplate in create-cluster-in-global.mdx. The provider CRD says LinkedClone requires a snapshot, falls back to FullClone if none exists, and ignores diskGiB when linked cloning; it also documents that powerOffMode only supports hard, soft, and trySoft, with default hard, in infrastructure.cluster.x-k8s.io_vspheremachinetemplates.yaml and infrastructure.cluster.x-k8s.io_vspheremachinetemplates.yaml. Without that, AI or users can choose linkedClone and still assume the requested system-disk expansion will take effect, which is false.

CodeRabbit Assessment

  • overview/providers/vmware-vsphere.mdx link-style normalization: valid nit, but low value and not worth review bandwidth.
  • vspheremachineconfigpools hostname regex: the underlying concern is plausible, but the current PR resolves it in the docs mirror only. That is the wrong layer because it creates docs/source drift. I would not keep a docs-only fix here.
  • vspheredeploymentzones condition-description mismatch and message/reason wording mismatch: valid inconsistencies in the generated/provider-side source. I would track them in the provider repo and then re-sync the docs mirror, not hand-edit only the docs repo unless you explicitly accept divergence from source truth.
  • vspherefailuredomains useRoutes should be boolean: not valid. Upstream CAPV API types define UseRoutes as *string, and the local truth-source CRD also renders type: string, so changing the docs to boolean would make the reference incorrect.
  • networkConfigurations says “list” while schema is a map-list: technically true but minor and source-generated. Not a blocking issue.

Non-Issues Or Confirmed Good Patterns

  • The current VMware cluster-creation docs are much stronger than the old overview/API pages suggest. The parameter checklist plus baseline/apply-order flow are already real operator docs, not placeholders.
  • The static-IP rollout model is documented well. Control plane and worker examples both use maxSurge: 0, which matches slot-based config-pool semantics and is on the same track as the HCS docs.
  • The docs correctly distinguish VSphereDeploymentZone from VSphereFailureDomain for worker failureDomain, which matches the source CRD semantics.
  • The troubleshooting sections already point users to the right runtime objects, especially VSphereMachine, VSphereVM, and ClusterResourceSetBinding.

AI Usability Delta vs HCS

  • VMware docs are now structurally close on the creation path because they already have a pre-YAML checklist, apply order, and runtime verification.
  • They are still weaker than HCS docs in three places: input provenance, user-vs-controller ownership boundaries, and API completeness.
  • I would not force a new page immediately, but if the goal is “AI can prepare everything without back-and-forth,” VMware probably wants an infrastructure-preparation page or a much stronger checklist section that explicitly says where each vCenter value comes from and which values are external prerequisites versus provider-owned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants