So this is a pretty big deal to me (it looks recent, just put up last October). One of my big frustrations with Matrix was that they didn’t offer helm charts for a kubernetes deployment, which makes it difficult for entities like nonprofits and community clubs to use it for their own purposes. Those entities need more hardware than an individual self hoster, and may want features like high availability, and kubernetes makes horizontal scaling and high availability easy.

Now, according to the site, many of these features seem to be “enterprise only” — but it’s very strangely worded. I can’t find anything that explicitly states these features aren’t in the fully FOSS self hosted version of matrix-stack, and instead they seem to be only advertised as features of the enterprise version

My understanding of Kubernetes architecture is that it’s difficult for people to not do high availability, which is why this makes me wonder.

Looking through the docs for the "enterprise version, it doesn’t look like anything really stops me from doing this with the community addition.

They do claim to have rewritten synapse in rust though

Being built in Rust allows server workers to use multiple CPU cores for superior performance. It is fully Kubernetes-compatible, enabling scaling and resource allocation. By implementing shared data caches, Synapse Pro also significantly reduces RAM footprint and server costs. Compared to the community version of Synapse, it’s at least 5x smaller for huge deployments.

And this part does not seem to be open source (unless it’s rebranded conduit, but conduit doesn’t seem to support the newer Matrix Authentication Service.)

So, it looks Matrix/Element has recently become simultaneously much more open source, but also more opaque.

  • Ananace@lemmy.ananace.dev
    link
    fedilink
    arrow-up
    1
    ·
    2 hours ago

    If you don’t have a hard requirement for the Helm Chart to be written by Element themselves, I’ve been maintaining some Charts for Matrix components for almost six years - which have also ended up being used as the base for the German BundesMessenger project. Unfortunately free time hasn’t allowed me to do nearly as much as I want with it, especially since it continues to work for the use-cases for my job.

    We do have a room on Matrix for dealing with Kubernetes setups though.

    I also ended up chatting with one of the core devs of Synapse about ways to improve regular Python Synapse for use with Kubernetes back in the ending of January, so hopefully it’ll improve in that direction when time allows. They have the exact same problems with providing hosted setups after all, so they too want to make the open-source version easier to run.

  • grapemix@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    4 hours ago

    Even without ess or this helm chart, lots of ppl can still run matrix in k8s. But it’s good to see them to release more open source code. Thx for the news.

    • moonpiedumplings@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      3 hours ago

      This helm chart is not just matrix/synapse, but also element (web ui), and “matrix authentication service”, which adds SSO/OIDC support to a normal synapse instance, which is pretty neat. I haven’t seen any helm charts that include the full matrix stack, just separate synapse or element helm charts. And helm definitely makes deploying services to Kubernetes easier than other ways of deploying applications.

      The other reason why I like an official helm chart, is because I have seen unofficial one’s be stopped being maintained by the community member(s) maintaining them. With an official one, it will (probably) be maintained indefinitely.

  • azron@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    8 hours ago

    Is Kubernetes so pervassive that a helm chart unlocks that many more entities?

    • moonpiedumplings@programming.devOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 hours ago

      Yes and no. There are many things that are much easier with Kubernetes, once you figure Kubernetes out.

      High availability is the most notable example — yes, it’s doable in docker, via something like swarm, but it’s more difficult. In comparison, the ideas of clustering and working with more than one server are central to the architecture of Kubernetes.

      Another thing is that long term deployments with Kubernetes can be more maintainable, since everything is just yaml files and version is just a number. If you store your config in code, then it’s easier to replicate it to another server, either internally, or if you share it for other people to use (Helm is somewhat like this).