agentic-os/scripts/verify-kustomize.ps1

56 lines
1.8 KiB
PowerShell

param(
[switch] $IncludeRemoteArgoCD
)
$ErrorActionPreference = "Stop"
$RepoRoot = Resolve-Path (Join-Path $PSScriptRoot "..")
function Test-KustomizeDir {
param(
[Parameter(Mandatory = $true)][string] $RelativePath,
[Parameter(Mandatory = $true)][string] $Label
)
$path = Join-Path $RepoRoot $RelativePath
if (-not (Test-Path $path)) {
throw "Missing kustomize path: $path"
}
Write-Host "== $Label ($RelativePath) ==" -ForegroundColor Cyan
$out = & kubectl kustomize $path 2>&1
if ($LASTEXITCODE -ne 0) {
Write-Host $out
throw "kubectl kustomize failed for $RelativePath (exit $LASTEXITCODE)"
}
if (-not $out) {
throw "kubectl kustomize produced empty output for $RelativePath"
}
$docCount = ($out | Select-String -Pattern "^---$" -AllMatches).Matches.Count + 1
Write-Host ("OK ({0} YAML documents emitted)" -f $docCount) -ForegroundColor Green
}
$targets = @(
@{ Rel = "platform\bootstrap"; Label = "platform-bootstrap" },
@{ Rel = "platform\bootstrap\apps"; Label = "argocd-app-of-apps" },
@{ Rel = "platform\networking"; Label = "platform-networking" },
@{ Rel = "platform\security"; Label = "platform-security" },
@{ Rel = "platform\data"; Label = "platform-data" },
@{ Rel = "observability"; Label = "observability" },
@{ Rel = "ai-core"; Label = "ai-core" },
@{ Rel = "tools-mcp"; Label = "tools-mcp" },
@{ Rel = "agents\k8s"; Label = "agents-k8s" },
@{ Rel = "interface\k8s"; Label = "interface-k8s" }
)
foreach ($t in $targets) {
Test-KustomizeDir -RelativePath $t.Rel -Label $t.Label
}
if ($IncludeRemoteArgoCD) {
Test-KustomizeDir -RelativePath "platform\bootstrap\initial-argocd" -Label "initial-argocd (remote)"
}
Write-Host "All requested kustomize builds succeeded." -ForegroundColor Green