Chore: Update k8s.io dependencies (#91692)

This commit is contained in:
Todd Treece
2024-08-08 18:39:44 +03:00
committed by GitHub
parent d1deef29ff
commit b4126d3bce
26 changed files with 267 additions and 282 deletions
@@ -12,7 +12,6 @@
package aggregator
import (
"context"
"crypto/tls"
"fmt"
"io"
@@ -203,7 +202,7 @@ func CreateAggregatorServer(config *Config, delegateAPIServer genericapiserver.D
}
err = aggregatorServer.GenericAPIServer.AddPostStartHook("grafana-apiserver-autoregistration", func(context genericapiserver.PostStartHookContext) error {
go autoRegistrationController.Run(5, context.StopCh)
go autoRegistrationController.Run(5, context.Done())
return nil
})
if err != nil {
@@ -214,10 +213,10 @@ func CreateAggregatorServer(config *Config, delegateAPIServer genericapiserver.D
addRemoteAPIServicesToRegister(remoteServicesConfig, autoRegistrationController)
externalNames := getRemoteExternalNamesToRegister(remoteServicesConfig)
err = aggregatorServer.GenericAPIServer.AddPostStartHook("grafana-apiserver-remote-autoregistration", func(ctx genericapiserver.PostStartHookContext) error {
controllers.WaitForCacheSync("grafana-apiserver-remote-autoregistration", ctx.StopCh, externalNamesInformer.Informer().HasSynced)
controllers.WaitForCacheSync("grafana-apiserver-remote-autoregistration", ctx.Done(), externalNamesInformer.Informer().HasSynced)
namespacedClient := remoteServicesConfig.serviceClientSet.ServiceV0alpha1().ExternalNames(remoteServicesConfig.ExternalNamesNamespace)
for _, externalName := range externalNames {
_, err := namespacedClient.Apply(context.Background(), externalName, metav1.ApplyOptions{
_, err := namespacedClient.Apply(ctx, externalName, metav1.ApplyOptions{
FieldManager: "grafana-aggregator",
Force: true,
})
@@ -275,13 +274,13 @@ func CreateAggregatorServer(config *Config, delegateAPIServer genericapiserver.D
aggregatorServer.GenericAPIServer.AddPostStartHookOrDie("apiservice-status-override-available-controller", func(context genericapiserver.PostStartHookContext) error {
// if we end up blocking for long periods of time, we may need to increase workers.
go availableController.Run(5, context.StopCh)
go availableController.Run(5, context.Done())
return nil
})
aggregatorServer.GenericAPIServer.AddPostStartHookOrDie("start-grafana-aggregator-informers", func(context genericapiserver.PostStartHookContext) error {
sharedInformerFactory.Start(context.StopCh)
aggregatorServer.APIRegistrationInformers.Start(context.StopCh)
sharedInformerFactory.Start(context.Done())
aggregatorServer.APIRegistrationInformers.Start(context.Done())
return nil
})
@@ -64,7 +64,7 @@ type AvailableConditionController struct {
// To allow injection for testing.
syncFn func(key string) error
queue workqueue.RateLimitingInterface
queue workqueue.TypedRateLimitingInterface[string]
// map from service-namespace -> service-name -> apiservice names
cache map[string]map[string][]string
// this lock protects operations on the above cache
@@ -85,12 +85,13 @@ func NewAvailableConditionController(
apiServiceLister: apiServiceInformer.Lister(),
externalNameLister: externalNameInformer.Lister(),
serviceResolver: serviceResolver,
queue: workqueue.NewNamedRateLimitingQueue(
queue: workqueue.NewTypedRateLimitingQueueWithConfig(
// We want a fairly tight requeue time. The controller listens to the API, but because it relies on the routability of the
// service network, it is possible for an external, non-watchable factor to affect availability. This keeps
// the maximum disruption time to a minimum, but it does prevent hot loops.
workqueue.NewItemExponentialFailureRateLimiter(5*time.Millisecond, 30*time.Second),
"AvailableConditionController"),
workqueue.NewTypedItemExponentialFailureRateLimiter[string](5*time.Millisecond, 30*time.Second),
workqueue.TypedRateLimitingQueueConfig[string]{Name: "AvailableConditionController"},
),
proxyTransportDial: proxyTransportDial,
proxyCurrentCertKeyContent: proxyCurrentCertKeyContent,
}
@@ -348,7 +349,7 @@ func (c *AvailableConditionController) processNextWorkItem() bool {
}
defer c.queue.Done(key)
err := c.syncFn(key.(string))
err := c.syncFn(key)
if err == nil {
c.queue.Forget(key)
return true
+3 -52
View File
@@ -5,24 +5,19 @@ import (
"fmt"
"net/http"
"regexp"
goruntime "runtime"
"runtime/debug"
"strconv"
"strings"
"time"
"github.com/prometheus/client_golang/prometheus"
"golang.org/x/mod/semver"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/version"
openapinamer "k8s.io/apiserver/pkg/endpoints/openapi"
"k8s.io/apiserver/pkg/registry/generic"
genericapiserver "k8s.io/apiserver/pkg/server"
"k8s.io/apiserver/pkg/util/openapi"
utilversion "k8s.io/apiserver/pkg/util/version"
k8sscheme "k8s.io/client-go/kubernetes/scheme"
k8stracing "k8s.io/component-base/tracing"
"k8s.io/kube-openapi/pkg/common"
@@ -122,22 +117,8 @@ func SetupConfig(
return handler
}
k8sVersion, err := getK8sApiserverVersion()
if err != nil {
return err
}
before, after, _ := strings.Cut(buildVersion, ".")
serverConfig.Version = &version.Info{
Major: before,
Minor: after,
GoVersion: goruntime.Version(),
Platform: fmt.Sprintf("%s/%s", goruntime.GOOS, goruntime.GOARCH),
Compiler: goruntime.Compiler,
GitTreeState: buildBranch,
GitCommit: buildCommit,
BuildDate: time.Unix(buildTimestamp, 0).UTC().Format(time.DateTime),
GitVersion: k8sVersion,
}
serverConfig.EffectiveVersion = utilversion.DefaultKubeEffectiveVersion()
return nil
}
@@ -200,33 +181,3 @@ func InstallAPIs(
}
return nil
}
// find the k8s version according to build info
func getK8sApiserverVersion() (string, error) {
bi, ok := debug.ReadBuildInfo()
if !ok {
return "", fmt.Errorf("debug.ReadBuildInfo() failed")
}
if len(bi.Deps) == 0 {
return "v?.?", nil // this is normal while debugging
}
for _, dep := range bi.Deps {
if dep.Path == "k8s.io/apiserver" {
if !semver.IsValid(dep.Version) {
return "", fmt.Errorf("invalid semantic version for k8s.io/apiserver")
}
// v0 => v1
majorVersion := strings.TrimPrefix(semver.Major(dep.Version), "v")
majorInt, err := strconv.Atoi(majorVersion)
if err != nil {
return "", fmt.Errorf("could not convert majorVersion to int. majorVersion: %s", majorVersion)
}
newMajor := fmt.Sprintf("v%d", majorInt+1)
return strings.Replace(dep.Version, semver.Major(dep.Version), newMajor, 1), nil
}
}
return "", fmt.Errorf("could not find k8s.io/apiserver in build info")
}
+7 -6
View File
@@ -341,12 +341,12 @@ func (s *service) start(ctx context.Context) error {
var runningServer *genericapiserver.GenericAPIServer
if s.features.IsEnabledGlobally(featuremgmt.FlagKubernetesAggregator) {
runningServer, err = s.startAggregator(transport, serverConfig, server, s.metrics)
runningServer, err = s.startAggregator(ctx, transport, serverConfig, server, s.metrics)
if err != nil {
return err
}
} else {
runningServer, err = s.startCoreServer(transport, serverConfig, server)
runningServer, err = s.startCoreServer(ctx, transport, server)
if err != nil {
return err
}
@@ -368,8 +368,8 @@ func (s *service) start(ctx context.Context) error {
}
func (s *service) startCoreServer(
ctx context.Context,
transport *roundTripperFunc,
serverConfig *genericapiserver.RecommendedConfig,
server *genericapiserver.GenericAPIServer,
) (*genericapiserver.GenericAPIServer, error) {
// setup the loopback transport and signal that it's ready.
@@ -381,13 +381,14 @@ func (s *service) startCoreServer(
prepared := server.PrepareRun()
go func() {
s.stoppedCh <- prepared.Run(s.stopCh)
s.stoppedCh <- prepared.RunWithContext(ctx)
}()
return server, nil
}
func (s *service) startAggregator(
ctx context.Context,
transport *roundTripperFunc,
serverConfig *genericapiserver.RecommendedConfig,
server *genericapiserver.GenericAPIServer,
@@ -418,7 +419,7 @@ func (s *service) startAggregator(
}
go func() {
s.stoppedCh <- prepared.Run(s.stopCh)
s.stoppedCh <- prepared.Run(ctx)
}()
return aggregatorServer.GenericAPIServer, nil
@@ -449,7 +450,7 @@ func (s *service) running(ctx context.Context) error {
return err
}
case <-ctx.Done():
close(s.stopCh)
return ctx.Err()
}
return nil
}
@@ -124,15 +124,8 @@ func (o *TracingOptions) ApplyTo(config *genericapiserver.RecommendedConfig) err
}
config.AddPostStartHookOrDie("grafana-tracing-service", func(hookCtx genericapiserver.PostStartHookContext) error {
ctx, cancel := context.WithCancel(context.Background())
go func() {
<-hookCtx.StopCh
cancel()
}()
go func() {
if err := ts.Run(ctx); err != nil && !errors.Is(err, context.Canceled) {
if err := ts.Run(hookCtx.Context); err != nil && !errors.Is(err, context.Canceled) {
o.logger.Error("failed to shutdown tracing service", "error", err)
}
}()