OpenSlides / openslides-manage-service

Manage service for OpenSlides 4+
MIT License
4 stars 12 forks source link

Status/possibility of Kubernetes support #212

Open floens opened 1 year ago

floens commented 1 year ago

Is your feature request related to a problem? Please describe. We are using Kubernetes and the deployment of the docker-compose stack is not applicable to us.

Describe the solution you'd like I've search through the other issues and I have not find a clear answer, so I've created this issue to hopefully get some more insights.

I've seen the OpenSlides manage service, and as I understand it, it uses docker compose. The readme has a mention of "other container orchestration systems" but nothing else.

Now, before I go and start writing a Helm chart based on the output of the manage tool, I wanted to ask the community if other work has been done already. :)

normanjaeckel commented 1 year ago

At the moment nobody at the dev team has experience with OpenSlides using Kubernetes. But this is a very interesting scenario ...

InterFelix commented 1 year ago

I have experience creating helm charts for deploying software stacks like OpenSlides to Kubernetes clusters. I'd be willing to contribute to this, but I see a couple of issues that would need adressing first.

  1. At the moment, there are too many bugs making development of a helm chart harder than it needs to be (for example, I can't get the manage tool to work with any proxy port other than 8000).
  2. The reliance on the manage tool for many tasks, especially manual intervention during the initial setup, makes OpenSlides not very well suited for operation on Kubernetes, where the key to everything is automation. There is probably a way to automate the invocation of openslides initial-data during the helm installation phase, but the existance of this setup step makes developing a helm chart much more difficult than it would otherwise be. To be honest, I don't really understand why it's necessary in the first place - why not generate the default content automatically on first launch of the application?
normanjaeckel commented 1 year ago

The manage tool has a --address flag to change host and port. Is this suitable for your first point?

The second point: We wanted to open the possibility to inject custom initial data during setup. Of course there are other ways to do this. I will move this issue to our manage service repo.

Next question for me: Would it be sufficient for you if the backend manage container injects initial data during first startup?

InterFelix commented 1 year ago

I know about the --address flag, but couldn't get it to work with any port other than 8000, others have confirmed this problem at #6538 in OpenSlides/OpenSlides.

Regarding point two: That's great, it would just be neat if there was an environment variable like generateInitialData: false I could set to true so that the manage service generates the initial data without manual intervention.

Regarding your question: As long as no manual action is required during setup and all hostnames / ports used for internal communication between the different services are configurable, I can put together a helm chart without too much of a hassle.