WeblateOrg / WeblateOrg/helm

Deploy Weblate's components separately to allow for horizontal scaling

Open
#298 4 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Mustache
Stars
41
Forks
45
Avg merge
1h 24m
Merged PRs (30d)
37

Description

Describe the problem

Right now, the Weblate helm chart deploys itself as a single monolithic instance, meaning that every component runs in a single container. Causing slow startup times due to having to initialize every single component in the same container.

But according to https://docs.weblate.org/en/latest/admin/install/docker.html#scaling-horizontally, you can actually scale Weblate horizontally by deploying multiple instances of Weblate, with extra arguments to make them run a specific component.

Doing this allows for high-availability as individual components can be restarted without affecting the whole instance, meaning that when a certain component (i.e Celery, or the web server) fails, it can quickly restart and reconnect to the cluster without affecting downtime.

Describe the solution you'd like

Extend the Helm chart to allow Weblate components to be deployed separately instead of running everything in a single binary.

I got an example for a similar distributed Helm deployment that works similarly to what I'm describing, from Grafana Mimir which uses only 1 single Grafana Mimir container, but with extra arguments to target a specific component https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed

While that deployment has its own hash ring clustering, seems like our distributed Docker compose only relies on a common database backend, so this should be fine enough.

Describe alternatives you've considered

No response

Screenshots

No response

Additional context

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the existing Weblate Helm chart and compare its deployment structure with Weblate's distributed Docker Compose configuration and the linked horizontal-scaling documentation. Determine how separate component deployments and their arguments should be represented in chart values. Done means the chart can deploy Weblate components independently while preserving the shared database-based setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, helm
Domain
devops, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.