From 690613cab8881eba88d57e174b80fc785476310d Mon Sep 17 00:00:00 2001 From: ston1th Date: Sun, 13 Oct 2024 03:39:20 +0200 Subject: [PATCH] added livez --- pkg/api/server.go | 13 +++++++++++-- pkg/api/types/context.go | 12 ++++-------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg/api/server.go b/pkg/api/server.go index ba2b526..ed85fa1 100644 --- a/pkg/api/server.go +++ b/pkg/api/server.go @@ -32,8 +32,14 @@ type notFoundHandler struct { log logr.Logger } -func (nf *notFoundHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { - types.NewContext(w, r, nil, nf.log).Err(types.ErrInvalidAPIRoute) +func (h *notFoundHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + types.NewContext(w, r, nil, h.log).Err(types.ErrInvalidAPIRoute) +} + +type okHandler struct{} + +func (okHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { + types.NewContext(w, r, nil, logr.Discard()).OK() } func NewServer(log logr.Logger, listen, socket string, db *db.DB) (*Server, error) { @@ -63,6 +69,9 @@ func NewServer(log logr.Logger, listen, socket string, db *db.DB) (*Server, erro s.socket = sock m.Handle("/", ¬FoundHandler{log}) + ok := okHandler{} + m.Handle("GET /livez", ok) + m.Handle("GET /readyz", ok) for _, v := range serverv1.Routes { for _, method := range v.Methods { m.HandleFunc(method+" "+v.Path, s.contextWrapper(v.Handler)) diff --git a/pkg/api/types/context.go b/pkg/api/types/context.go index a277366..a272ebc 100644 --- a/pkg/api/types/context.go +++ b/pkg/api/types/context.go @@ -18,8 +18,6 @@ type ContextData struct { } func NewContext(w http.ResponseWriter, r *http.Request, data *ContextData, log logr.Logger) *Context { - h := w.Header() - h.Set("Content-Type", "application/json") return &Context{ code: http.StatusOK, r: r, @@ -110,13 +108,9 @@ func (c *Context) ReadBody() (b []byte, err error) { return } -func (c *Context) Body(b []byte) { - c.w.Write(b) - c.log() -} - // JSON is a json response func (c *Context) JSON(v any) { + c.SetHeader("Content-Type", "application/json") err := json.NewEncoder(c.w).Encode(v) if err != nil { c.Err(ErrISE) @@ -139,7 +133,9 @@ func (c *Context) Err(err Error) { // HTTPErr is a http.Error wrapper func (c *Context) HTTPErr(err string, code int) { c.code = code - http.Error(c.w, err, code) + c.SetHeader("Content-Type", "application/json") + c.w.WriteHeader(code) + c.w.Write([]byte(err)) c.log() }