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

  • HTTP_404_NotFound@lemmyonline.comOP
    link
    fedilink
    English
    arrow-up
    8
    ·
    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
          8
          ·
          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.

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

                And- the mountains we all moved together.

                (Oh, and don’t forget those rare times where most of reddit bonded together, and accomplished big things. )

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

                  You’re in OK?! I just moved from OK to CO last summer. Hope your family and lab gear are doing okay after the storms.

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

                    I am!

                    Lab survived with basically no downtime. Trees all gone, and my soffit blew away.

                    3 days running on solar/generator.

                    Otherwise no real damage, and everyone was ok.