apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress annotations: nginx.ingress.kubernetes.io/proxy-body-size: 50m nginx.ingress.kubernetes.io/server-snippet: | location = /robots.txt { add_header Content-Type text/plain; return 200 "User-agent: Amazonbot\nDisallow: /\n\nUser-agent: BLEXBot\nDisallow: /\n\nUser-agent: SemrushBot\nDisallow: /\n\nUser-agent: AhrefsBot\nDisallow: /\n\nUser-agent: DotBot\nDisallow: /\n\nUser-agent: MJ12bot\nDisallow: /\n\nUser-agent: PetalBot\nDisallow: /\n\nUser-agent: ImagesiftBot\nDisallow: /\n\nUser-agent: BingBot\nCrawl-delay: 30\n"; } 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