Odin/scripts/idunn-deployment-targets.ps1
2026-06-17 15:55:13 +01:00

144 lines
5.4 KiB
PowerShell

$repoRoot = Split-Path -Parent $PSScriptRoot
$IdunnDeploymentTargets = @(
[pscustomobject]@{
Id = "starfire-muninn"
Repo = "Odin"
LocalPath = "E:\Projects\Odin"
Host = "starfire"
Service = "muninn serve --host starfire"
Status = "runtime-enforced"
Health = "$repoRoot\scripts\health-starfire-muninn.cmd"
Deploy = $null
Restart = "$repoRoot\scripts\restart-starfire-muninn.cmd"
Reason = "Central Idunn keeps Starfire-local Muninn alive for Quest access and local telemetry surfaces."
},
[pscustomobject]@{
Id = "nightwing-muninn"
Repo = "Odin"
LocalPath = "E:\Projects\Odin"
Host = "nightwing"
Service = "muninn serve --host nightwing"
Status = "runtime-enforced"
Health = "$repoRoot\scripts\health-nightwing-muninn.cmd"
Deploy = $null
Restart = "$repoRoot\scripts\restart-nightwing-muninn.cmd"
Reason = "Central Idunn reaches Nightwing over SSH and keeps the host-local Muninn Move HID daemon alive."
},
[pscustomobject]@{
Id = "nightwing-gjallar"
Repo = "Gjallar"
LocalPath = "E:\Projects\Gjallar"
Host = "nightwing"
Service = "gjallar.service"
Status = "enforced"
Health = "$repoRoot\scripts\health-nightwing-gjallar.ps1"
Deploy = "$repoRoot\scripts\deploy-nightwing-gjallar.ps1"
Restart = "$repoRoot\scripts\restart-nightwing-gjallar.ps1"
UpstreamRemote = "origin"
UpstreamBranch = "main"
RolloutStrategy = "restart-after-verified-build"
StateMigration = "daemon-owned-noop"
ZeroDowntime = "restart-required"
Reason = "Nightwing framebuffer compositor has a committed artifact manifest and automatic Idunn deploy lane."
},
[pscustomobject]@{
Id = "yggdrasil-bifrost"
Repo = "Bifrost"
LocalPath = "E:\Projects\Bifrost"
Host = "yggdrasil"
Service = "bifrost.service"
Status = "blocked"
Health = $null
Deploy = $null
Restart = $null
Reason = "Committed Bifrost HEAD currently expects UserAccounts.HeimdallAccountId, but Yggdrasil's production database lacks that column and EF reports no pending migration. Idunn must not enforce Bifrost freshness until the Bifrost schema migration path is fixed."
},
[pscustomobject]@{
Id = "yggdrasil-streampixels"
Repo = "StreamPixels"
LocalPath = "E:\Projects\StreamPixels"
Host = "yggdrasil"
Service = "streampixels-service/streampixels-web"
Status = "enforced"
Health = "$repoRoot\scripts\health-yggdrasil-streampixels.cmd"
Deploy = "$repoRoot\scripts\deploy-yggdrasil-streampixels.cmd"
Restart = $null
UpstreamRemote = "origin"
UpstreamBranch = "main"
RolloutStrategy = "restart-after-verified-build"
StateMigration = "daemon-owned-noop"
ZeroDowntime = "restart-required"
Reason = "Idunn packages upstream origin/main for StreamPixels, runs the existing ops deploy/check scripts, and verifies the remote manifest."
},
[pscustomobject]@{
Id = "yggdrasil-heimdall"
Repo = "Heimdall"
LocalPath = "E:\Projects\Heimdall"
Host = "yggdrasil"
Service = "heimdall.service"
Status = "enforced"
Health = "$repoRoot\scripts\health-yggdrasil-heimdall.cmd"
Deploy = "$repoRoot\scripts\deploy-yggdrasil-heimdall.cmd"
Restart = $null
UpstreamRemote = "origin"
UpstreamBranch = "main"
RolloutStrategy = "restart-after-verified-build"
StateMigration = "daemon-owned-noop"
ZeroDowntime = "restart-required"
Reason = "Idunn packages upstream origin/main for Heimdall, runs the existing ops deploy/check scripts, and verifies the remote manifest."
},
[pscustomobject]@{
Id = "yggdrasil-repixelizer"
Repo = "repixelizer"
LocalPath = "E:\Projects\repixelizer"
Host = "yggdrasil"
Service = "repixelizer-gui.service"
Status = "enforced"
Health = "$repoRoot\scripts\health-yggdrasil-repixelizer.cmd"
Deploy = "$repoRoot\scripts\deploy-yggdrasil-repixelizer.cmd"
Restart = $null
UpstreamRemote = "origin"
UpstreamBranch = "main"
RolloutStrategy = "restart-after-verified-build"
StateMigration = "daemon-owned-noop"
ZeroDowntime = "restart-required"
Reason = "Idunn packages upstream origin/main for repixelizer, runs the existing ops deploy/check scripts, and verifies the remote manifest."
},
[pscustomobject]@{
Id = "github-pages-gamecult-site"
Repo = "gamecult-site"
LocalPath = "E:\Projects\gamecult-site"
Host = "github-pages"
Service = "gamecult.org/www"
Status = "external-owned"
Health = $null
Deploy = $null
Restart = $null
Reason = "GitHub Actions/Pages owns deployment freshness; Idunn should ingest workflow/deployment status before claiming automatic deploy authority."
},
[pscustomobject]@{
Id = "eve-ipad-evecanvas"
Repo = "Eve"
LocalPath = "E:\Projects\Eve"
Host = "eve-ipad"
Service = "org.gamecult.evecanvas"
Status = "blocked"
Health = $null
Deploy = $null
Restart = $null
Reason = "Jailbroken iPad native app deployment exists only as an operator runbook; no safe noninteractive Idunn deploy command yet."
},
[pscustomobject]@{
Id = "periwinkle-eve-android"
Repo = "Eve"
LocalPath = "E:\Projects\Eve"
Host = "periwinkle"
Service = "Eve Android proof APK"
Status = "blocked"
Health = $null
Deploy = $null
Restart = $null
Reason = "Android USB install requires on-device approval; Idunn must not claim automatic deploy authority until that boundary is solved."
}
)