Skip to content

Add KSA support to the indexing bot#3

Merged
Maximilian-Nesslauer merged 1 commit into
masterfrom
ksa-game-support
Jul 4, 2026
Merged

Add KSA support to the indexing bot#3
Maximilian-Nesslauer merged 1 commit into
masterfrom
ksa-game-support

Conversation

@Maximilian-Nesslauer

@Maximilian-Nesslauer Maximilian-Nesslauer commented Jul 4, 2026

Copy link
Copy Markdown
Member

What

Adds KSA as a third game to the NetKAN bot, mirroring how KSP2 was added (KSP-CKAN#284, generalized in KSP-CKAN#289):

  • Game.MOD_ROOTS entry 'ksa': 'mods' (the client's KSA mod root) and netkan-ksa.json in the status export.
  • prod-stack.py: KSA netkan/ckanmeta remotes and repos, status key, InboundKsa.fifo queue (outputs + SQS policies + INFLATION_QUEUES), and an InflatorKsa service (GAME: KSA) incl. builder-service coverage.
  • dev-stack.py and both docker-compose files: InboundDevKsa.fifo dev queue, inflator-ksa dev service, KSA inflation/status env entries.
  • Tests mirrored for the third game (harness, game_ids/remotes/mod_root, queue-handler appends, webhook routes, status export); the harness ia_collections value is now a real tuple like its siblings.

The scheduler, auto-freezer, download counter, and webhooks iterate the configured game ids since KSP-CKAN#289, so they need no code changes.

Notes / sequencing

  • The bot runs the kspckan/inflator image built from upstream KSP-CKAN/CKAN, which rejects GAME=KSA until the client support lands there; the actual AWS deploy is the CKAN team's. Implement and verify here, upstream PR after the client merges (see Add KSA support to the indexing bot #1).
  • The KSA metadata repos currently live under KSAModding while CKANMETA_USER/NETKAN_USER stay the global KSP-CKAN, so PR-opening paths (indexer staging, spacedock-adder, auto-freezer) would target a nonexistent KSP-CKAN/KSA-* repo. Resolution is a deploy-time decision: transfer the repos to KSP-CKAN (only the remote URLs flip), or extend GitHubPR to accept an owner-qualified repos value. Flagged for the upstream PR body.

Testing

  • Full pytest suite green on Linux-equivalent baseline (284 passed locally on Python 3.12).
  • mypy netkan clean; pylint 10/10 on the changed source files.
  • Both CloudFormation templates render with all KSA terms (InflatorKsa, InboundKsa.fifo, remotes/repos/status keys); both compose files parse.

Closes #1.

@Maximilian-Nesslauer Maximilian-Nesslauer added enhancement New feature or request infrastructure Work on the KSA CKAN infrastructure (bot, tester, status page) labels Jul 4, 2026
@github-project-automation github-project-automation Bot moved this to Todo in CKAN-KSA Jul 4, 2026
- MOD_ROOTS entry 'ksa': 'mods' and netkan-ksa.json status export
- prod-stack.py: KSA remotes/repos/status key, InboundKsa.fifo, InflatorKsa service
- Dev stack and compose files: KSA dev queue and inflator service
- Tests mirrored for the third game; harness ia_collections fixed to a tuple

Mirrors KSP2 (KSP-CKAN#284, KSP-CKAN#289); the game-id-driven services need no code changes.
@Maximilian-Nesslauer Maximilian-Nesslauer moved this from Todo to In Progress in CKAN-KSA Jul 4, 2026
@Maximilian-Nesslauer
Maximilian-Nesslauer merged commit 4f82322 into master Jul 4, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in CKAN-KSA Jul 4, 2026
@Maximilian-Nesslauer
Maximilian-Nesslauer deleted the ksa-game-support branch July 4, 2026 19:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request infrastructure Work on the KSA CKAN infrastructure (bot, tester, status page)

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add KSA support to the indexing bot

1 participant