/
interface.generated.go
87 lines (70 loc) · 2.09 KB
/
interface.generated.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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 UpstreamInterface = k8s_io_client_go_kubernetes.Interface
type Interface interface {
UpstreamInterface
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))
}