Skip to content

Releases: eblackrps/HyperVClusterPlatform

v21.1.0 - HyperVClusterPlatform

Choose a tag to compare

@eblackrps eblackrps released this 12 Apr 15:00

Added

  • Rollback visibility: Invoke-HVClusterPlatform now returns RollbackStatus, RollbackActions, and RollbackErrors when enforcement fails after mutation begins.
  • Artifact identity hardening: reports, snapshots, journals, telemetry, fleet reports, DR snapshots, and certification reports now use operation-scoped unique filenames.
  • Release package asset: Scripts/New-Release.ps1 now builds a versioned release ZIP asset for GitHub releases.

Fixed

  • CLI precedence: an explicit -Mode Audit no longer yields to Mode='Enforce' inside a config file.
  • Cluster validation semantics: skipped validation now reports as skipped instead of failed.
  • Fleet status semantics: audit fleet runs now return Compliant or NonCompliant instead of overloading enforcement-style success states.
  • Fleet temp config hygiene: inline fleet config objects are staged in an operation-specific workspace instead of anonymous global temp files.
  • Release automation: GitHub release creation now checks the gh exit code before reporting success.
  • Alerting semantics: Invoke-HVHealthAlertPolicy now distinguishes alert requirement, attempt, and actual delivery.
  • Secret logging: vault and config-secret logs no longer emit raw secret reference names.

Changed

  • Module manifest: Version bumped to 21.1.0.
  • Documentation: README, roadmap, and release metadata now document the current result contract and release packaging flow without hard-coded test-count drift.

HyperVClusterPlatform v21.0.1

Choose a tag to compare

@eblackrps eblackrps released this 02 Apr 10:48

Fixed

  • Activated GitHub Actions from .github/workflows/ci.yml so remote CI now runs on pushes and pull requests.
  • Corrected the GitHub-hosted Pester configuration to use Run.PassThru, allowing test execution and artifact publishing to complete cleanly.
  • Refreshed workflow dependencies to actions/checkout@v6 and actions/upload-artifact@v7.

Changed

  • Bumped the module manifest and runtime metadata to 21.0.1.
  • Aligned the README, roadmap, and release metadata with the patch release.

v21.0.0 - HyperVClusterPlatform

Choose a tag to compare

@eblackrps eblackrps released this 02 Apr 10:08

Added

  • Public operational exports: Get-HVClusterHealth, Invoke-HVHealthAlertPolicy, and Invoke-HVCertificationSuite are now supported exports alongside the main platform and fleet entry points.
  • Tests/ComplianceReport.Tests.ps1: Regression coverage for HTML-encoded drift details so report output cannot duplicate entries or emit raw markup.
  • LICENSE and PSScriptAnalyzerSettings.psd1: production repository metadata and lint settings aligned to the maintained code surface.

Fixed

  • Command resolution hardening: pinned FailoverClusters and Hyper-V cmdlets to the intended Windows modules so VMware PowerCLI command collisions no longer break cluster, rollback, or live-migration flows.
  • Secret-backed config loading: preserved *SecretName properties through config import, resolved them during platform execution, and redacted sensitive override values in logs.
  • Compliance report safety: drift details are now encoded exactly once in HTML output.
  • DSC cloud witness support: HVClusterResource now supports Cloud witness credentials and can converge cloud quorum configurations.
  • Certification compliance scoring: compliance checks now use the supplied or current witness type instead of hardcoding None.
  • Platform result shape: Invoke-HVClusterPlatform now returns ClusterName, allowing fleet reporting and telemetry exports to retain identity.

Changed

  • Module manifest: Version bumped to 21.0.0.
  • Fleet, telemetry, and release infrastructure: CI now lint-checks maintained production code paths, generated local test output is no longer tracked, and release metadata reflects the hardened production name.

v20.0.0 - Production Certification Suite

Choose a tag to compare

@eblackrps eblackrps released this 02 Mar 17:37

v20.0.0 - Production Certification Suite

What's new in v20.0.0

  • Invoke-HVCertificationSuite: 10-domain production certification gate (ClusterCore, NodeHealth, NetworkConfig, StorageConfig, WitnessConfig, SecurityBaseline, DSCCompliance, TelemetryExport, LiveMigration, DisasterRecovery).
  • 121 Pester tests, 0 failures across 15 test files.
  • Bug fix: NodeValidation.ps1 - Remove-PSSession wrapped in try/catch.

Full v9-v20 summary

  • v9.0.0: Network automation - adapter classification + drift
  • v10.0.0: VM placement - preferred owners + anti-affinity
  • v11.0.0: DSC resource - full Get-/Test-/Set-TargetResource
  • v12.0.0: Storage - CSV state + drift scoring
  • v13.0.0: Health monitoring + multi-channel alerting
  • v14.0.0: Secret management (SecretManagement + CredentialManager)
  • v15.0.0: Fleet orchestration - multi-cluster runner
  • v16.0.0: Enhanced reporting - Chart.js trends + JSON telemetry
  • v17.0.0: PSGallery CI + auto-versioning scripts
  • v18.0.0: Live migration readiness + orchestration
  • v19.0.0: Disaster recovery snapshots + readiness scoring
  • v20.0.0: 10-domain production certification suite

See CHANGELOG.md for full details.

v8.0.0 — Production Hardening (WS2022 + WS2025)

Choose a tag to compare

@eblackrps eblackrps released this 02 Mar 11:31

HyperVClusterPlatform v8.0.0

Production-hardened release. Supports Windows Server 2022 and Windows Server 2025.


Bug Fixes

  • DriftEngine: Array comparison rewritten with Compare-Object (symmetric diff). The v7 bug used -ne on PowerShell arrays which filters elements rather than comparing sets — it could silently report 0 drift when node membership had changed.
  • DesiredState: Get-HVClusterCurrentState now safely calls .ToString() on QuorumType.

New Modules

File Purpose
Private/Preflight.ps1 Admin rights, OS version, Windows Features, domain membership, DNS checks
Private/NodeValidation.ps1 Per-node WinRM + feature + domain validation before any changes
Private/Configuration.ps1 JSON config file loader with environment override support (Dev/Staging/Prod)

New Features

  • OS detection (Get-HVOSProfile) — WS2022 (build 20348), WS2025 (build 26100), WS2019, Unknown
  • Full witness support — Disk, Cloud (Azure Blob Set-ClusterQuorum -CloudWitness), File Share, None — all idempotent
  • Real rollback engine — uses ClusterExistedBefore snapshot flag; destroys cluster if this run created it, or removes only added nodes if it pre-existed
  • File-based rotating logsInitialize-HVLogging writes HVCluster-YYYYMMDD.log, retains last N files, color-coded console output
  • Config file support-ConfigFile .\Config\prod.json -Environment Prod with inline env overrides

New Parameters on Invoke-HVClusterPlatform

-ConfigFile, -Environment, -LogPath, -SkipPreFlight, -SkipNodeValidation, -CloudWitnessStorageAccount, -CloudWitnessStorageKey, -FileShareWitnessPath

Tests (all mocked — no live cluster required)

  • Tests/DriftEngine.Tests.ps1 — array bug regression, score correctness, OS detection, edge cases
  • Tests/Preflight.Tests.ps1 — admin, OS, features, domain, DNS, node validation scenarios
  • Tests/Rollback.Tests.ps1 — snapshot fixtures, cluster creation/removal, node diff logic
  • Tests/Configuration.Tests.ps1 — config loading, field validation, environment overrides

CI/CD

GitHub Actions and Azure DevOps pipelines now run 3 stages: PSScriptAnalyzer lint → Pester tests + coverage → manifest validation


Quick start

Import-Module .\HyperVClusterPlatform.psd1 -Force

# Audit (read-only)
Invoke-HVClusterPlatform -ClusterName "ProdCluster" -Nodes @("NODE1","NODE2") -ClusterIP "10.10.10.10" -WitnessType Disk -Mode Audit

# Enforce with Cloud witness
Invoke-HVClusterPlatform -ClusterName "ProdCluster" -Nodes @("NODE1","NODE2","NODE3") -ClusterIP "10.10.10.10" -WitnessType Cloud -Mode Enforce -CloudWitnessStorageAccount "myacct" -CloudWitnessStorageKey "base64key=="

# From config file
Invoke-HVClusterPlatform -ConfigFile .\Config\prod.json -Environment Prod -Mode Enforce

See CHANGELOG.md for full details and ROADMAP.md for the next 9 planned rounds (v9–v17).