mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-15 12:17:56 +00:00
feat: improve instrumented clients (#7006)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
f930c8eb48
commit
8d52c1366b
8 changed files with 32 additions and 23 deletions
|
@ -5,7 +5,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
|
||||||
apiserverclient "github.com/kyverno/kyverno/pkg/clients/apiserver"
|
apiserverclient "github.com/kyverno/kyverno/pkg/clients/apiserver"
|
||||||
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
||||||
dynamicclient "github.com/kyverno/kyverno/pkg/clients/dynamic"
|
dynamicclient "github.com/kyverno/kyverno/pkg/clients/dynamic"
|
||||||
|
@ -16,10 +15,6 @@ import (
|
||||||
"github.com/kyverno/kyverno/pkg/engine/jmespath"
|
"github.com/kyverno/kyverno/pkg/engine/jmespath"
|
||||||
"github.com/kyverno/kyverno/pkg/metrics"
|
"github.com/kyverno/kyverno/pkg/metrics"
|
||||||
"github.com/kyverno/kyverno/pkg/registryclient"
|
"github.com/kyverno/kyverno/pkg/registryclient"
|
||||||
apiserver "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
|
|
||||||
"k8s.io/client-go/dynamic"
|
|
||||||
"k8s.io/client-go/kubernetes"
|
|
||||||
"k8s.io/client-go/metadata"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func shutdown(logger logr.Logger, sdowns ...context.CancelFunc) context.CancelFunc {
|
func shutdown(logger logr.Logger, sdowns ...context.CancelFunc) context.CancelFunc {
|
||||||
|
@ -39,13 +34,13 @@ type SetupResult struct {
|
||||||
MetricsConfiguration config.MetricsConfiguration
|
MetricsConfiguration config.MetricsConfiguration
|
||||||
MetricsManager metrics.MetricsConfigManager
|
MetricsManager metrics.MetricsConfigManager
|
||||||
Jp jmespath.Interface
|
Jp jmespath.Interface
|
||||||
KubeClient kubernetes.Interface
|
KubeClient kubeclient.UpstreamInterface
|
||||||
LeaderElectionClient kubernetes.Interface
|
LeaderElectionClient kubeclient.UpstreamInterface
|
||||||
RegistryClient registryclient.Client
|
RegistryClient registryclient.Client
|
||||||
KyvernoClient versioned.Interface
|
KyvernoClient kyvernoclient.UpstreamInterface
|
||||||
DynamicClient dynamic.Interface
|
DynamicClient dynamicclient.UpstreamInterface
|
||||||
ApiServerClient apiserver.Interface
|
ApiServerClient apiserverclient.UpstreamInterface
|
||||||
MetadataClient metadata.Interface
|
MetadataClient metadataclient.UpstreamInterface
|
||||||
KyvernoDynamicClient dclient.Interface
|
KyvernoDynamicClient dclient.Interface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,19 +61,19 @@ func Setup(config Configuration, name string, skipResourceFilters bool) (context
|
||||||
if config.UsesRegistryClient() {
|
if config.UsesRegistryClient() {
|
||||||
registryClient = setupRegistryClient(ctx, logger, client)
|
registryClient = setupRegistryClient(ctx, logger, client)
|
||||||
}
|
}
|
||||||
var leaderElectionClient kubernetes.Interface
|
var leaderElectionClient kubeclient.UpstreamInterface
|
||||||
if config.UsesLeaderElection() {
|
if config.UsesLeaderElection() {
|
||||||
leaderElectionClient = createKubernetesClient(logger, kubeclient.WithMetrics(metricsManager, metrics.KubeClient), kubeclient.WithTracing())
|
leaderElectionClient = createKubernetesClient(logger, kubeclient.WithMetrics(metricsManager, metrics.KubeClient), kubeclient.WithTracing())
|
||||||
}
|
}
|
||||||
var kyvernoClient versioned.Interface
|
var kyvernoClient kyvernoclient.UpstreamInterface
|
||||||
if config.UsesKyvernoClient() {
|
if config.UsesKyvernoClient() {
|
||||||
kyvernoClient = createKyvernoClient(logger, kyvernoclient.WithMetrics(metricsManager, metrics.KyvernoClient), kyvernoclient.WithTracing())
|
kyvernoClient = createKyvernoClient(logger, kyvernoclient.WithMetrics(metricsManager, metrics.KyvernoClient), kyvernoclient.WithTracing())
|
||||||
}
|
}
|
||||||
var dynamicClient dynamic.Interface
|
var dynamicClient dynamicclient.UpstreamInterface
|
||||||
if config.UsesDynamicClient() {
|
if config.UsesDynamicClient() {
|
||||||
dynamicClient = createDynamicClient(logger, dynamicclient.WithMetrics(metricsManager, metrics.DynamicClient), dynamicclient.WithTracing())
|
dynamicClient = createDynamicClient(logger, dynamicclient.WithMetrics(metricsManager, metrics.DynamicClient), dynamicclient.WithTracing())
|
||||||
}
|
}
|
||||||
var apiServerClient apiserver.Interface
|
var apiServerClient apiserverclient.UpstreamInterface
|
||||||
if config.UsesApiServerClient() {
|
if config.UsesApiServerClient() {
|
||||||
apiServerClient = createApiServerClient(logger, apiserverclient.WithMetrics(metricsManager, metrics.ApiServerClient), apiserverclient.WithTracing())
|
apiServerClient = createApiServerClient(logger, apiserverclient.WithMetrics(metricsManager, metrics.ApiServerClient), apiserverclient.WithTracing())
|
||||||
}
|
}
|
||||||
|
@ -86,7 +81,7 @@ func Setup(config Configuration, name string, skipResourceFilters bool) (context
|
||||||
if config.UsesKyvernoDynamicClient() {
|
if config.UsesKyvernoDynamicClient() {
|
||||||
dClient = createKyvernoDynamicClient(logger, ctx, dynamicClient, client, 15*time.Minute)
|
dClient = createKyvernoDynamicClient(logger, ctx, dynamicClient, client, 15*time.Minute)
|
||||||
}
|
}
|
||||||
var metadataClient metadata.Interface
|
var metadataClient metadataclient.UpstreamInterface
|
||||||
if config.UsesMetadataClient() {
|
if config.UsesMetadataClient() {
|
||||||
metadataClient = createMetadataClient(logger, metadataclient.WithMetrics(metricsManager, metrics.MetadataClient), metadataclient.WithTracing())
|
metadataClient = createMetadataClient(logger, metadataclient.WithMetrics(metricsManager, metrics.MetadataClient), metadataclient.WithTracing())
|
||||||
}
|
}
|
||||||
|
|
|
@ -370,8 +370,10 @@ import (
|
||||||
{{- end }}
|
{{- end }}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type UpstreamInterface = {{ GoType .Target.Type }}
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
{{ GoType .Target.Type }}
|
UpstreamInterface
|
||||||
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
||||||
WithTracing() Interface
|
WithTracing() Interface
|
||||||
WithLogging(logr.Logger) Interface
|
WithLogging(logr.Logger) Interface
|
||||||
|
|
|
@ -9,8 +9,10 @@ import (
|
||||||
k8s_io_kube_aggregator_pkg_client_clientset_generated_clientset "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
|
k8s_io_kube_aggregator_pkg_client_clientset_generated_clientset "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type UpstreamInterface = k8s_io_kube_aggregator_pkg_client_clientset_generated_clientset.Interface
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
k8s_io_kube_aggregator_pkg_client_clientset_generated_clientset.Interface
|
UpstreamInterface
|
||||||
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
||||||
WithTracing() Interface
|
WithTracing() Interface
|
||||||
WithLogging(logr.Logger) Interface
|
WithLogging(logr.Logger) Interface
|
||||||
|
|
|
@ -9,8 +9,10 @@ import (
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type UpstreamInterface = k8s_io_apiextensions_apiserver_pkg_client_clientset_clientset.Interface
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
k8s_io_apiextensions_apiserver_pkg_client_clientset_clientset.Interface
|
UpstreamInterface
|
||||||
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
||||||
WithTracing() Interface
|
WithTracing() Interface
|
||||||
WithLogging(logr.Logger) Interface
|
WithLogging(logr.Logger) Interface
|
||||||
|
|
|
@ -9,8 +9,10 @@ import (
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type UpstreamInterface = k8s_io_client_go_dynamic.Interface
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
k8s_io_client_go_dynamic.Interface
|
UpstreamInterface
|
||||||
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
||||||
WithTracing() Interface
|
WithTracing() Interface
|
||||||
WithLogging(logr.Logger) Interface
|
WithLogging(logr.Logger) Interface
|
||||||
|
|
|
@ -9,8 +9,10 @@ import (
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type UpstreamInterface = k8s_io_client_go_kubernetes.Interface
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
k8s_io_client_go_kubernetes.Interface
|
UpstreamInterface
|
||||||
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
||||||
WithTracing() Interface
|
WithTracing() Interface
|
||||||
WithLogging(logr.Logger) Interface
|
WithLogging(logr.Logger) Interface
|
||||||
|
|
|
@ -9,8 +9,10 @@ import (
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type UpstreamInterface = github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
github_com_kyverno_kyverno_pkg_client_clientset_versioned.Interface
|
UpstreamInterface
|
||||||
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
||||||
WithTracing() Interface
|
WithTracing() Interface
|
||||||
WithLogging(logr.Logger) Interface
|
WithLogging(logr.Logger) Interface
|
||||||
|
|
|
@ -9,8 +9,10 @@ import (
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type UpstreamInterface = k8s_io_client_go_metadata.Interface
|
||||||
|
|
||||||
type Interface interface {
|
type Interface interface {
|
||||||
k8s_io_client_go_metadata.Interface
|
UpstreamInterface
|
||||||
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
WithMetrics(metrics.MetricsConfigManager, metrics.ClientType) Interface
|
||||||
WithTracing() Interface
|
WithTracing() Interface
|
||||||
WithLogging(logr.Logger) Interface
|
WithLogging(logr.Logger) Interface
|
||||||
|
|
Loading…
Add table
Reference in a new issue