Commit Graph

613 Commits

Author SHA1 Message Date
MUDCraft CI 2f544ed79e deploy(mudcraft-plugin): update plugin image to 5515ae0812f5191384047a78eb5ed308d975e6a2 2026-04-01 06:27:40 +00:00
MUDCraft CI 0c9f14a92d deploy(mudcraft-core): update image to 159b48c4e5c49c46e090400decac659f0fc6f2da 2026-04-01 06:10:01 +00:00
MUDCraft CI 954834acb1 deploy(mudcraft-core): update image to a238572acf9a22032c1c9662759cec5b86dda67d 2026-04-01 05:49:40 +00:00
MUDCraft CI fdcc443e92 deploy(mudcraft-core): update image to 68685eed1e401ccd15925ac6000edc8a102ca5d3 2026-04-01 05:21:51 +00:00
Will Anderson 67347bdcdf feat(mudcraft): add registry pull secret and imagePullSecrets to deployment 2026-04-01 00:10:06 -05:00
MUDCraft CI 1e06463529 deploy(mudcraft-core): update image to 3c5445c55d4e2afe2b4a5e6e4f4ce23e5e3bf374 2026-04-01 05:06:55 +00:00
Will Anderson 04c65ec908 feat(mudcraft): add mudcraft-core deployment, service, secrets, ingress; fix voicechat domain to play.mudcraft.org 2026-03-31 22:46:09 -05:00
Will Anderson 33bf2c7819 feat(mudcraft): add full base permissions to mortal tier
Mortals now have voice chat, EssentialsX basics (msg, home, spawn,
warp), and friends system permissions by default.
2026-03-29 21:59:48 -05:00
Will Anderson b0f2b7533f fix(mudcraft): grant voicechat permissions to mortal tier 2026-03-29 21:59:30 -05:00
MUDCraft CI d741fa5d0c deploy(mudcraft): update plugin image to 10abb0f6f66e134efd81d787df249a9a738403b9 2026-03-30 02:56:57 +00:00
Will Anderson 0a3be2b40d feat(mudcraft): grant voicechat.mute to Angel tier 2026-03-29 21:55:41 -05:00
Will Anderson da6faf918a feat(mudcraft): auto-bootstrap LuckPerms tiers on every pod start
Adds postStart lifecycle hook that waits for RCON then applies the full
permission structure idempotently on every deploy. Tiers:

  Mortals:   mortal → hero → metamortal
  Immortals: angel → god

Permission structure is now git-managed in configmap-luckperms-bootstrap.yaml
— edit that file to change the permission hierarchy.
2026-03-29 21:55:29 -05:00
Will Anderson c2336dc9fc chore(mudcraft): set difficulty to normal 2026-03-29 21:39:58 -05:00
MUDCraft CI c4fbfb79ac deploy(mudcraft): update plugin image to 54f38f924ef38789a02d1316a3605137b6193d71 2026-03-30 02:38:36 +00:00
Will Anderson 574faa0279 fix(mudcraft): set voice_host so clients connect to correct UDP endpoint
Simple Voice Chat was advertising a blank voice_host, causing clients to
try connecting to the pod's internal IP over UDP. Explicitly set
voice_host=mudcraft.nook.family:24454 via ConfigMap + initContainer.
2026-03-29 21:22:03 -05:00
MUDCraft CI 1313886912 deploy(mudcraft): update plugin image to 7d3a8132bd9f9790101c214ee4d5776f53b63137 2026-03-30 02:15:41 +00:00
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
Gitea CI b23dc7a5c5 chore(neuron): deploy 3527a5c04037f8f2d24b67c9eab2c507e97b873c 2026-03-30 01:11:02 +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
Gitea CI e4d209ac03 chore(neuron): deploy 56718f795b875bfecf263d5f3a6c36beee665b6b 2026-03-30 00:58:15 +00: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 bb8748d426 feat(registry): daily GC cronjob — keep last 10 SHA tags per repo, prune layers 2026-03-29 19:26:14 -05:00
Gitea CI 4515fd7fba chore(neuron): deploy 9c86e158a5c45c5006da23a7bb7d826d0bbca8b3 2026-03-30 00:19:18 +00: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
Gitea CI 9161ab0104 chore(neuron): deploy bc7035d932d72112ebd5bb7c0c20f7ff8b7c9a04 2026-03-27 16:31:42 +00:00
Gitea CI fda9a9d9fb chore(neuron): deploy 2e06323389bd37eaabb5c0fa3bae72fa6a3459d0 2026-03-27 16:15:57 +00:00
Gitea CI e510207857 chore(neuron): deploy 56e092b61e9eb1b92ba753c0ba17914212ad58af 2026-03-27 16:05:11 +00:00
Gitea CI 58448a445f chore(neuron): deploy 87b0bad5c66abf7218dd51319d23eea3d1bfbd29 2026-03-27 16:00:05 +00:00
Gitea CI ff2b9238fd chore(neuron): deploy 8e87d7057235151e430bbc78015732f463d6d323 2026-03-27 15:51:49 +00:00
Gitea CI f78b9b0d75 chore(neuron): deploy c8eeba5783de3f388ed0266d850fc0b26db219fd 2026-03-27 15:39:40 +00:00
Will Anderson 485e09532e scale down github-runner — no longer needed 2026-03-27 10:38:33 -05:00
Gitea CI 7a53d14cf0 chore(neuron): deploy d69b7bf14a8b641c5685adc3171e7acf9b3b7112 2026-03-27 14:36:29 +00:00
Will Anderson 076b3562f0 ci: map runner labels to ci-base image via docker:// scheme 2026-03-26 13:39:25 -05:00
Will Anderson aff34f061f ci: set default_image to ci-base so all jobs get full tooling 2026-03-26 13:17:19 -05:00
Will Anderson 2cb89b715f ci: copy forgejo-runner binary from correct path 2026-03-26 13:00:42 -05:00
Will Anderson 23131ef04f ci: use data.forgejo.org for runner image 2026-03-26 13:00:01 -05:00