diff --git a/k8s/drexel-scraper/templates/grafana-ingress.yaml b/k8s/drexel-scraper/templates/grafana-ingress.yaml index 9eeb35c..0bd85b7 100644 --- a/k8s/drexel-scraper/templates/grafana-ingress.yaml +++ b/k8s/drexel-scraper/templates/grafana-ingress.yaml @@ -5,9 +5,24 @@ metadata: annotations: kubernetes.io/ingress.class: nginx cert-manager.io/cluster-issuer: letsencrypt-prod - nginx.ingress.kubernetes.io/configuration-snippet: | - if ($request_uri = "/") { - return 302 /?kiosk; + nginx.ingress.kubernetes.io/server-snippet: | + access_by_lua_block { + local uri = ngx.var.uri + -- Check if the URI is "/" or starts with "/d/" + if uri == "/" or ngx.re.find(uri, "^/d/") then + local orig_args = ngx.var.args or "" + -- Use PCRE to check if "kiosk" exists anywhere in the query string. + local res, err = ngx.re.find(orig_args, "(^|&)kiosk($|&)") + if not res then + local new_query + if orig_args == "" then + new_query = "kiosk" + else + new_query = orig_args .. "&kiosk" + end + return ngx.redirect(ngx.var.scheme .. "://" .. ngx.var.host .. uri .. "?" .. new_query, 302) + end + end } spec: rules: