Repository navigation
feat(k8s): add a Helm chart and move the backend to asteria.txpipe.io/api - #146
Conversation
One chart deploys the GraphQL backend and the game frontend from the ghcr.io images the workflows publish. Each component is a Deployment, a Service and an optional Ingress. The frontend is disabled by default. The chart is instance-agnostic: the image tag, the Blockfrost-compatible endpoint and any ingress host are required values, so a missing one fails at render. Images are pinned by tag plus optional digest. The backend runs as a non-root user on a read-only root filesystem with all capabilities dropped. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The mainnet backend moves from its legacy Demeter workload hostname to the /api path on the challenge's own host. MAINNET_API_URL, which next.config.mjs inlines at build time, and the how-to-play snippets now use https://asteria.txpipe.io/api. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
Adds a Helm chart for deploying Asteria and points the frontend at the backend's new public path.
Chart (
k8s/chart/)backend.blockfrostBaseUrl) and any ingress host, class, issuer and TLS secret are required values, so a missing one fails at render. Images are pinned by tag plus an optional digest.RuntimeDefaultseccomp. The frontend image runs as root and writes its Next.js cache, so it keeps a writable root filesystem but drops capabilities and privilege escalation.nodeSelector/tolerations, which each component can override. Both images arelinux/amd64only (noted ink8s/README.md).existingSecretper component, for keys such asDMTR_API_KEY.Frontend: new backend URL
The mainnet backend moves from its legacy Demeter workload hostname (
8000-ethereal-audience-bb83g6.us1.demeter.run) tohttps://asteria.txpipe.io/api.MAINNET_API_URLindocker/Dockerfile.frontend(inlined at build time) and the how-to-play snippets are updated. The ingress maps/api/graphqlto the backend's/graphql;/api/asteria/*stays with the frontend's own routes.Verification
helm lintpasses, andhelm templaterenders with both components enabled and with the TxPipe m2 instance values. The rendered objects pass a server-side dry run against the m2 API server.fc72b06backend image runs under the chart's security context (--user 65532 --read-only --cap-drop ALL):/answers, and{ __typename }resolves over/graphql.Follow-ups
txpipe/asteria-starter-kit's README still names the legacy backend URL, which stops answering once the legacy workload is retired.🤖 Generated with Claude Code
Summary by CodeRabbit