apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress annotations: nginx.ingress.kubernetes.io/proxy-body-size: 5m nginx.ingress.kubernetes.io/server-snippet: | if ($http_user_agent ~* "BLEXBot|SemrushBot|AhrefsBot" ) { return 403; } spec: ingressClassName: nginx # NOTE: overlays depend on the order of rule entries. rules: - host: grafana.internal http: paths: - pathType: Prefix path: "/" backend: service: name: grafana port: name: service - host: invidious.internal http: paths: - pathType: Prefix path: "/" backend: service: name: invidious port: name: http - host: element.internal http: paths: - pathType: Prefix path: "/" backend: service: name: element port: name: http # See the comment in the drone-config configMapGenerator in # dev/kustomization.yaml: - host: gitea.internal http: paths: - pathType: Prefix path: "/" backend: service: name: gitea port: name: http - host: drone.internal http: paths: - pathType: Prefix path: "/" backend: service: name: drone port: name: http - host: synapse.internal http: paths: - pathType: Prefix path: "/" backend: service: name: synapse port: name: http - host: netflux.internal http: paths: - pathType: Prefix path: "/" backend: service: name: netflux-homepage port: name: http - host: caldav.internal http: paths: - pathType: Prefix path: "/" backend: service: name: radicale port: name: caldav - host: solar-gateway.internal http: paths: - pathType: Prefix path: "/" backend: service: name: solar-toolkit-gateway port: name: http