v1.4.0
SPSConfigKit - Release Notes
[1.4.0] - 2026-07-06
Added
- Automatic data-disk initialisation during node bootstrap (#15)
- New
scripts/init/Initialize-DscDisks.ps1prepares a node's data disks from
the sameNonNodeData.Disksblock the configuration uses (read via
-ConfigPath). It onlines each raw non-OSdisk, applies a GPT partition,
NTFS-formats it with the requestedFSLabel/AllocationUnitSizeand
assigns the drive letter — so a brand-new farm has its volumes before
anything writes to them, with no manualGet-Disk/Format-Volumestep.
Disk preparation is a one-time node-prep action, so it runs during bootstrap
(like the domain join and module install) rather than inside the recurring
application MOF. The script uses native Windows Storage cmdlets (no extra DSC
module), is idempotent, and is non-destructive — a disk already carrying
data is reported and left intact, never reformatted. - Every configuration (
CfgAppSql/CfgAppSps/CfgAppPdc/CfgAppPull)
declares its physical disks in a new authoritativeNonNodeData.Disksarray
(Id/Letter/Type/FSLabel/AllocationUnitSize). Disks are keyed
by disk Number (Get-Disk), portable across bare-metal, VMware, Hyper-V
and Azure — not an Azure LUN. TheOSdisk (Type = 'OS') is never touched. - New
NonNodeData.ManageDisksboolean (default$true). Set it to$false
when the customer manages their own storage:Initialize-DscDisks.ps1then
does nothing, but the derivedDriveshashtable is still produced so every
path resolves.
- New
Changed
NonNodeData.Drivesis now DERIVED, not hand-written (#15)- Each
Cfg*.ps1buildsNonNodeData.Drives = @{ Data; Logs; Temp }from the
newDisksarray (keyed byType) immediately after loading the psd1, so a
drive letter is declared exactly once (inDisks) instead of duplicated.
All existingDrives.Data/Drives.Logs/Drives.Tempconsumers keep
working unchanged;Tempfalls back to theDataletter when no dedicated
Tempdisk is declared. FSLabels follow an UPPERCASE convention
(SYSTEM/DATA/LOGS/TEMP), and every tier declares at least the
three baseline disks. SQLDATA/LOGSvolumes use a64KBallocation
unit size per SQL Server best practice. ConfigData.Tests.ps1derivesDrivesfromDisksthe same way and adds a
NonNodeData Diskscheck block (required per-disk keys, oneOSdisk,
uniqueIds andLetters,SYSTEM/DATA/LOGSpresent).
- Each
Changelog
A full list of changes in each version can be found in the change log