We rely on route53 for its DNS. Route53 is a good choice mainly because the rest of our infrastructure is in AWS. The external-dns operator in Kubernetes integrates well with Route53 and it makes sense to use.

Additionally, we have two separate ingresses for the Unit 520 lemmy deployment:

We want users who prefer the “old” reddit style to go to it via www.unit520.wtf, which points at the actual lemmy instance at hq.unit520.wtf. MLMYM is really easy to deploy, with some quick modifications to the default helm chart, it comes down to:

helm upgrade \
    --install \
    --namespace $INSTANCE \
    --create-namespace \
    mlmym ./ \
    --set lemmy_domain=hq.unit520.wtf \
    --set ingress.hosts[0].host=www.unit520.wtf

We also use the external-dns operator to manage the ALIAS record for our NLB. Basically, when we set an ingress hostname, this operator will go change the route53 records via api call. This way, we don’t have to manually set DNS records when we deploy more infrastructure.