Adopt breaking change made by controller-runtime#2407, moving metrics

options.
Adopt breaking change made by controller-runtime#2421, cache filtering
Fix deprecation in customresourceinterpreter webhook example

Signed-off-by: RainbowMango <qdurenhongcai@gmail.com>
This commit is contained in:
RainbowMango 2023-12-29 10:27:43 +08:00
parent 7467b62e81
commit 5a3fa76b27
5 changed files with 41 additions and 16 deletions

View File

@ -38,6 +38,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/config"
"sigs.k8s.io/controller-runtime/pkg/healthz"
crtlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"github.com/karmada-io/karmada/cmd/agent/app/options"
clusterv1alpha1 "github.com/karmada-io/karmada/pkg/apis/cluster/v1alpha1"
@ -196,7 +197,7 @@ func run(ctx context.Context, opts *options.Options) error {
controllerManager, err := controllerruntime.NewManager(controlPlaneRestConfig, controllerruntime.Options{
Scheme: gclient.NewSchema(),
Cache: cache.Options{SyncPeriod: &opts.ResyncPeriod.Duration, Namespaces: []string{executionSpace}},
Cache: cache.Options{SyncPeriod: &opts.ResyncPeriod.Duration, DefaultNamespaces: map[string]cache.Config{executionSpace: {}}},
LeaderElection: opts.LeaderElection.LeaderElect,
LeaderElectionID: fmt.Sprintf("karmada-agent-%s", opts.ClusterName),
LeaderElectionNamespace: opts.LeaderElection.ResourceNamespace,
@ -206,7 +207,7 @@ func run(ctx context.Context, opts *options.Options) error {
RetryPeriod: &opts.LeaderElection.RetryPeriod.Duration,
HealthProbeBindAddress: net.JoinHostPort(opts.BindAddress, strconv.Itoa(opts.SecurePort)),
LivenessEndpointName: "/healthz",
MetricsBindAddress: opts.MetricsBindAddress,
Metrics: metricsserver.Options{BindAddress: opts.MetricsBindAddress},
MapperProvider: restmapper.MapperProvider,
BaseContext: func() context.Context {
return ctx

View File

@ -44,6 +44,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/event"
"sigs.k8s.io/controller-runtime/pkg/healthz"
crtlmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/predicate"
"github.com/karmada-io/karmada/cmd/controller-manager/app/options"
@ -155,7 +156,7 @@ func Run(ctx context.Context, opts *options.Options) error {
LeaderElectionResourceLock: opts.LeaderElection.ResourceLock,
HealthProbeBindAddress: net.JoinHostPort(opts.BindAddress, strconv.Itoa(opts.SecurePort)),
LivenessEndpointName: "/healthz",
MetricsBindAddress: opts.MetricsBindAddress,
Metrics: metricsserver.Options{BindAddress: opts.MetricsBindAddress},
MapperProvider: restmapper.MapperProvider,
BaseContext: func() context.Context {
return ctx

View File

@ -18,6 +18,7 @@ package app
import (
"context"
"crypto/tls"
"flag"
"fmt"
"net/http"
@ -28,6 +29,7 @@ import (
"k8s.io/klog/v2"
controllerruntime "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/healthz"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
"sigs.k8s.io/controller-runtime/pkg/webhook/conversion"
@ -117,15 +119,31 @@ func Run(ctx context.Context, opts *options.Options) error {
Logger: klog.Background(),
Scheme: gclient.NewSchema(),
WebhookServer: webhook.NewServer(webhook.Options{
Host: opts.BindAddress,
Port: opts.SecurePort,
CertDir: opts.CertDir,
CertName: opts.CertName,
KeyName: opts.KeyName,
TLSMinVersion: opts.TLSMinVersion,
Host: opts.BindAddress,
Port: opts.SecurePort,
CertDir: opts.CertDir,
CertName: opts.CertName,
KeyName: opts.KeyName,
TLSOpts: []func(*tls.Config){
func(config *tls.Config) {
// Just transform the valid options as opts.TLSMinVersion
// can only accept "1.0", "1.1", "1.2", "1.3" and has default
// value,
switch opts.TLSMinVersion {
case "1.0":
config.MinVersion = tls.VersionTLS10
case "1.1":
config.MinVersion = tls.VersionTLS11
case "1.2":
config.MinVersion = tls.VersionTLS12
case "1.3":
config.MinVersion = tls.VersionTLS13
}
},
},
}),
LeaderElection: false,
MetricsBindAddress: opts.MetricsBindAddress,
Metrics: metricsserver.Options{BindAddress: opts.MetricsBindAddress},
HealthProbeBindAddress: opts.HealthProbeBindAddress,
})
if err != nil {

View File

@ -29,6 +29,7 @@ import (
"k8s.io/klog/v2"
controllerruntime "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/healthz"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"github.com/karmada-io/karmada/examples/customresourceinterpreter/webhook/app/options"
"github.com/karmada-io/karmada/pkg/sharedcli"
@ -85,10 +86,12 @@ func Run(ctx context.Context, opts *options.Options) error {
}
hookManager, err := controllerruntime.NewManager(config, controllerruntime.Options{
Logger: klog.Background(),
Host: opts.BindAddress,
Port: opts.SecurePort,
CertDir: opts.CertDir,
Logger: klog.Background(),
WebhookServer: webhook.NewServer(webhook.Options{
Host: opts.BindAddress,
Port: opts.SecurePort,
CertDir: opts.CertDir,
}),
LeaderElection: false,
})
if err != nil {

View File

@ -31,8 +31,10 @@ import (
"k8s.io/component-base/term"
"k8s.io/klog/v2"
controllerruntime "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/cache"
"sigs.k8s.io/controller-runtime/pkg/config"
"sigs.k8s.io/controller-runtime/pkg/healthz"
metricsserver "sigs.k8s.io/controller-runtime/pkg/metrics/server"
"github.com/karmada-io/karmada/operator/cmd/operator/app/options"
operatorv1alpha1 "github.com/karmada-io/karmada/operator/pkg/apis/operator/v1alpha1"
@ -164,7 +166,7 @@ func createControllerManager(ctx context.Context, o *options.Options) (controlle
BaseContext: func() context.Context {
return ctx
},
SyncPeriod: &o.ResyncPeriod.Duration,
Cache: cache.Options{SyncPeriod: &o.ResyncPeriod.Duration},
LeaderElection: o.LeaderElection.LeaderElect,
LeaderElectionID: o.LeaderElection.ResourceName,
LeaderElectionNamespace: o.LeaderElection.ResourceNamespace,
@ -174,7 +176,7 @@ func createControllerManager(ctx context.Context, o *options.Options) (controlle
LeaderElectionResourceLock: o.LeaderElection.ResourceLock,
HealthProbeBindAddress: net.JoinHostPort(o.BindAddress, strconv.Itoa(o.SecurePort)),
LivenessEndpointName: "/healthz",
MetricsBindAddress: o.MetricsBindAddress,
Metrics: metricsserver.Options{BindAddress: o.MetricsBindAddress},
Controller: config.Controller{
GroupKindConcurrency: map[string]int{
operatorv1alpha1.SchemeGroupVersion.WithKind("Karmada").GroupKind().String(): o.ConcurrentKarmadaSyncs,