(Just- migrated this instance over to kubernetes… just testing federation…)

    • HTTP_404_NotFound@lemmyonline.comOP
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      2 years ago

      NOT only did I do it in kubernetes, But- I built all of the manifests by hand.

      AND- I am not using that crappy nginx proxy. I created the manifests to use my default traefik proxy’s ingressroute.

      Edit- and thanks for the reply!

      • rs5th@lemmy.scottlabs.io
        link
        fedilink
        English
        arrow-up
        11
        ·
        2 years ago

        Here’s a cronjob to clean up the useless activity table every day:

        
        apiVersion: batch/v1beta1
        kind: CronJob
        metadata:
          name: postgresql-cleanup
          namespace: lemmy
        spec:
          schedule: "0 0 * * *"
          jobTemplate:
            spec:
              template:
                spec:
                  containers:
                  - name: postgres-cleanup
                    image: postgres:alpine
                    command: ["psql", "--host=postgresql", "--dbname=postgres", "--username=postgres", "--command=DELETE FROM activity WHERE published < NOW() - INTERVAL '1 day';"]
                    env:
                    - name: PGPASSWORD
                      valueFrom:
                        secretKeyRef:
                          name: postgresql
                          key: postgres-password
                  backoffLimit: 0
                  ttlSecondsAfterFinished: 3600
        
        
        • HTTP_404_NotFound@lemmyonline.comOP
          link
          fedilink
          English
          arrow-up
          10
          ·
          edit-2
          2 years ago

          Oh sweet, here, I will share my lovely ingressroute in return… to replace the nginx stuff everyone else is using.

          apiVersion: traefik.containo.us/v1alpha1
          kind: IngressRoute
          metadata:
            name: lemmy
            namespace: lemmy
          spec:
            entryPoints:
              - websecure
            routes:
              - kind: Rule
                match: Host(`lemmyonline.com`) && (Headers(`Accept`, `application/activity+json`) || Headers(`Accept`, `application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"`))
                services:
                  - name: lemmy
                    port: http
              - kind: Rule
                match: Host(`lemmyonline.com`) && (PathPrefix(`/api`) || PathPrefix(`/pictrs`) || PathPrefix(`/feeds`) || PathPrefix(`/nodeinfo`) || PathPrefix(`/.well-known`))
                services:
                  - name: lemmy
                    port: http
              - kind: Rule
                match: Host(`lemmyonline.com`) && Method(`POST`)
                services:
                  - name: lemmy
                    port: http
              - kind: Rule
                match: Host(`lemmyonline.com`)
                services:
                  - name: lemmy-ui
                    port: http
          

          Thanks!

          Edit- could be consolidated down to only two rules, I left it expanded out to be a tad easier to read.

          • rs5th@lemmy.scottlabs.io
            link
            fedilink
            English
            arrow-up
            9
            ·
            2 years ago

            If anyone else has made it this far and are thinking “ah balls, I’m using ingress-nginx”, here’s the ingress annotation for you!

            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";
                        }
            
            
            • HTTP_404_NotFound@lemmyonline.comOP
              link
              fedilink
              English
              arrow-up
              6
              ·
              2 years ago

              NORMALLY, this is the part where we would gold each other. Or something.

              Sadly- I guess we can’t do that.

              But, if anyone knows a decent amount on building helm charts- I found a gitlab earlier which was pretty close to where it needs to be-

              I forked a copy of it over to github to prepare to make a few changes, such as using PROPER ingress rules.

              https://github.com/XtremeOwnageDotCom/Helm

              I do believe it’s possible to build a helm chart with options for both traefik ingress and nginx ingress too.