Skip to content

[Docs]: development.md stale references and incorrect mental models #177

Description

@mrhillsman

Documentation Type

Fix incorrect information

Location

docs/development.md

Description

docs/development.md has stale references and mental model errors that diverge from the current codebase. Found during a documentation audit using docs/documentation-audit.md.

String Replacements

  1. Line 7 — Go version 1.25+ should be 1.26+ (go.mod says go 1.26)
  2. Line 429 — Project structure listing is missing the orchestrator/ package (should appear between audit/ and workloads/)

Mental Model Fixes

  1. Lines 452–458 (Architecture Layers table)audit is listed in Layer 4 but belongs in Layer 1 (it performs no orchestration, just recording). orchestrator is missing from Layer 4 (it is where errgroup concurrency and the RunOrchestrator/CleanupOrchestrator live).

  2. Lines 570–577 (MultiVMWorkload interface listing) — Shows the old Roles() []string method. The actual interface uses RoleDistribution() []RoleSpec, where RoleSpec has Role string and VMCount int fields.

  3. Lines 579–585 (Multi-VM workload pattern instructions) — Steps 2–3 reference Roles() and len(Roles()). Should reference RoleDistribution() returning []RoleSpec with per-role VM counts, and explain that VMCount() sums the RoleSpec.VMCount values.

  4. Lines 519–520 (Override table)DataVolumeTemplates() row says default returns nil but omits the error return. Actual signature: DataVolumeTemplates() ([]kubevirtv1.DataVolumeTemplateSpec, error).

  5. Line 521 (Override table)ServiceSpec(namespace) takes no argument in the actual interface: ServiceSpec() *corev1.Service.

  6. Line 597 (Storage-backed workloads section) — References "the orchestrator's namespaceDataVolumes helper" — the function is now exported as NamespaceDataVolumes in internal/orchestrator/types.go.

  7. Line 459 (Concurrency pattern section) — Says parallel operations use errgroup.Group across packages. Orchestration concurrency now lives in internal/orchestrator/orchestrator.go, not scattered across cmd/ and multiple internal packages.

Suggested Content

  • Update Go prerequisite to 1.26+
  • Add orchestrator/ to project structure listing
  • Move audit to Layer 1 and add orchestrator to Layer 4 in the layers table
  • Replace Roles() []string with RoleDistribution() []RoleSpec in the MultiVMWorkload interface listing and pattern instructions
  • Fix DataVolumeTemplates() to show ([]kubevirtv1.DataVolumeTemplateSpec, error) return
  • Fix ServiceSpec() to remove the namespace parameter
  • Update NamespaceDataVolumes path to internal/orchestrator/types.go
  • Update concurrency narrative to reference internal/orchestrator/orchestrator.go

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions