ChaGPT added lab simulations

This commit is contained in:
Mosiur Rahman
2026-08-27 11:50:09 +06:00
parent eaef1c17a7
commit a89b4ed4c2
16 changed files with 425 additions and 75 deletions

View File

@@ -0,0 +1,45 @@
$ErrorActionPreference = 'Stop'
$distribution = 'Ubuntu-24.04'
function Test-Distribution {
$names = @(& wsl.exe --list --quiet 2>$null) | ForEach-Object { $_.Trim("`0 ") }
return $names -contains $distribution
}
if (-not (Test-Distribution)) {
Write-Host "Installing $distribution..."
& wsl.exe --install --web-download --distribution $distribution --no-launch
if ($LASTEXITCODE -ne 0) {
throw 'Ubuntu installation failed. Confirm Windows was restarted after running 01-enable-wsl.ps1.'
}
}
& wsl.exe --set-default-version 2
if ($LASTEXITCODE -ne 0) { throw 'Could not set WSL2 as the default.' }
# Starting as root avoids an interactive Unix-user prompt in this disposable VM.
& wsl.exe --distribution $distribution --user root --exec /bin/true
if ($LASTEXITCODE -ne 0) { throw "$distribution did not initialize correctly." }
$linuxDirectory = (& wsl.exe --distribution $distribution --user root --exec wslpath -a $PSScriptRoot).Trim()
if (-not $linuxDirectory) { throw 'Could not translate the lab path into WSL.' }
Write-Host 'Installing pinned lab tools...'
& wsl.exe --distribution $distribution --user root --exec bash "$linuxDirectory/bootstrap.sh"
if ($LASTEXITCODE -ne 0) { throw 'Linux tool bootstrap failed.' }
# Reload WSL so systemd and Docker use the newly written WSL configuration.
& wsl.exe --shutdown
Start-Sleep -Seconds 3
Write-Host 'Creating the isolated Kubernetes cluster...'
& wsl.exe --distribution $distribution --user root --exec bash "$linuxDirectory/create-lab.sh" "$linuxDirectory/kind-v1.34.yaml"
if ($LASTEXITCODE -ne 0) { throw 'Cluster creation failed.' }
& wsl.exe --distribution $distribution --user root --exec bash "$linuxDirectory/verify-lab.sh"
if ($LASTEXITCODE -ne 0) { throw 'Lab verification failed.' }
Write-Host ''
Write-Host 'CKS lab is ready. Enter it with:'
Write-Host ' .\enter-lab.ps1'