1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2024-12-14 11:57:48 +00:00
kyverno/pkg/clients/kube/interface.generated.go
Charles-Edouard Brétéché ecbdaae292
feat: add logging support to instrumented clients (#5438)
* feat: add discovery support in instrumented clients

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

* fix tracing

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

* feat: add logging support to instrumented clients

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com>
2022-11-22 15:12:30 +00:00

85 lines
2 KiB
Go

package clientset
import (
"net/http"
"github.com/go-logr/logr"
"github.com/kyverno/kyverno/pkg/metrics"
k8s_io_client_go_kubernetes "k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
)
type Interface interface {
k8s_io_client_go_kubernetes.Interface
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
WithTracing() Interface
WithLogging(logr.Logger) Interface
}
func From(inner k8s_io_client_go_kubernetes.Interface, opts ...NewOption) Interface {
i := from(inner)
for _, opt := range opts {
i = opt(i)
}
return i
}
type NewOption func(Interface) Interface
func WithMetrics(m metrics.MetricsConfigManager, t metrics.ClientType) NewOption {
return func(i Interface) Interface {
return i.WithMetrics(m, t)
}
}
func WithTracing() NewOption {
return func(i Interface) Interface {
return i.WithTracing()
}
}
func WithLogging(logger logr.Logger) NewOption {
return func(i Interface) Interface {
return i.WithLogging(logger)
}
}
func NewForConfig(c *rest.Config, opts ...NewOption) (Interface, error) {
inner, err := k8s_io_client_go_kubernetes.NewForConfig(c)
if err != nil {
return nil, err
}
return From(inner, opts...), nil
}
func NewForConfigAndClient(c *rest.Config, httpClient *http.Client, opts ...NewOption) (Interface, error) {
inner, err := k8s_io_client_go_kubernetes.NewForConfigAndClient(c, httpClient)
if err != nil {
return nil, err
}
return From(inner, opts...), nil
}
func NewForConfigOrDie(c *rest.Config, opts ...NewOption) Interface {
return From(k8s_io_client_go_kubernetes.NewForConfigOrDie(c), opts...)
}
type wrapper struct {
k8s_io_client_go_kubernetes.Interface
}
func from(inner k8s_io_client_go_kubernetes.Interface, opts ...NewOption) Interface {
return &wrapper{inner}
}
func (i *wrapper) WithMetrics(m metrics.MetricsConfigManager, t metrics.ClientType) Interface {
return from(WrapWithMetrics(i, m, t))
}
func (i *wrapper) WithTracing() Interface {
return from(WrapWithTracing(i))
}
func (i *wrapper) WithLogging(logger logr.Logger) Interface {
return from(WrapWithLogging(i, logger))
}