diff options
-rw-r--r-- | acceptance_test.go | 11 | ||||
-rw-r--r-- | app.go | 6 | ||||
-rw-r--r-- | app_config.go | 1 | ||||
-rw-r--r-- | main.go | 2 |
4 files changed, 20 insertions, 0 deletions
diff --git a/acceptance_test.go b/acceptance_test.go index 20784433..8adef2a6 100644 --- a/acceptance_test.go +++ b/acceptance_test.go @@ -196,3 +196,14 @@ func TestPrometheusMetricsCanBeScraped(t *testing.T) { assert.Contains(t, string(body), "gitlab_pages_domains_served_total 7") } } + +func TestStatusPage(t *testing.T) { + skipUnlessEnabled(t) + teardown := RunPagesProcess(t, *pagesBinary, listeners, "", "-redirect-http=false", "-pages-status=/@statuscheck") + defer teardown() + + rsp, err := GetPageFromListener(t, httpListener, "group.gitlab-example.com", "@statuscheck") + assert.NoError(t, err) + defer rsp.Body.Close() + assert.Equal(t, http.StatusOK, rsp.StatusCode) +} @@ -58,6 +58,12 @@ func (a *theApp) serveContent(ww http.ResponseWriter, r *http.Request, https boo metrics.SessionsActive.Inc() defer metrics.SessionsActive.Dec() + // short circuit content serving to check for a status page + if r.RequestURI == a.appConfig.StatusPath { + w.Write([]byte("success")) + return + } + // Add auto redirect if !https && a.RedirectHTTP { u := *r.URL diff --git a/app_config.go b/app_config.go index 18fd644c..e45dda24 100644 --- a/app_config.go +++ b/app_config.go @@ -13,6 +13,7 @@ type appConfig struct { HTTP2 bool RedirectHTTP bool + StatusPath string DisableCrossOriginRequests bool } @@ -20,6 +20,7 @@ var ( useHTTP2 = flag.Bool("use-http2", true, "Enable HTTP2 support") pagesRoot = flag.String("pages-root", "shared/pages", "The directory where pages are stored") pagesDomain = flag.String("pages-domain", "gitlab-example.com", "The domain to serve static pages") + pagesStatus = flag.String("pages-status", "", "The url path for a status page, e.g., /@status") metricsAddress = flag.String("metrics-address", "", "The address to listen on for metrics requests") daemonUID = flag.Uint("daemon-uid", 0, "Drop privileges to this user") daemonGID = flag.Uint("daemon-gid", 0, "Drop privileges to this group") @@ -34,6 +35,7 @@ func configFromFlags() appConfig { config.RedirectHTTP = *redirectHTTP config.HTTP2 = *useHTTP2 config.DisableCrossOriginRequests = *disableCrossOriginRequests + config.StatusPath = *pagesStatus if *pagesRootCert != "" { config.RootCertificate = readFile(*pagesRootCert) |