mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-05 07:26:55 +00:00
feat: add discovery support in instrumented clients (#5437)
* 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> Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
2178b9fe77
commit
4ccec04bfa
9 changed files with 680 additions and 85 deletions
68
hack/main.go
68
hack/main.go
|
@ -94,6 +94,10 @@ func (c *withTracing) {{ $operation.Method.Name }}(
|
|||
{{- if $operation.HasContext }}
|
||||
ctx, span := tracing.StartSpan(
|
||||
arg0,
|
||||
{{- else }}
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
{{- end }}
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, {{ Quote $operation.Method.Name }}),
|
||||
attribute.String("client", c.client),
|
||||
|
@ -101,6 +105,7 @@ func (c *withTracing) {{ $operation.Method.Name }}(
|
|||
attribute.String("operation", {{ Quote $operation.Method.Name }}),
|
||||
)
|
||||
defer span.End()
|
||||
{{- if $operation.HasContext }}
|
||||
arg0 = ctx
|
||||
{{- end }}
|
||||
{{ range $i, $ret := Returns $operation.Method }}ret{{ $i }}{{ if not $ret.IsLast -}},{{- end }} {{ end }} := c.inner.{{ $operation.Method.Name }}(
|
||||
|
@ -112,7 +117,7 @@ func (c *withTracing) {{ $operation.Method.Name }}(
|
|||
{{- end -}}
|
||||
{{- end -}}
|
||||
)
|
||||
{{- if $operation.HasContext }}
|
||||
{{- if $operation.HasError }}
|
||||
{{- range $i, $ret := Returns $operation.Method }}
|
||||
{{- if $ret.IsError }}
|
||||
if ret{{ $i }} != nil {
|
||||
|
@ -194,21 +199,28 @@ import (
|
|||
{{- range $package := Packages .Target.Type }}
|
||||
{{ Pkg $package }} {{ Quote $package }}
|
||||
{{- end }}
|
||||
{{- range $resourceMethod, $resource := .Target.Resources }}
|
||||
{{ ToLower $resourceMethod.Name }} "github.com/kyverno/kyverno/{{ $.Folder }}/{{ ToLower $resourceMethod.Name }}"
|
||||
{{- end }}
|
||||
{{- range $clientMethod, $client := .Target.Clients }}
|
||||
{{ ToLower $clientMethod.Name }} "github.com/kyverno/kyverno/{{ $.Folder }}/{{ ToLower $clientMethod.Name }}"
|
||||
{{- end }}
|
||||
)
|
||||
|
||||
type clientset struct {
|
||||
inner {{ GoType .Target }}
|
||||
{{- range $resourceMethod, $resource := .Target.Resources }}
|
||||
{{ ToLower $resourceMethod.Name }} {{ GoType $resource.Type }}
|
||||
{{- end }}
|
||||
{{- range $clientMethod, $client := .Target.Clients }}
|
||||
{{ ToLower $clientMethod.Name }} {{ GoType $client.Type }}
|
||||
{{- end }}
|
||||
}
|
||||
|
||||
func (c *clientset) Discovery() discovery.DiscoveryInterface {
|
||||
return c.inner.Discovery()
|
||||
{{- range $resourceMethod, $resource := .Target.Resources }}
|
||||
func (c *clientset) {{ $resourceMethod.Name }}() {{ GoType $resource.Type }}{
|
||||
return c.{{ ToLower $resourceMethod.Name }}
|
||||
}
|
||||
{{- end }}
|
||||
|
||||
{{- range $clientMethod, $client := .Target.Clients }}
|
||||
func (c *clientset) {{ $clientMethod.Name }}() {{ GoType $client.Type }}{
|
||||
|
@ -216,18 +228,22 @@ func (c *clientset) {{ $clientMethod.Name }}() {{ GoType $client.Type }}{
|
|||
}
|
||||
{{- end }}
|
||||
|
||||
func WrapWithMetrics(inner {{ GoType .Target }}, metrics metrics.MetricsConfigManager, clientType metrics.ClientType) {{ GoType .Target }} {
|
||||
func WrapWithMetrics(inner {{ GoType .Target }}, m metrics.MetricsConfigManager, clientType metrics.ClientType) {{ GoType .Target }} {
|
||||
return &clientset{
|
||||
inner: inner,
|
||||
{{- range $resourceMethod, $resource := .Target.Resources }}
|
||||
{{ ToLower $resourceMethod.Name }}: {{ ToLower $resourceMethod.Name }}.WithMetrics(inner.{{ $resourceMethod.Name }}(), metrics.ClusteredClientQueryRecorder(m, {{ Quote $resource.Kind }}, clientType)),
|
||||
{{- end }}
|
||||
{{- range $clientMethod, $client := .Target.Clients }}
|
||||
{{ ToLower $clientMethod.Name }}: {{ ToLower $clientMethod.Name }}.WithMetrics(inner.{{ $clientMethod.Name }}(), metrics, clientType),
|
||||
{{ ToLower $clientMethod.Name }}: {{ ToLower $clientMethod.Name }}.WithMetrics(inner.{{ $clientMethod.Name }}(), m, clientType),
|
||||
{{- end }}
|
||||
}
|
||||
}
|
||||
|
||||
func WrapWithTracing(inner {{ GoType .Target }}) {{ GoType .Target }} {
|
||||
return &clientset{
|
||||
inner: inner,
|
||||
{{- range $resourceMethod, $resource := .Target.Resources }}
|
||||
{{ ToLower $resourceMethod.Name }}: {{ ToLower $resourceMethod.Name }}.WithTracing(inner.{{ $resourceMethod.Name }}(), {{ Quote $resourceMethod.Name }}, ""),
|
||||
{{- end }}
|
||||
{{- range $clientMethod, $client := .Target.Clients }}
|
||||
{{ ToLower $clientMethod.Name }}: {{ ToLower $clientMethod.Name }}.WithTracing(inner.{{ $clientMethod.Name }}(), {{ Quote $clientMethod.Name }}),
|
||||
{{- end }}
|
||||
|
@ -337,7 +353,7 @@ func (r ret) IsError() bool {
|
|||
}
|
||||
|
||||
type operation struct {
|
||||
Method reflect.Method
|
||||
reflect.Method
|
||||
}
|
||||
|
||||
func (o operation) HasContext() bool {
|
||||
|
@ -345,7 +361,12 @@ func (o operation) HasContext() bool {
|
|||
}
|
||||
|
||||
func (o operation) HasError() bool {
|
||||
return o.Method.Type.NumIn() > 0 && goType(o.Method.Type.In(o.Method.Type.NumIn()-1)) == "error"
|
||||
for _, out := range getOuts(o.Method) {
|
||||
if goType(out) == "error" {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type resource struct {
|
||||
|
@ -370,7 +391,8 @@ type client struct {
|
|||
|
||||
type clientset struct {
|
||||
reflect.Type
|
||||
Clients map[reflect.Method]client
|
||||
Clients map[reflect.Method]client
|
||||
Resources map[resourceKey]resource
|
||||
}
|
||||
|
||||
func getIns(in reflect.Method) []reflect.Type {
|
||||
|
@ -469,15 +491,18 @@ func parseClient(in reflect.Type) client {
|
|||
return c
|
||||
}
|
||||
|
||||
func parse(in reflect.Type) clientset {
|
||||
func parseClientset(in reflect.Type) clientset {
|
||||
cs := clientset{
|
||||
Type: in,
|
||||
Clients: map[reflect.Method]client{},
|
||||
Type: in,
|
||||
Clients: map[reflect.Method]client{},
|
||||
Resources: map[resourceKey]resource{},
|
||||
}
|
||||
for _, clientMethod := range getMethods(in) {
|
||||
// client methods return only the client interface type
|
||||
if clientMethod.Type.NumOut() == 1 && clientMethod.Name != "Discovery" {
|
||||
cs.Clients[clientMethod] = parseClient(clientMethod.Type.Out(0))
|
||||
} else if clientMethod.Name == "Discovery" {
|
||||
cs.Resources[resourceKey(clientMethod)] = parseResource(clientMethod.Type.Out(0))
|
||||
}
|
||||
}
|
||||
return cs
|
||||
|
@ -497,10 +522,10 @@ func parseImports(in reflect.Type) []string {
|
|||
for _, i := range getOuts(m) {
|
||||
pkg := i.PkgPath()
|
||||
if i.Kind() == reflect.Pointer {
|
||||
i.Elem().PkgPath()
|
||||
pkg = i.Elem().PkgPath()
|
||||
}
|
||||
if pkg != "" {
|
||||
imports.Insert(i.PkgPath())
|
||||
imports.Insert(pkg)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -579,6 +604,9 @@ func generateClientset(cs clientset, folder string) {
|
|||
for m, c := range cs.Clients {
|
||||
generateClient(c, path.Join(folder, strings.ToLower(m.Name)))
|
||||
}
|
||||
for m, r := range cs.Resources {
|
||||
generateResource(r, path.Join(folder, strings.ToLower(m.Name)))
|
||||
}
|
||||
}
|
||||
|
||||
func generateInterface(cs clientset, folder string) {
|
||||
|
@ -586,17 +614,17 @@ func generateInterface(cs clientset, folder string) {
|
|||
}
|
||||
|
||||
func main() {
|
||||
kube := parse(reflect.TypeOf((*kubernetes.Interface)(nil)).Elem())
|
||||
kube := parseClientset(reflect.TypeOf((*kubernetes.Interface)(nil)).Elem())
|
||||
generateClientset(kube, "pkg/clients/kube")
|
||||
generateInterface(kube, "pkg/clients/kube")
|
||||
kyverno := parse(reflect.TypeOf((*versioned.Interface)(nil)).Elem())
|
||||
kyverno := parseClientset(reflect.TypeOf((*versioned.Interface)(nil)).Elem())
|
||||
generateClientset(kyverno, "pkg/clients/kyverno")
|
||||
generateInterface(kyverno, "pkg/clients/kyverno")
|
||||
dynamicInterface := parse(reflect.TypeOf((*dynamic.Interface)(nil)).Elem())
|
||||
dynamicInterface := parseClientset(reflect.TypeOf((*dynamic.Interface)(nil)).Elem())
|
||||
dynamicResource := parseResource(reflect.TypeOf((*dynamic.ResourceInterface)(nil)).Elem())
|
||||
generateResource(dynamicResource, "pkg/clients/dynamic/resource")
|
||||
generateInterface(dynamicInterface, "pkg/clients/dynamic")
|
||||
metadataInterface := parse(reflect.TypeOf((*metadata.Interface)(nil)).Elem())
|
||||
metadataInterface := parseClientset(reflect.TypeOf((*metadata.Interface)(nil)).Elem())
|
||||
metadataResource := parseResource(reflect.TypeOf((*metadata.ResourceInterface)(nil)).Elem())
|
||||
generateInterface(metadataInterface, "pkg/clients/metadata")
|
||||
generateResource(metadataResource, "pkg/clients/metadata/resource")
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
coordinationv1 "github.com/kyverno/kyverno/pkg/clients/kube/coordinationv1"
|
||||
coordinationv1beta1 "github.com/kyverno/kyverno/pkg/clients/kube/coordinationv1beta1"
|
||||
corev1 "github.com/kyverno/kyverno/pkg/clients/kube/corev1"
|
||||
discovery "github.com/kyverno/kyverno/pkg/clients/kube/discovery"
|
||||
discoveryv1 "github.com/kyverno/kyverno/pkg/clients/kube/discoveryv1"
|
||||
discoveryv1beta1 "github.com/kyverno/kyverno/pkg/clients/kube/discoveryv1beta1"
|
||||
eventsv1 "github.com/kyverno/kyverno/pkg/clients/kube/eventsv1"
|
||||
|
@ -48,7 +49,7 @@ import (
|
|||
storagev1alpha1 "github.com/kyverno/kyverno/pkg/clients/kube/storagev1alpha1"
|
||||
storagev1beta1 "github.com/kyverno/kyverno/pkg/clients/kube/storagev1beta1"
|
||||
"github.com/kyverno/kyverno/pkg/metrics"
|
||||
"k8s.io/client-go/discovery"
|
||||
k8s_io_client_go_discovery "k8s.io/client-go/discovery"
|
||||
k8s_io_client_go_kubernetes "k8s.io/client-go/kubernetes"
|
||||
k8s_io_client_go_kubernetes_typed_admissionregistration_v1 "k8s.io/client-go/kubernetes/typed/admissionregistration/v1"
|
||||
k8s_io_client_go_kubernetes_typed_admissionregistration_v1beta1 "k8s.io/client-go/kubernetes/typed/admissionregistration/v1beta1"
|
||||
|
@ -99,7 +100,7 @@ import (
|
|||
)
|
||||
|
||||
type clientset struct {
|
||||
inner k8s_io_client_go_kubernetes.Interface
|
||||
discovery k8s_io_client_go_discovery.DiscoveryInterface
|
||||
admissionregistrationv1 k8s_io_client_go_kubernetes_typed_admissionregistration_v1.AdmissionregistrationV1Interface
|
||||
admissionregistrationv1beta1 k8s_io_client_go_kubernetes_typed_admissionregistration_v1beta1.AdmissionregistrationV1beta1Interface
|
||||
appsv1 k8s_io_client_go_kubernetes_typed_apps_v1.AppsV1Interface
|
||||
|
@ -148,8 +149,8 @@ type clientset struct {
|
|||
storagev1beta1 k8s_io_client_go_kubernetes_typed_storage_v1beta1.StorageV1beta1Interface
|
||||
}
|
||||
|
||||
func (c *clientset) Discovery() discovery.DiscoveryInterface {
|
||||
return c.inner.Discovery()
|
||||
func (c *clientset) Discovery() k8s_io_client_go_discovery.DiscoveryInterface {
|
||||
return c.discovery
|
||||
}
|
||||
func (c *clientset) AdmissionregistrationV1() k8s_io_client_go_kubernetes_typed_admissionregistration_v1.AdmissionregistrationV1Interface {
|
||||
return c.admissionregistrationv1
|
||||
|
@ -290,61 +291,61 @@ func (c *clientset) StorageV1beta1() k8s_io_client_go_kubernetes_typed_storage_v
|
|||
return c.storagev1beta1
|
||||
}
|
||||
|
||||
func WrapWithMetrics(inner k8s_io_client_go_kubernetes.Interface, metrics metrics.MetricsConfigManager, clientType metrics.ClientType) k8s_io_client_go_kubernetes.Interface {
|
||||
func WrapWithMetrics(inner k8s_io_client_go_kubernetes.Interface, m metrics.MetricsConfigManager, clientType metrics.ClientType) k8s_io_client_go_kubernetes.Interface {
|
||||
return &clientset{
|
||||
inner: inner,
|
||||
admissionregistrationv1: admissionregistrationv1.WithMetrics(inner.AdmissionregistrationV1(), metrics, clientType),
|
||||
admissionregistrationv1beta1: admissionregistrationv1beta1.WithMetrics(inner.AdmissionregistrationV1beta1(), metrics, clientType),
|
||||
appsv1: appsv1.WithMetrics(inner.AppsV1(), metrics, clientType),
|
||||
appsv1beta1: appsv1beta1.WithMetrics(inner.AppsV1beta1(), metrics, clientType),
|
||||
appsv1beta2: appsv1beta2.WithMetrics(inner.AppsV1beta2(), metrics, clientType),
|
||||
authenticationv1: authenticationv1.WithMetrics(inner.AuthenticationV1(), metrics, clientType),
|
||||
authenticationv1beta1: authenticationv1beta1.WithMetrics(inner.AuthenticationV1beta1(), metrics, clientType),
|
||||
authorizationv1: authorizationv1.WithMetrics(inner.AuthorizationV1(), metrics, clientType),
|
||||
authorizationv1beta1: authorizationv1beta1.WithMetrics(inner.AuthorizationV1beta1(), metrics, clientType),
|
||||
autoscalingv1: autoscalingv1.WithMetrics(inner.AutoscalingV1(), metrics, clientType),
|
||||
autoscalingv2: autoscalingv2.WithMetrics(inner.AutoscalingV2(), metrics, clientType),
|
||||
autoscalingv2beta1: autoscalingv2beta1.WithMetrics(inner.AutoscalingV2beta1(), metrics, clientType),
|
||||
autoscalingv2beta2: autoscalingv2beta2.WithMetrics(inner.AutoscalingV2beta2(), metrics, clientType),
|
||||
batchv1: batchv1.WithMetrics(inner.BatchV1(), metrics, clientType),
|
||||
batchv1beta1: batchv1beta1.WithMetrics(inner.BatchV1beta1(), metrics, clientType),
|
||||
certificatesv1: certificatesv1.WithMetrics(inner.CertificatesV1(), metrics, clientType),
|
||||
certificatesv1beta1: certificatesv1beta1.WithMetrics(inner.CertificatesV1beta1(), metrics, clientType),
|
||||
coordinationv1: coordinationv1.WithMetrics(inner.CoordinationV1(), metrics, clientType),
|
||||
coordinationv1beta1: coordinationv1beta1.WithMetrics(inner.CoordinationV1beta1(), metrics, clientType),
|
||||
corev1: corev1.WithMetrics(inner.CoreV1(), metrics, clientType),
|
||||
discoveryv1: discoveryv1.WithMetrics(inner.DiscoveryV1(), metrics, clientType),
|
||||
discoveryv1beta1: discoveryv1beta1.WithMetrics(inner.DiscoveryV1beta1(), metrics, clientType),
|
||||
eventsv1: eventsv1.WithMetrics(inner.EventsV1(), metrics, clientType),
|
||||
eventsv1beta1: eventsv1beta1.WithMetrics(inner.EventsV1beta1(), metrics, clientType),
|
||||
extensionsv1beta1: extensionsv1beta1.WithMetrics(inner.ExtensionsV1beta1(), metrics, clientType),
|
||||
flowcontrolv1alpha1: flowcontrolv1alpha1.WithMetrics(inner.FlowcontrolV1alpha1(), metrics, clientType),
|
||||
flowcontrolv1beta1: flowcontrolv1beta1.WithMetrics(inner.FlowcontrolV1beta1(), metrics, clientType),
|
||||
flowcontrolv1beta2: flowcontrolv1beta2.WithMetrics(inner.FlowcontrolV1beta2(), metrics, clientType),
|
||||
internalv1alpha1: internalv1alpha1.WithMetrics(inner.InternalV1alpha1(), metrics, clientType),
|
||||
networkingv1: networkingv1.WithMetrics(inner.NetworkingV1(), metrics, clientType),
|
||||
networkingv1alpha1: networkingv1alpha1.WithMetrics(inner.NetworkingV1alpha1(), metrics, clientType),
|
||||
networkingv1beta1: networkingv1beta1.WithMetrics(inner.NetworkingV1beta1(), metrics, clientType),
|
||||
nodev1: nodev1.WithMetrics(inner.NodeV1(), metrics, clientType),
|
||||
nodev1alpha1: nodev1alpha1.WithMetrics(inner.NodeV1alpha1(), metrics, clientType),
|
||||
nodev1beta1: nodev1beta1.WithMetrics(inner.NodeV1beta1(), metrics, clientType),
|
||||
policyv1: policyv1.WithMetrics(inner.PolicyV1(), metrics, clientType),
|
||||
policyv1beta1: policyv1beta1.WithMetrics(inner.PolicyV1beta1(), metrics, clientType),
|
||||
rbacv1: rbacv1.WithMetrics(inner.RbacV1(), metrics, clientType),
|
||||
rbacv1alpha1: rbacv1alpha1.WithMetrics(inner.RbacV1alpha1(), metrics, clientType),
|
||||
rbacv1beta1: rbacv1beta1.WithMetrics(inner.RbacV1beta1(), metrics, clientType),
|
||||
schedulingv1: schedulingv1.WithMetrics(inner.SchedulingV1(), metrics, clientType),
|
||||
schedulingv1alpha1: schedulingv1alpha1.WithMetrics(inner.SchedulingV1alpha1(), metrics, clientType),
|
||||
schedulingv1beta1: schedulingv1beta1.WithMetrics(inner.SchedulingV1beta1(), metrics, clientType),
|
||||
storagev1: storagev1.WithMetrics(inner.StorageV1(), metrics, clientType),
|
||||
storagev1alpha1: storagev1alpha1.WithMetrics(inner.StorageV1alpha1(), metrics, clientType),
|
||||
storagev1beta1: storagev1beta1.WithMetrics(inner.StorageV1beta1(), metrics, clientType),
|
||||
discovery: discovery.WithMetrics(inner.Discovery(), metrics.ClusteredClientQueryRecorder(m, "Discovery", clientType)),
|
||||
admissionregistrationv1: admissionregistrationv1.WithMetrics(inner.AdmissionregistrationV1(), m, clientType),
|
||||
admissionregistrationv1beta1: admissionregistrationv1beta1.WithMetrics(inner.AdmissionregistrationV1beta1(), m, clientType),
|
||||
appsv1: appsv1.WithMetrics(inner.AppsV1(), m, clientType),
|
||||
appsv1beta1: appsv1beta1.WithMetrics(inner.AppsV1beta1(), m, clientType),
|
||||
appsv1beta2: appsv1beta2.WithMetrics(inner.AppsV1beta2(), m, clientType),
|
||||
authenticationv1: authenticationv1.WithMetrics(inner.AuthenticationV1(), m, clientType),
|
||||
authenticationv1beta1: authenticationv1beta1.WithMetrics(inner.AuthenticationV1beta1(), m, clientType),
|
||||
authorizationv1: authorizationv1.WithMetrics(inner.AuthorizationV1(), m, clientType),
|
||||
authorizationv1beta1: authorizationv1beta1.WithMetrics(inner.AuthorizationV1beta1(), m, clientType),
|
||||
autoscalingv1: autoscalingv1.WithMetrics(inner.AutoscalingV1(), m, clientType),
|
||||
autoscalingv2: autoscalingv2.WithMetrics(inner.AutoscalingV2(), m, clientType),
|
||||
autoscalingv2beta1: autoscalingv2beta1.WithMetrics(inner.AutoscalingV2beta1(), m, clientType),
|
||||
autoscalingv2beta2: autoscalingv2beta2.WithMetrics(inner.AutoscalingV2beta2(), m, clientType),
|
||||
batchv1: batchv1.WithMetrics(inner.BatchV1(), m, clientType),
|
||||
batchv1beta1: batchv1beta1.WithMetrics(inner.BatchV1beta1(), m, clientType),
|
||||
certificatesv1: certificatesv1.WithMetrics(inner.CertificatesV1(), m, clientType),
|
||||
certificatesv1beta1: certificatesv1beta1.WithMetrics(inner.CertificatesV1beta1(), m, clientType),
|
||||
coordinationv1: coordinationv1.WithMetrics(inner.CoordinationV1(), m, clientType),
|
||||
coordinationv1beta1: coordinationv1beta1.WithMetrics(inner.CoordinationV1beta1(), m, clientType),
|
||||
corev1: corev1.WithMetrics(inner.CoreV1(), m, clientType),
|
||||
discoveryv1: discoveryv1.WithMetrics(inner.DiscoveryV1(), m, clientType),
|
||||
discoveryv1beta1: discoveryv1beta1.WithMetrics(inner.DiscoveryV1beta1(), m, clientType),
|
||||
eventsv1: eventsv1.WithMetrics(inner.EventsV1(), m, clientType),
|
||||
eventsv1beta1: eventsv1beta1.WithMetrics(inner.EventsV1beta1(), m, clientType),
|
||||
extensionsv1beta1: extensionsv1beta1.WithMetrics(inner.ExtensionsV1beta1(), m, clientType),
|
||||
flowcontrolv1alpha1: flowcontrolv1alpha1.WithMetrics(inner.FlowcontrolV1alpha1(), m, clientType),
|
||||
flowcontrolv1beta1: flowcontrolv1beta1.WithMetrics(inner.FlowcontrolV1beta1(), m, clientType),
|
||||
flowcontrolv1beta2: flowcontrolv1beta2.WithMetrics(inner.FlowcontrolV1beta2(), m, clientType),
|
||||
internalv1alpha1: internalv1alpha1.WithMetrics(inner.InternalV1alpha1(), m, clientType),
|
||||
networkingv1: networkingv1.WithMetrics(inner.NetworkingV1(), m, clientType),
|
||||
networkingv1alpha1: networkingv1alpha1.WithMetrics(inner.NetworkingV1alpha1(), m, clientType),
|
||||
networkingv1beta1: networkingv1beta1.WithMetrics(inner.NetworkingV1beta1(), m, clientType),
|
||||
nodev1: nodev1.WithMetrics(inner.NodeV1(), m, clientType),
|
||||
nodev1alpha1: nodev1alpha1.WithMetrics(inner.NodeV1alpha1(), m, clientType),
|
||||
nodev1beta1: nodev1beta1.WithMetrics(inner.NodeV1beta1(), m, clientType),
|
||||
policyv1: policyv1.WithMetrics(inner.PolicyV1(), m, clientType),
|
||||
policyv1beta1: policyv1beta1.WithMetrics(inner.PolicyV1beta1(), m, clientType),
|
||||
rbacv1: rbacv1.WithMetrics(inner.RbacV1(), m, clientType),
|
||||
rbacv1alpha1: rbacv1alpha1.WithMetrics(inner.RbacV1alpha1(), m, clientType),
|
||||
rbacv1beta1: rbacv1beta1.WithMetrics(inner.RbacV1beta1(), m, clientType),
|
||||
schedulingv1: schedulingv1.WithMetrics(inner.SchedulingV1(), m, clientType),
|
||||
schedulingv1alpha1: schedulingv1alpha1.WithMetrics(inner.SchedulingV1alpha1(), m, clientType),
|
||||
schedulingv1beta1: schedulingv1beta1.WithMetrics(inner.SchedulingV1beta1(), m, clientType),
|
||||
storagev1: storagev1.WithMetrics(inner.StorageV1(), m, clientType),
|
||||
storagev1alpha1: storagev1alpha1.WithMetrics(inner.StorageV1alpha1(), m, clientType),
|
||||
storagev1beta1: storagev1beta1.WithMetrics(inner.StorageV1beta1(), m, clientType),
|
||||
}
|
||||
}
|
||||
|
||||
func WrapWithTracing(inner k8s_io_client_go_kubernetes.Interface) k8s_io_client_go_kubernetes.Interface {
|
||||
return &clientset{
|
||||
inner: inner,
|
||||
discovery: discovery.WithTracing(inner.Discovery(), "Discovery", ""),
|
||||
admissionregistrationv1: admissionregistrationv1.WithTracing(inner.AdmissionregistrationV1(), "AdmissionregistrationV1"),
|
||||
admissionregistrationv1beta1: admissionregistrationv1beta1.WithTracing(inner.AdmissionregistrationV1beta1(), "AdmissionregistrationV1beta1"),
|
||||
appsv1: appsv1.WithTracing(inner.AppsV1(), "AppsV1"),
|
||||
|
|
|
@ -131,7 +131,20 @@ func (c *withTracing) Create(arg0 context.Context, arg1 *k8s_io_api_core_v1.Even
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) CreateWithEventNamespace(arg0 *k8s_io_api_core_v1.Event) (*k8s_io_api_core_v1.Event, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "CreateWithEventNamespace"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "CreateWithEventNamespace"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.CreateWithEventNamespace(arg0)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) Delete(arg0 context.Context, arg1 string, arg2 k8s_io_apimachinery_pkg_apis_meta_v1.DeleteOptions) error {
|
||||
|
@ -189,6 +202,15 @@ func (c *withTracing) Get(arg0 context.Context, arg1 string, arg2 k8s_io_apimach
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) GetFieldSelector(arg0 *string, arg1 *string, arg2 *string, arg3 *string) k8s_io_apimachinery_pkg_fields.Selector {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "GetFieldSelector"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "GetFieldSelector"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.GetFieldSelector(arg0, arg1, arg2, arg3)
|
||||
return ret0
|
||||
}
|
||||
|
@ -229,11 +251,37 @@ func (c *withTracing) Patch(arg0 context.Context, arg1 string, arg2 k8s_io_apima
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) PatchWithEventNamespace(arg0 *k8s_io_api_core_v1.Event, arg1 []uint8) (*k8s_io_api_core_v1.Event, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "PatchWithEventNamespace"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "PatchWithEventNamespace"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.PatchWithEventNamespace(arg0, arg1)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) Search(arg0 *k8s_io_apimachinery_pkg_runtime.Scheme, arg1 k8s_io_apimachinery_pkg_runtime.Object) (*k8s_io_api_core_v1.EventList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "Search"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "Search"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.Search(arg0, arg1)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) Update(arg0 context.Context, arg1 *k8s_io_api_core_v1.Event, arg2 k8s_io_apimachinery_pkg_apis_meta_v1.UpdateOptions) (*k8s_io_api_core_v1.Event, error) {
|
||||
|
@ -255,7 +303,20 @@ func (c *withTracing) Update(arg0 context.Context, arg1 *k8s_io_api_core_v1.Even
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) UpdateWithEventNamespace(arg0 *k8s_io_api_core_v1.Event) (*k8s_io_api_core_v1.Event, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "UpdateWithEventNamespace"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "UpdateWithEventNamespace"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.UpdateWithEventNamespace(arg0)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) Watch(arg0 context.Context, arg1 k8s_io_apimachinery_pkg_apis_meta_v1.ListOptions) (k8s_io_apimachinery_pkg_watch.Interface, error) {
|
||||
|
|
|
@ -292,6 +292,15 @@ func (c *withTracing) Get(arg0 context.Context, arg1 string, arg2 k8s_io_apimach
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) GetLogs(arg0 string, arg1 *k8s_io_api_core_v1.PodLogOptions) *k8s_io_client_go_rest.Request {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "GetLogs"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "GetLogs"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.GetLogs(arg0, arg1)
|
||||
return ret0
|
||||
}
|
||||
|
@ -332,6 +341,15 @@ func (c *withTracing) Patch(arg0 context.Context, arg1 string, arg2 k8s_io_apima
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ProxyGet(arg0 string, arg1 string, arg2 string, arg3 string, arg4 map[string]string) k8s_io_client_go_rest.ResponseWrapper {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ProxyGet"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ProxyGet"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.ProxyGet(arg0, arg1, arg2, arg3, arg4)
|
||||
return ret0
|
||||
}
|
||||
|
|
|
@ -208,6 +208,15 @@ func (c *withTracing) Patch(arg0 context.Context, arg1 string, arg2 k8s_io_apima
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ProxyGet(arg0 string, arg1 string, arg2 string, arg3 string, arg4 map[string]string) k8s_io_client_go_rest.ResponseWrapper {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ProxyGet"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ProxyGet"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.ProxyGet(arg0, arg1, arg2, arg3, arg4)
|
||||
return ret0
|
||||
}
|
||||
|
|
219
pkg/clients/kube/discovery/resource.generated.go
Normal file
219
pkg/clients/kube/discovery/resource.generated.go
Normal file
|
@ -0,0 +1,219 @@
|
|||
package resource
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
github_com_google_gnostic_openapiv2 "github.com/google/gnostic/openapiv2"
|
||||
"github.com/kyverno/kyverno/pkg/metrics"
|
||||
"github.com/kyverno/kyverno/pkg/tracing"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/codes"
|
||||
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
k8s_io_apimachinery_pkg_version "k8s.io/apimachinery/pkg/version"
|
||||
k8s_io_client_go_discovery "k8s.io/client-go/discovery"
|
||||
k8s_io_client_go_openapi "k8s.io/client-go/openapi"
|
||||
k8s_io_client_go_rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
func WithMetrics(inner k8s_io_client_go_discovery.DiscoveryInterface, recorder metrics.Recorder) k8s_io_client_go_discovery.DiscoveryInterface {
|
||||
return &withMetrics{inner, recorder}
|
||||
}
|
||||
|
||||
func WithTracing(inner k8s_io_client_go_discovery.DiscoveryInterface, client, kind string) k8s_io_client_go_discovery.DiscoveryInterface {
|
||||
return &withTracing{inner, client, kind}
|
||||
}
|
||||
|
||||
type withMetrics struct {
|
||||
inner k8s_io_client_go_discovery.DiscoveryInterface
|
||||
recorder metrics.Recorder
|
||||
}
|
||||
|
||||
func (c *withMetrics) OpenAPISchema() (*github_com_google_gnostic_openapiv2.Document, error) {
|
||||
defer c.recorder.Record("open_api_schema")
|
||||
return c.inner.OpenAPISchema()
|
||||
}
|
||||
func (c *withMetrics) OpenAPIV3() k8s_io_client_go_openapi.Client {
|
||||
defer c.recorder.Record("open_apiv3")
|
||||
return c.inner.OpenAPIV3()
|
||||
}
|
||||
func (c *withMetrics) RESTClient() k8s_io_client_go_rest.Interface {
|
||||
defer c.recorder.Record("rest_client")
|
||||
return c.inner.RESTClient()
|
||||
}
|
||||
func (c *withMetrics) ServerGroups() (*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroupList, error) {
|
||||
defer c.recorder.Record("server_groups")
|
||||
return c.inner.ServerGroups()
|
||||
}
|
||||
func (c *withMetrics) ServerGroupsAndResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroup, []*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_groups_and_resources")
|
||||
return c.inner.ServerGroupsAndResources()
|
||||
}
|
||||
func (c *withMetrics) ServerPreferredNamespacedResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_preferred_namespaced_resources")
|
||||
return c.inner.ServerPreferredNamespacedResources()
|
||||
}
|
||||
func (c *withMetrics) ServerPreferredResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_preferred_resources")
|
||||
return c.inner.ServerPreferredResources()
|
||||
}
|
||||
func (c *withMetrics) ServerResourcesForGroupVersion(arg0 string) (*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_resources_for_group_version")
|
||||
return c.inner.ServerResourcesForGroupVersion(arg0)
|
||||
}
|
||||
func (c *withMetrics) ServerVersion() (*k8s_io_apimachinery_pkg_version.Info, error) {
|
||||
defer c.recorder.Record("server_version")
|
||||
return c.inner.ServerVersion()
|
||||
}
|
||||
|
||||
type withTracing struct {
|
||||
inner k8s_io_client_go_discovery.DiscoveryInterface
|
||||
client string
|
||||
kind string
|
||||
}
|
||||
|
||||
func (c *withTracing) OpenAPISchema() (*github_com_google_gnostic_openapiv2.Document, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "OpenAPISchema"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "OpenAPISchema"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.OpenAPISchema()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) OpenAPIV3() k8s_io_client_go_openapi.Client {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "OpenAPIV3"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "OpenAPIV3"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.OpenAPIV3()
|
||||
return ret0
|
||||
}
|
||||
func (c *withTracing) RESTClient() k8s_io_client_go_rest.Interface {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "RESTClient"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "RESTClient"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.RESTClient()
|
||||
return ret0
|
||||
}
|
||||
func (c *withTracing) ServerGroups() (*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroupList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerGroups"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerGroups"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerGroups()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerGroupsAndResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroup, []*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerGroupsAndResources"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerGroupsAndResources"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1, ret2 := c.inner.ServerGroupsAndResources()
|
||||
if ret2 != nil {
|
||||
span.RecordError(ret2)
|
||||
span.SetStatus(codes.Error, ret2.Error())
|
||||
}
|
||||
return ret0, ret1, ret2
|
||||
}
|
||||
func (c *withTracing) ServerPreferredNamespacedResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerPreferredNamespacedResources"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerPreferredNamespacedResources"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerPreferredNamespacedResources()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerPreferredResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerPreferredResources"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerPreferredResources"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerPreferredResources()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerResourcesForGroupVersion(arg0 string) (*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerResourcesForGroupVersion"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerResourcesForGroupVersion"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerResourcesForGroupVersion(arg0)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerVersion() (*k8s_io_apimachinery_pkg_version.Info, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerVersion"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerVersion"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerVersion()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
|
@ -121,7 +121,20 @@ func (c *withTracing) Create(arg0 context.Context, arg1 *k8s_io_api_events_v1bet
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) CreateWithEventNamespace(arg0 *k8s_io_api_events_v1beta1.Event) (*k8s_io_api_events_v1beta1.Event, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "CreateWithEventNamespace"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "CreateWithEventNamespace"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.CreateWithEventNamespace(arg0)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) Delete(arg0 context.Context, arg1 string, arg2 k8s_io_apimachinery_pkg_apis_meta_v1.DeleteOptions) error {
|
||||
|
@ -215,7 +228,20 @@ func (c *withTracing) Patch(arg0 context.Context, arg1 string, arg2 k8s_io_apima
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) PatchWithEventNamespace(arg0 *k8s_io_api_events_v1beta1.Event, arg1 []uint8) (*k8s_io_api_events_v1beta1.Event, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "PatchWithEventNamespace"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "PatchWithEventNamespace"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.PatchWithEventNamespace(arg0, arg1)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) Update(arg0 context.Context, arg1 *k8s_io_api_events_v1beta1.Event, arg2 k8s_io_apimachinery_pkg_apis_meta_v1.UpdateOptions) (*k8s_io_api_events_v1beta1.Event, error) {
|
||||
|
@ -237,7 +263,20 @@ func (c *withTracing) Update(arg0 context.Context, arg1 *k8s_io_api_events_v1bet
|
|||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) UpdateWithEventNamespace(arg0 *k8s_io_api_events_v1beta1.Event) (*k8s_io_api_events_v1beta1.Event, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "UpdateWithEventNamespace"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "UpdateWithEventNamespace"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.UpdateWithEventNamespace(arg0)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) Watch(arg0 context.Context, arg1 k8s_io_apimachinery_pkg_apis_meta_v1.ListOptions) (k8s_io_apimachinery_pkg_watch.Interface, error) {
|
||||
|
|
|
@ -7,17 +7,18 @@ import (
|
|||
github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_kyverno_v1alpha2 "github.com/kyverno/kyverno/pkg/client/clientset/versioned/typed/kyverno/v1alpha2"
|
||||
github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_kyverno_v1beta1 "github.com/kyverno/kyverno/pkg/client/clientset/versioned/typed/kyverno/v1beta1"
|
||||
github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_policyreport_v1alpha2 "github.com/kyverno/kyverno/pkg/client/clientset/versioned/typed/policyreport/v1alpha2"
|
||||
discovery "github.com/kyverno/kyverno/pkg/clients/kyverno/discovery"
|
||||
kyvernov1 "github.com/kyverno/kyverno/pkg/clients/kyverno/kyvernov1"
|
||||
kyvernov1alpha1 "github.com/kyverno/kyverno/pkg/clients/kyverno/kyvernov1alpha1"
|
||||
kyvernov1alpha2 "github.com/kyverno/kyverno/pkg/clients/kyverno/kyvernov1alpha2"
|
||||
kyvernov1beta1 "github.com/kyverno/kyverno/pkg/clients/kyverno/kyvernov1beta1"
|
||||
wgpolicyk8sv1alpha2 "github.com/kyverno/kyverno/pkg/clients/kyverno/wgpolicyk8sv1alpha2"
|
||||
"github.com/kyverno/kyverno/pkg/metrics"
|
||||
"k8s.io/client-go/discovery"
|
||||
k8s_io_client_go_discovery "k8s.io/client-go/discovery"
|
||||
)
|
||||
|
||||
type clientset struct {
|
||||
inner github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface
|
||||
discovery k8s_io_client_go_discovery.DiscoveryInterface
|
||||
kyvernov1 github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_kyverno_v1.KyvernoV1Interface
|
||||
kyvernov1alpha1 github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_kyverno_v1alpha1.KyvernoV1alpha1Interface
|
||||
kyvernov1alpha2 github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_kyverno_v1alpha2.KyvernoV1alpha2Interface
|
||||
|
@ -25,8 +26,8 @@ type clientset struct {
|
|||
wgpolicyk8sv1alpha2 github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_policyreport_v1alpha2.Wgpolicyk8sV1alpha2Interface
|
||||
}
|
||||
|
||||
func (c *clientset) Discovery() discovery.DiscoveryInterface {
|
||||
return c.inner.Discovery()
|
||||
func (c *clientset) Discovery() k8s_io_client_go_discovery.DiscoveryInterface {
|
||||
return c.discovery
|
||||
}
|
||||
func (c *clientset) KyvernoV1() github_com_kyverno_kyverno_pkg_client_clientset_versioned_typed_kyverno_v1.KyvernoV1Interface {
|
||||
return c.kyvernov1
|
||||
|
@ -44,20 +45,20 @@ func (c *clientset) Wgpolicyk8sV1alpha2() github_com_kyverno_kyverno_pkg_client_
|
|||
return c.wgpolicyk8sv1alpha2
|
||||
}
|
||||
|
||||
func WrapWithMetrics(inner github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface, metrics metrics.MetricsConfigManager, clientType metrics.ClientType) github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface {
|
||||
func WrapWithMetrics(inner github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface, m metrics.MetricsConfigManager, clientType metrics.ClientType) github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface {
|
||||
return &clientset{
|
||||
inner: inner,
|
||||
kyvernov1: kyvernov1.WithMetrics(inner.KyvernoV1(), metrics, clientType),
|
||||
kyvernov1alpha1: kyvernov1alpha1.WithMetrics(inner.KyvernoV1alpha1(), metrics, clientType),
|
||||
kyvernov1alpha2: kyvernov1alpha2.WithMetrics(inner.KyvernoV1alpha2(), metrics, clientType),
|
||||
kyvernov1beta1: kyvernov1beta1.WithMetrics(inner.KyvernoV1beta1(), metrics, clientType),
|
||||
wgpolicyk8sv1alpha2: wgpolicyk8sv1alpha2.WithMetrics(inner.Wgpolicyk8sV1alpha2(), metrics, clientType),
|
||||
discovery: discovery.WithMetrics(inner.Discovery(), metrics.ClusteredClientQueryRecorder(m, "Discovery", clientType)),
|
||||
kyvernov1: kyvernov1.WithMetrics(inner.KyvernoV1(), m, clientType),
|
||||
kyvernov1alpha1: kyvernov1alpha1.WithMetrics(inner.KyvernoV1alpha1(), m, clientType),
|
||||
kyvernov1alpha2: kyvernov1alpha2.WithMetrics(inner.KyvernoV1alpha2(), m, clientType),
|
||||
kyvernov1beta1: kyvernov1beta1.WithMetrics(inner.KyvernoV1beta1(), m, clientType),
|
||||
wgpolicyk8sv1alpha2: wgpolicyk8sv1alpha2.WithMetrics(inner.Wgpolicyk8sV1alpha2(), m, clientType),
|
||||
}
|
||||
}
|
||||
|
||||
func WrapWithTracing(inner github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface) github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface {
|
||||
return &clientset{
|
||||
inner: inner,
|
||||
discovery: discovery.WithTracing(inner.Discovery(), "Discovery", ""),
|
||||
kyvernov1: kyvernov1.WithTracing(inner.KyvernoV1(), "KyvernoV1"),
|
||||
kyvernov1alpha1: kyvernov1alpha1.WithTracing(inner.KyvernoV1alpha1(), "KyvernoV1alpha1"),
|
||||
kyvernov1alpha2: kyvernov1alpha2.WithTracing(inner.KyvernoV1alpha2(), "KyvernoV1alpha2"),
|
||||
|
|
219
pkg/clients/kyverno/discovery/resource.generated.go
Normal file
219
pkg/clients/kyverno/discovery/resource.generated.go
Normal file
|
@ -0,0 +1,219 @@
|
|||
package resource
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
github_com_google_gnostic_openapiv2 "github.com/google/gnostic/openapiv2"
|
||||
"github.com/kyverno/kyverno/pkg/metrics"
|
||||
"github.com/kyverno/kyverno/pkg/tracing"
|
||||
"go.opentelemetry.io/otel/attribute"
|
||||
"go.opentelemetry.io/otel/codes"
|
||||
k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
k8s_io_apimachinery_pkg_version "k8s.io/apimachinery/pkg/version"
|
||||
k8s_io_client_go_discovery "k8s.io/client-go/discovery"
|
||||
k8s_io_client_go_openapi "k8s.io/client-go/openapi"
|
||||
k8s_io_client_go_rest "k8s.io/client-go/rest"
|
||||
)
|
||||
|
||||
func WithMetrics(inner k8s_io_client_go_discovery.DiscoveryInterface, recorder metrics.Recorder) k8s_io_client_go_discovery.DiscoveryInterface {
|
||||
return &withMetrics{inner, recorder}
|
||||
}
|
||||
|
||||
func WithTracing(inner k8s_io_client_go_discovery.DiscoveryInterface, client, kind string) k8s_io_client_go_discovery.DiscoveryInterface {
|
||||
return &withTracing{inner, client, kind}
|
||||
}
|
||||
|
||||
type withMetrics struct {
|
||||
inner k8s_io_client_go_discovery.DiscoveryInterface
|
||||
recorder metrics.Recorder
|
||||
}
|
||||
|
||||
func (c *withMetrics) OpenAPISchema() (*github_com_google_gnostic_openapiv2.Document, error) {
|
||||
defer c.recorder.Record("open_api_schema")
|
||||
return c.inner.OpenAPISchema()
|
||||
}
|
||||
func (c *withMetrics) OpenAPIV3() k8s_io_client_go_openapi.Client {
|
||||
defer c.recorder.Record("open_apiv3")
|
||||
return c.inner.OpenAPIV3()
|
||||
}
|
||||
func (c *withMetrics) RESTClient() k8s_io_client_go_rest.Interface {
|
||||
defer c.recorder.Record("rest_client")
|
||||
return c.inner.RESTClient()
|
||||
}
|
||||
func (c *withMetrics) ServerGroups() (*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroupList, error) {
|
||||
defer c.recorder.Record("server_groups")
|
||||
return c.inner.ServerGroups()
|
||||
}
|
||||
func (c *withMetrics) ServerGroupsAndResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroup, []*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_groups_and_resources")
|
||||
return c.inner.ServerGroupsAndResources()
|
||||
}
|
||||
func (c *withMetrics) ServerPreferredNamespacedResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_preferred_namespaced_resources")
|
||||
return c.inner.ServerPreferredNamespacedResources()
|
||||
}
|
||||
func (c *withMetrics) ServerPreferredResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_preferred_resources")
|
||||
return c.inner.ServerPreferredResources()
|
||||
}
|
||||
func (c *withMetrics) ServerResourcesForGroupVersion(arg0 string) (*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
defer c.recorder.Record("server_resources_for_group_version")
|
||||
return c.inner.ServerResourcesForGroupVersion(arg0)
|
||||
}
|
||||
func (c *withMetrics) ServerVersion() (*k8s_io_apimachinery_pkg_version.Info, error) {
|
||||
defer c.recorder.Record("server_version")
|
||||
return c.inner.ServerVersion()
|
||||
}
|
||||
|
||||
type withTracing struct {
|
||||
inner k8s_io_client_go_discovery.DiscoveryInterface
|
||||
client string
|
||||
kind string
|
||||
}
|
||||
|
||||
func (c *withTracing) OpenAPISchema() (*github_com_google_gnostic_openapiv2.Document, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "OpenAPISchema"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "OpenAPISchema"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.OpenAPISchema()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) OpenAPIV3() k8s_io_client_go_openapi.Client {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "OpenAPIV3"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "OpenAPIV3"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.OpenAPIV3()
|
||||
return ret0
|
||||
}
|
||||
func (c *withTracing) RESTClient() k8s_io_client_go_rest.Interface {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "RESTClient"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "RESTClient"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0 := c.inner.RESTClient()
|
||||
return ret0
|
||||
}
|
||||
func (c *withTracing) ServerGroups() (*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroupList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerGroups"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerGroups"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerGroups()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerGroupsAndResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIGroup, []*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerGroupsAndResources"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerGroupsAndResources"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1, ret2 := c.inner.ServerGroupsAndResources()
|
||||
if ret2 != nil {
|
||||
span.RecordError(ret2)
|
||||
span.SetStatus(codes.Error, ret2.Error())
|
||||
}
|
||||
return ret0, ret1, ret2
|
||||
}
|
||||
func (c *withTracing) ServerPreferredNamespacedResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerPreferredNamespacedResources"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerPreferredNamespacedResources"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerPreferredNamespacedResources()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerPreferredResources() ([]*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerPreferredResources"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerPreferredResources"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerPreferredResources()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerResourcesForGroupVersion(arg0 string) (*k8s_io_apimachinery_pkg_apis_meta_v1.APIResourceList, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerResourcesForGroupVersion"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerResourcesForGroupVersion"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerResourcesForGroupVersion(arg0)
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
||||
func (c *withTracing) ServerVersion() (*k8s_io_apimachinery_pkg_version.Info, error) {
|
||||
_, span := tracing.StartSpan(
|
||||
context.TODO(),
|
||||
"",
|
||||
fmt.Sprintf("KUBE %s/%s/%s", c.client, c.kind, "ServerVersion"),
|
||||
attribute.String("client", c.client),
|
||||
attribute.String("kind", c.kind),
|
||||
attribute.String("operation", "ServerVersion"),
|
||||
)
|
||||
defer span.End()
|
||||
ret0, ret1 := c.inner.ServerVersion()
|
||||
if ret1 != nil {
|
||||
span.RecordError(ret1)
|
||||
span.SetStatus(codes.Error, ret1.Error())
|
||||
}
|
||||
return ret0, ret1
|
||||
}
|
Loading…
Add table
Reference in a new issue