I just spun up Lemmy on my Kubernetes cluster with nginx-unprivileged and ingress-nginx. All is well so far! I’m thinking about posting the Kustomization manifests and continuing to maintain and publish OCI’s per version release of Lemmy.

  • gabe565@lemmy.cook.gg
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    1 year ago

    Yep I’m still working on a helm chart. Currently, each service is deployed with the bjw-s app-template helm chart, but I’d like to combine it all into a single chart.

    The hardest part was getting ingress-nginx to pass ActivityPub requests to the backend, but we settled on a hack that seems to work well. We had to add the following configuration snippet to the frontend’s ingress annotations:

    nginx.ingress.kubernetes.io/configuration-snippet: |
      if ($http_accept = "application/activity+json") {
        set $proxy_upstream_name "lemmy-lemmy-8536";
      }
      if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") {
        set $proxy_upstream_name "lemmy-lemmy-8536";
      }
      if ($request_method = POST) {
        set $proxy_upstream_name "lemmy-lemmy-8536";
      }
    

    The value of the variable is $NAMESPACE-$SERVICE-$PORT.
    I tested this pretty thoroughly and haven’t been able to break it so far, but please let me know if anybody has a better solution!

    • anthr76@lemmy.kutara.ioOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Firstly, awesome to hear you’re using bjw-s app-template helm chart. He’s my good friend and former coworker :)

      I’m also doing what @[email protected] is doing.

      While I don’t consider this completed yet I have posted how I’m doing things so far here

      • gabe565@lemmy.cook.gg
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        1 year ago

        That’s awesome! I love his Helm chart. It’s the most impressive Helm library I’ve ever seen. I maintain a bunch of charts and I exclusively use his library chart :)

        I just mentioned in a response to @[email protected], but I feel like deploying a separate nginx is probably cleaner, I just didn’t want another SPOF that I could break at some point in the future.