Change default behavior and naming

Signed-off-by: Alexey Kuzbekov <alexey@kuzbekov.me>
This commit is contained in:
Alexey Kuzbekov 2024-05-30 14:00:35 +01:00
parent ab58c812bd
commit c85b1eb391
No known key found for this signature in database
GPG Key ID: EB92673B8AC050B2
3 changed files with 33 additions and 33 deletions

View File

@ -48,23 +48,23 @@ type eventContextKey struct{}
// EventServer handles event POST requests
type EventServer struct {
port string
logger logr.Logger
kubeClient client.Client
noCrossNamespaceRefs bool
detailedMetrics bool
port string
logger logr.Logger
kubeClient client.Client
noCrossNamespaceRefs bool
exportHTTPPathMetrics bool
kuberecorder.EventRecorder
}
// NewEventServer returns an HTTP server that handles events
func NewEventServer(port string, logger logr.Logger, kubeClient client.Client, eventRecorder kuberecorder.EventRecorder, noCrossNamespaceRefs bool, detailedMetrics bool) *EventServer {
func NewEventServer(port string, logger logr.Logger, kubeClient client.Client, eventRecorder kuberecorder.EventRecorder, noCrossNamespaceRefs bool, exportHTTPPathMetrics bool) *EventServer {
return &EventServer{
port: port,
logger: logger.WithName("event-server"),
kubeClient: kubeClient,
EventRecorder: eventRecorder,
noCrossNamespaceRefs: noCrossNamespaceRefs,
detailedMetrics: detailedMetrics,
port: port,
logger: logger.WithName("event-server"),
kubeClient: kubeClient,
EventRecorder: eventRecorder,
noCrossNamespaceRefs: noCrossNamespaceRefs,
exportHTTPPathMetrics: exportHTTPPathMetrics,
}
}
@ -86,11 +86,11 @@ func (s *EventServer) ListenAndServe(stopCh <-chan struct{}, mdlw middleware.Mid
mux := http.NewServeMux()
path := "/"
mux.Handle(path, handler)
middlewarePath := ""
if !s.detailedMetrics {
middlewarePath = path
handlerID := path
if s.exportHTTPPathMetrics {
handlerID = ""
}
h := std.Handler(middlewarePath, mdlw, mux)
h := std.Handler(handlerID, mdlw, mux)
srv := &http.Server{
Addr: s.port,
Handler: h,

View File

@ -32,19 +32,19 @@ import (
// ReceiverServer handles webhook POST requests
type ReceiverServer struct {
port string
logger logr.Logger
kubeClient client.Client
detailedMetrics bool
port string
logger logr.Logger
kubeClient client.Client
exportHTTPPathMetrics bool
}
// NewReceiverServer returns an HTTP server that handles webhooks
func NewReceiverServer(port string, logger logr.Logger, kubeClient client.Client, detailedMetrics bool) *ReceiverServer {
func NewReceiverServer(port string, logger logr.Logger, kubeClient client.Client, exportHTTPPathMetrics bool) *ReceiverServer {
return &ReceiverServer{
port: port,
logger: logger.WithName("receiver-server"),
kubeClient: kubeClient,
detailedMetrics: detailedMetrics,
port: port,
logger: logger.WithName("receiver-server"),
kubeClient: kubeClient,
exportHTTPPathMetrics: exportHTTPPathMetrics,
}
}
@ -52,11 +52,11 @@ func NewReceiverServer(port string, logger logr.Logger, kubeClient client.Client
func (s *ReceiverServer) ListenAndServe(stopCh <-chan struct{}, mdlw middleware.Middleware) {
mux := http.NewServeMux()
mux.Handle(apiv1.ReceiverWebhookPath, http.HandlerFunc(s.handlePayload()))
middlewarePath := ""
if !s.detailedMetrics {
middlewarePath = apiv1.ReceiverWebhookPath
handlerID := apiv1.ReceiverWebhookPath
if s.exportHTTPPathMetrics {
handlerID = ""
}
h := std.Handler(middlewarePath, mdlw, mux)
h := std.Handler(handlerID, mdlw, mux)
srv := &http.Server{
Addr: s.port,
Handler: h,

View File

@ -87,7 +87,7 @@ func main() {
aclOptions acl.Options
rateLimiterOptions helper.RateLimiterOptions
featureGates feathelper.FeatureGates
detailedMetrics bool
exportHTTPPathMetrics bool
)
flag.StringVar(&metricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.")
@ -98,7 +98,7 @@ func main() {
flag.BoolVar(&watchAllNamespaces, "watch-all-namespaces", true,
"Watch for custom resources in all namespaces, if set to false it will only watch the runtime namespace.")
flag.DurationVar(&rateLimitInterval, "rate-limit-interval", 5*time.Minute, "Interval in which rate limit has effect.")
flag.BoolVar(&detailedMetrics, "detailed-metrics", true, "Count metrics for every requested path")
flag.BoolVar(&exportHTTPPathMetrics, "export-http-path-metrics", false, "When enabled, the requests full path is included in the HTTP server metrics (risk as high cardinality")
clientOptions.BindFlags(flag.CommandLine)
logOptions.BindFlags(flag.CommandLine)
@ -222,11 +222,11 @@ func main() {
Registry: crtlmetrics.Registry,
}),
})
eventServer := server.NewEventServer(eventsAddr, ctrl.Log, mgr.GetClient(), mgr.GetEventRecorderFor(controllerName), aclOptions.NoCrossNamespaceRefs, detailedMetrics)
eventServer := server.NewEventServer(eventsAddr, ctrl.Log, mgr.GetClient(), mgr.GetEventRecorderFor(controllerName), aclOptions.NoCrossNamespaceRefs, exportHTTPPathMetrics)
go eventServer.ListenAndServe(ctx.Done(), eventMdlw, store)
setupLog.Info("starting webhook receiver server", "addr", receiverAddr)
receiverServer := server.NewReceiverServer(receiverAddr, ctrl.Log, mgr.GetClient(), detailedMetrics)
receiverServer := server.NewReceiverServer(receiverAddr, ctrl.Log, mgr.GetClient(), exportHTTPPathMetrics)
receiverMdlw := middleware.New(middleware.Config{
Recorder: prommetrics.NewRecorder(prommetrics.Config{
Prefix: "gotk_receiver",