Commit Graph

18 Commits

Author SHA1 Message Date
Will Anderson 1a27f2ad79 feat(mudcraft): whitelist random_guy789 2026-03-29 20:47:12 -05:00
Will Anderson 63d54d9ea0 fix(mudcraft): substitute LP_PASSWORD in LuckPerms config at init time
LuckPerms reads config.yml as a literal string — ${LP_PASSWORD} was
never being substituted, causing auth failures against PostgreSQL.
initContainer now has the secret injected as an env var and uses sed
to write the real password into the config before LuckPerms reads it.

Also adds faultexception to WHITELIST so they can connect.
2026-03-29 20:41:39 -05:00
Will Anderson 8588def1ab fix(mudcraft): add fsGroup 1000 so PVC dirs are writable by server process
Existing /data/plugins/LuckPerms/ dir on PVC was created by root, so
UID 1000 couldn't create subdirs (libs/, etc.). fsGroup:1000 tells k8s
to chown all volume mounts to group 1000 at pod startup, fixing access.
2026-03-29 20:37:44 -05:00
MUDCraft CI a86e9f892f deploy(mudcraft): update plugin image to d2528281d4d304a8ae62e0f73ba6aed034113d34 2026-03-30 01:36:19 +00:00
Will Anderson e79424e6e1 fix(mudcraft): run initContainer as UID 1000 so plugin dirs are writable
LuckPerms was failing with AccessDeniedException on /data/plugins/LuckPerms/libs
because the initContainer was creating directories as root. Main container runs
as UID 1000 and couldn't write inside them. Running initContainer as matching
UID 1000 fixes ownership.
2026-03-29 20:34:14 -05:00
Will Anderson e482059a03 fix(mudcraft): fix LuckPerms init by removing subPath mounts
SubPath mounts into plugin directories were causing k8s to create those
directories owned by root before the server process could write to them.
LuckPerms was failing with "Unable to create libs directory" as a result.

Move config injection to the initContainer: it now cleans stale JARs
(rm *.jar), copies fresh JARs from the plugins image, and pre-creates
the LuckPerms and PurpurExtras directories with configs copied from
ConfigMaps. Main container no longer mounts configs via subPath.

Also fixes stale JAR accumulation — initContainer now clears old JARs
before copying, preventing broken old versions from loading.
2026-03-29 20:30:50 -05:00
Will Anderson 50aa2d2828 Force pod restart — pick up corrected plugin image SHA 2026-03-29 20:20:49 -05:00
Will Anderson 77b94fa946 Fix mudcraft plugin image tag — point to valid SHA from run 225 2026-03-29 20:18:46 -05:00
MUDCraft CI 3d702f644f deploy(mudcraft): update plugin image to 2026-03-30 01:14:38 +00:00
Will Anderson 8d3e72da17 Pin mudcraft plugin image to SHA (CI will update this on every build) 2026-03-29 20:07:16 -05:00
Will Anderson 31363d2631 Configure LuckPerms with PostgreSQL backend for persistent permissions
- LuckPerms stores all permissions/groups in Postgres (not ephemeral ops.json)
- Mount luckperms config.yml from ConfigMap with DB connection details
- LP_PASSWORD injected from same secret as DB_PASSWORD
- OPS env var kept as bootstrap until LuckPerms admin group is configured
2026-03-29 19:59:34 -05:00
Will Anderson 222ddf044d Persist faultexception as op via OPS env var (survives pod restarts) 2026-03-29 19:58:42 -05:00
Will Anderson 27623af8f9 Add Simple Voice Chat UDP routing for mudcraft
- Expose UDP 24454 on mudcraft pod and Service (Simple Voice Chat)
- Add Traefik voicechat UDP entrypoint on port 24454
- Add IngressRouteUDP to route external UDP 24454 → mudcraft service
2026-03-29 19:42:16 -05:00
Will Anderson 70e69e1283 MUDCraft: initContainer plugin pattern + PurpurExtras ConfigMap 2026-03-29 19:07:58 -05:00
Will Anderson c7ef04b37e Update Purpur to 1.21.11 (latest) 2026-03-29 18:38:10 -05:00
Will Anderson df216e74f9 Reduce mudcraft heap to 4G, lower resource requests 2026-03-29 18:33:16 -05:00
Will Anderson a94aca0e01 Accept Minecraft EULA 2026-03-29 18:19:06 -05:00
Will Anderson 1cf47477d3 Add MUDCraft Minecraft server infrastructure
- Purpur 1.21.4 server via itzg/docker-minecraft-server (java21)
- StatefulSet with 3 PVCs: worlds (20Gi), plugins (5Gi), logs (5Gi)
- Aikar G1GC JVM flags, 6GB heap (sized for Legion's 15GB RAM)
- Postgres: mudcraft database + user in existing platform/postgres
- RCON secret + DB password via ExternalSecret → Vault
- Traefik TCP entrypoint on port 25565 for mudcraft.nook.family
- mudcraft namespace via Terraform
- Argo CD app watching k8s/mudcraft/
2026-03-29 18:17:48 -05:00