Bump sigs.k8s.io/controller-runtime to v0.14.4 (#5507)
* Bump sigs.k8s.io/controller-runtime to v0.14.4 * Update gofmt
This commit is contained in:
41
vendor/sigs.k8s.io/kubefed/pkg/controller/util/cluster_util.go
generated
vendored
41
vendor/sigs.k8s.io/kubefed/pkg/controller/util/cluster_util.go
generated
vendored
@@ -124,26 +124,31 @@ func CustomizeTLSTransport(fedCluster *fedv1b1.KubeFedCluster, clientConfig *res
|
||||
return errors.Errorf("Cluster %s transport error: %s", fedCluster.Name, err)
|
||||
}
|
||||
|
||||
err = CustomizeCertificateValidation(fedCluster, transportConfig)
|
||||
if err != nil {
|
||||
return errors.Errorf("Cluster %s custom certificate validation error: %s", fedCluster.Name, err)
|
||||
if transportConfig != nil {
|
||||
err = CustomizeCertificateValidation(fedCluster, transportConfig)
|
||||
if err != nil {
|
||||
return errors.Errorf("Cluster %s custom certificate validation error: %s", fedCluster.Name, err)
|
||||
}
|
||||
|
||||
// using the same defaults as http.DefaultTransport
|
||||
clientConfig.Transport = &http.Transport{
|
||||
Proxy: http.ProxyFromEnvironment,
|
||||
DialContext: (&net.Dialer{
|
||||
Timeout: 30 * time.Second,
|
||||
KeepAlive: 30 * time.Second,
|
||||
DualStack: true,
|
||||
}).DialContext,
|
||||
MaxIdleConns: 100,
|
||||
IdleConnTimeout: 90 * time.Second,
|
||||
TLSHandshakeTimeout: 10 * time.Second,
|
||||
ExpectContinueTimeout: 1 * time.Second,
|
||||
TLSClientConfig: transportConfig,
|
||||
}
|
||||
clientConfig.TLSClientConfig = restclient.TLSClientConfig{}
|
||||
} else {
|
||||
clientConfig.Insecure = true
|
||||
}
|
||||
|
||||
// using the same defaults as http.DefaultTransport
|
||||
clientConfig.Transport = &http.Transport{
|
||||
Proxy: http.ProxyFromEnvironment,
|
||||
DialContext: (&net.Dialer{
|
||||
Timeout: 30 * time.Second,
|
||||
KeepAlive: 30 * time.Second,
|
||||
DualStack: true,
|
||||
}).DialContext,
|
||||
MaxIdleConns: 100,
|
||||
IdleConnTimeout: 90 * time.Second,
|
||||
TLSHandshakeTimeout: 10 * time.Second,
|
||||
ExpectContinueTimeout: 1 * time.Second,
|
||||
TLSClientConfig: transportConfig,
|
||||
}
|
||||
clientConfig.TLSClientConfig = restclient.TLSClientConfig{}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
12
vendor/sigs.k8s.io/kubefed/pkg/controller/util/constants.go
generated
vendored
12
vendor/sigs.k8s.io/kubefed/pkg/controller/util/constants.go
generated
vendored
@@ -20,9 +20,11 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// Providing 0 duration to an informer indicates that resync should be delayed as long as possible
|
||||
const (
|
||||
NoResyncPeriod time.Duration = 0 * time.Second
|
||||
// Providing 0 duration to an informer indicates that resync should be delayed as long as possible
|
||||
NoResyncPeriod = 0 * time.Second
|
||||
|
||||
SyncedPollPeriod = 10 * time.Second
|
||||
|
||||
NamespaceName = "namespaces"
|
||||
NamespaceKind = "Namespace"
|
||||
@@ -39,6 +41,12 @@ const (
|
||||
StatusField = "status"
|
||||
MetadataField = "metadata"
|
||||
|
||||
// Service fields
|
||||
HealthCheckNodePortField = "healthCheckNodePort"
|
||||
ClusterIPField = "clusterIP"
|
||||
ClusterIPsField = "clusterIPs"
|
||||
PortsField = "ports"
|
||||
|
||||
// ServiceAccount fields
|
||||
SecretsField = "secrets"
|
||||
|
||||
|
||||
1
vendor/sigs.k8s.io/kubefed/pkg/controller/util/controllerconfig.go
generated
vendored
1
vendor/sigs.k8s.io/kubefed/pkg/controller/util/controllerconfig.go
generated
vendored
@@ -72,6 +72,7 @@ type ControllerConfig struct {
|
||||
ClusterAvailableDelay time.Duration
|
||||
ClusterUnavailableDelay time.Duration
|
||||
MinimizeLatency bool
|
||||
CacheSyncTimeout time.Duration
|
||||
MaxConcurrentSyncReconciles int64
|
||||
MaxConcurrentStatusReconciles int64
|
||||
SkipAdoptingResources bool
|
||||
|
||||
35
vendor/sigs.k8s.io/kubefed/pkg/controller/util/federated_informer.go
generated
vendored
35
vendor/sigs.k8s.io/kubefed/pkg/controller/util/federated_informer.go
generated
vendored
@@ -534,33 +534,24 @@ func (fs *federatedStoreImpl) GetKeyFor(item interface{}) string {
|
||||
return key
|
||||
}
|
||||
|
||||
// Checks whether stores for all clusters form the lists (and only these) are there and
|
||||
// ClustersSynced checks whether stores for all clusters form the lists (and only these) are there and
|
||||
// are synced.
|
||||
func (fs *federatedStoreImpl) ClustersSynced(clusters []*fedv1b1.KubeFedCluster) bool {
|
||||
// Get the list of informers to check under a lock and check it outside.
|
||||
okSoFar, informersToCheck := func() (bool, []informer) {
|
||||
fs.federatedInformer.Lock()
|
||||
defer fs.federatedInformer.Unlock()
|
||||
fs.federatedInformer.Lock()
|
||||
defer fs.federatedInformer.Unlock()
|
||||
|
||||
if len(fs.federatedInformer.targetInformers) != len(clusters) {
|
||||
return false, []informer{}
|
||||
}
|
||||
informersToCheck := make([]informer, 0, len(clusters))
|
||||
for _, cluster := range clusters {
|
||||
if targetInformer, found := fs.federatedInformer.targetInformers[cluster.Name]; found {
|
||||
informersToCheck = append(informersToCheck, targetInformer)
|
||||
} else {
|
||||
return false, []informer{}
|
||||
}
|
||||
}
|
||||
return true, informersToCheck
|
||||
}()
|
||||
|
||||
if !okSoFar {
|
||||
if len(fs.federatedInformer.targetInformers) != len(clusters) {
|
||||
klog.V(4).Infof("The number of target informers mismatch with given clusters")
|
||||
return false
|
||||
}
|
||||
for _, informerToCheck := range informersToCheck {
|
||||
if !informerToCheck.controller.HasSynced() {
|
||||
for _, cluster := range clusters {
|
||||
if targetInformer, found := fs.federatedInformer.targetInformers[cluster.Name]; found {
|
||||
if !targetInformer.controller.HasSynced() {
|
||||
klog.V(4).Infof("Informer of cluster %q not synced", cluster.Name)
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
klog.V(4).Infof("Informer of cluster %q not found", cluster.Name)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
31
vendor/sigs.k8s.io/kubefed/pkg/controller/util/worker.go
generated
vendored
31
vendor/sigs.k8s.io/kubefed/pkg/controller/util/worker.go
generated
vendored
@@ -23,6 +23,8 @@ import (
|
||||
"k8s.io/client-go/util/flowcontrol"
|
||||
"k8s.io/client-go/util/workqueue"
|
||||
runtimeclient "sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"sigs.k8s.io/kubefed/pkg/metrics"
|
||||
)
|
||||
|
||||
type ReconcileFunc func(qualifiedName QualifiedName) ReconciliationStatus
|
||||
@@ -128,6 +130,8 @@ func (w *asyncWorker) EnqueueWithDelay(qualifiedName QualifiedName, delay time.D
|
||||
}
|
||||
|
||||
func (w *asyncWorker) Run(stopChan <-chan struct{}) {
|
||||
w.initMetrics()
|
||||
|
||||
StartBackoffGC(w.backoff, stopChan)
|
||||
w.deliverer.StartWithHandler(func(item *DelayingDelivererItem) {
|
||||
qualifiedName, ok := item.Value.(*QualifiedName)
|
||||
@@ -183,16 +187,41 @@ func (w *asyncWorker) reconcileOnce() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
metrics.ControllerRuntimeActiveWorkers.WithLabelValues(w.name).Add(1)
|
||||
defer metrics.ControllerRuntimeActiveWorkers.WithLabelValues(w.name).Add(-1)
|
||||
defer metrics.UpdateControllerRuntimeReconcileTimeFromStart(w.name, time.Now())
|
||||
|
||||
status := w.reconcile(qualifiedName)
|
||||
switch status {
|
||||
case StatusAllOK:
|
||||
break
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelSuccess).Inc()
|
||||
case StatusError:
|
||||
w.EnqueueForError(qualifiedName)
|
||||
metrics.ControllerRuntimeReconcileErrors.WithLabelValues(w.name).Inc()
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelError).Inc()
|
||||
case StatusNeedsRecheck:
|
||||
w.EnqueueForRetry(qualifiedName)
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelNeedsRecheck).Inc()
|
||||
case StatusNotSynced:
|
||||
w.EnqueueForClusterSync(qualifiedName)
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelNotSynced).Inc()
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
const (
|
||||
labelSuccess = "success"
|
||||
labelError = "error"
|
||||
labelNeedsRecheck = "needs_recheck"
|
||||
labelNotSynced = "not_synced"
|
||||
)
|
||||
|
||||
func (w *asyncWorker) initMetrics() {
|
||||
metrics.ControllerRuntimeActiveWorkers.WithLabelValues(w.name).Set(0)
|
||||
metrics.ControllerRuntimeReconcileErrors.WithLabelValues(w.name).Add(0)
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelSuccess).Add(0)
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelError).Add(0)
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelNeedsRecheck).Add(0)
|
||||
metrics.ControllerRuntimeReconcileTotal.WithLabelValues(w.name, labelNotSynced).Add(0)
|
||||
metrics.ControllerRuntimeWorkerCount.WithLabelValues(w.name).Set(float64(w.maxConcurrentReconciles))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user