Releases: eblackrps/HyperVClusterPlatform
Releases · eblackrps/HyperVClusterPlatform
Release list
v21.1.0 - HyperVClusterPlatform
Added
- Rollback visibility:
Invoke-HVClusterPlatformnow returnsRollbackStatus,RollbackActions, andRollbackErrorswhen 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.ps1now builds a versioned release ZIP asset for GitHub releases.
Fixed
- CLI precedence: an explicit
-Mode Auditno longer yields toMode='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
CompliantorNonCompliantinstead 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
ghexit code before reporting success. - Alerting semantics:
Invoke-HVHealthAlertPolicynow 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
Fixed
- Activated GitHub Actions from
.github/workflows/ci.ymlso 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@v6andactions/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
Added
- Public operational exports:
Get-HVClusterHealth,Invoke-HVHealthAlertPolicy, andInvoke-HVCertificationSuiteare 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.LICENSEandPSScriptAnalyzerSettings.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
*SecretNameproperties 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:
HVClusterResourcenow 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-HVClusterPlatformnow returnsClusterName, 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
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)
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-neon PowerShell arrays which filters elements rather than comparing sets — it could silently report 0 drift when node membership had changed. - DesiredState:
Get-HVClusterCurrentStatenow safely calls.ToString()onQuorumType.
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
ClusterExistedBeforesnapshot flag; destroys cluster if this run created it, or removes only added nodes if it pre-existed - File-based rotating logs —
Initialize-HVLoggingwritesHVCluster-YYYYMMDD.log, retains last N files, color-coded console output - Config file support —
-ConfigFile .\Config\prod.json -Environment Prodwith 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 casesTests/Preflight.Tests.ps1— admin, OS, features, domain, DNS, node validation scenariosTests/Rollback.Tests.ps1— snapshot fixtures, cluster creation/removal, node diff logicTests/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 EnforceSee CHANGELOG.md for full details and ROADMAP.md for the next 9 planned rounds (v9–v17).