Skip to content

Commit 9d52ed9

Browse files
Merge pull request #174 from basecamp/allow-health-healthcheck-in-maintenance
Allow HEAD healthchecks to succeed in maintenance
2 parents 6c5d8da + f2ddd54 commit 9d52ed9

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

internal/server/target.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ type TargetOptions struct {
7676
}
7777

7878
func (to *TargetOptions) IsHealthCheckRequest(r *http.Request) bool {
79-
return r.Method == http.MethodGet && r.URL.Path == to.HealthCheckConfig.Path
79+
return (r.Method == http.MethodGet || r.Method == http.MethodHead) && r.URL.Path == to.HealthCheckConfig.Path
8080
}
8181

8282
func (to *TargetOptions) canonicalizeLogHeaders() {

internal/server/target_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,9 @@ func TestTarget_IsHealthCheckRequest(t *testing.T) {
279279
target := testTarget(t, func(w http.ResponseWriter, r *http.Request) {})
280280

281281
assert.True(t, target.options.IsHealthCheckRequest(httptest.NewRequest(http.MethodGet, "/up", nil)))
282+
assert.True(t, target.options.IsHealthCheckRequest(httptest.NewRequest(http.MethodHead, "/up", nil)))
282283
assert.True(t, target.options.IsHealthCheckRequest(httptest.NewRequest(http.MethodGet, "/up?one=two", nil)))
284+
assert.True(t, target.options.IsHealthCheckRequest(httptest.NewRequest(http.MethodHead, "/up?one=two", nil)))
283285

284286
assert.False(t, target.options.IsHealthCheckRequest(httptest.NewRequest(http.MethodGet, "/up/other", nil)))
285287
assert.False(t, target.options.IsHealthCheckRequest(httptest.NewRequest(http.MethodGet, "/health", nil)))

0 commit comments

Comments
 (0)