jeremylvln / Shulker

A Kubernetes operator for managing complex and dynamic Minecraft infrastructures, including game servers and proxies.
https://shulker.jeremylvln.fr/
GNU Affero General Public License v3.0
182 stars 14 forks source link

existingConfigMapName is not working for ProxyFleet #447

Closed stevefan1999-personal closed 6 months ago

stevefan1999-personal commented 7 months ago

What happened?

Setting an existingConfigMapName for ProxyFleet is not working. It will always set to be the default template. Modifying the default template will always revert back to the default anyway.

I need to set force-key-authentication to false in velocity-config.toml because I'm not using Local external traffic load balancer mode, because I'm self hosting a Kubernetes cluster running with Cilium. The default load balancer coming with Cilium does not have good support for Local mode because it is based on SNAT (despite there is a DSR mode that theoretically supports direct source IP forward with GENEVE, I failed to make it work correctly and I'm stuck with SNAT).

What components are involved in your issue?

No response

Version

0.7.0

Kubernetes Version

1.29

Relevant log output

No response

Code of Conduct

jeremylvln commented 7 months ago

Hi @stevefan1999-personal!

Thanks a lot for reporting the issue. The configuration field was present but was not used at all for the proxies. I've opened a PR to fix it. Let me know once merged & built if it fixes your issue (use the next image tag for the operator) :)

TehNeon commented 6 months ago

I may have attempted to utilize this feature incorrectly. But it sounds like it's meant to allow for the overriding of the config map that provides the proxy config (velocity-config.toml as defined in the Shulker provided configmap). But in actual usage, it appears that it wants theinit-fs.sh file to be defined in the config map, also likely other files like the probe-readiness.sh. I'm not sure if this is the intended behaviour to allow for the overriding of the init-fs.sh.

jeremylvln commented 6 months ago

It's currently a total overwrite you are write. I can't cherry-pick parts of the ConfigMap, I really want to keep this on the Kubernetes-level by changing the name of the ConfigMap. However I understand it could be an issue. Maybe it would be useful to split the ConfigMap to isolate the bootstrapping scripts from the config files themselves.

github-actions[bot] commented 6 months ago

:tada: This issue has been resolved in version 0.8.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

stevefan1999-personal commented 5 months ago

Not working for MinecraftServerFleet either

https://github.com/jeremylvln/Shulker/blob/5937788352edeeee94f77a72f7583de43e486b37/packages/shulker-operator/src/reconcilers/minecraft_server_fleet/fleet.rs#L59-L61

@jeremylvln

jeremylvln commented 5 months ago

Jeez. Nice catch. I totally forgot about the fleet. Will fix shortly.

Thanks!