Skip to content

feat(mc): GHA build caching, resource pack URL env, K8s ingress#7266

Merged
h0lybyte merged 2 commits intodevfrom
atom-02251047-mc-docker-env
Feb 25, 2026
Merged

feat(mc): GHA build caching, resource pack URL env, K8s ingress#7266
h0lybyte merged 2 commits intodevfrom
atom-02251047-mc-docker-env

Conversation

@h0lybyte
Copy link
Member

Summary

  • CI build caching: Add ci configuration to containerx, container, and e2e targets using GitHub Actions native cache backend (type=gha). Add docker/setup-buildx-action to docker-test-app.yml and route test builds through --configuration=ci. Reduces incremental CI build times from ~30 min to cached rebuilds.
  • Resource pack URL env var: Add entrypoint.sh that templates RESOURCE_PACK_URL into features.toml at container startup via sed. Defaults to localhost:8080 when unset (local dev / e2e). Dockerfile updated to use entrypoint script instead of direct binary.
  • K8s ingress for mc.kbve.com: Add nginx Ingress with TLS via letsencrypt-http cert-manager ClusterIssuer. Routes https://mc.kbve.com/*mc-internal-service:8080 for resource pack downloads. Deployment updated with RESOURCE_PACK_URL=https://mc.kbve.com/kbve-resource-pack.zip.

Test plan

  • Local build: ./kbve.sh -nx mc:container --configuration=local still works
  • Env var test: docker run -e RESOURCE_PACK_URL=https://test.example.com/pack.zip -p 25565:25565 -p 8080:8080 kbve/mc:local rewrites features.toml
  • E2e tests pass with localhost default (no env var set)
  • CI workflow uses GHA cache on subsequent runs
  • K8s ingress provisions TLS cert for mc.kbve.com

…ngress

Add CI configuration with GitHub Actions cache backend for Docker BuildKit
to reduce test build times from ~30min to incremental rebuilds. Make the
resource pack URL configurable via RESOURCE_PACK_URL environment variable
with an entrypoint script that templates features.toml at startup. Add
nginx ingress for mc.kbve.com with TLS via cert-manager to serve the
resource pack over HTTPS.
Add metallb.universe.tf/allow-shared-ip annotation to both the
mc-service LoadBalancer and the nginx-ingress Helm values so they
can share the single public IP (142.132.206.74). Ports do not
overlap (nginx: 80/443, mc: 25565/19132) so sharing is safe.
@h0lybyte h0lybyte force-pushed the atom-02251047-mc-docker-env branch from e360ffb to 0c0f8e5 Compare February 25, 2026 16:47
@github-actions
Copy link
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@h0lybyte h0lybyte merged commit 2b90e88 into dev Feb 25, 2026
11 checks passed
@h0lybyte h0lybyte deleted the atom-02251047-mc-docker-env branch February 25, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant