(Just- migrated this instance over to kubernetes… just testing federation…)
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.
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";
}
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.