K8s: Set priority for aggregated discovery (#101427)

This commit is contained in:
Todd Treece
2025-02-28 17:39:41 +02:00
committed by GitHub
parent 879b121136
commit 620d213856
2 changed files with 18 additions and 3 deletions
+12
View File
@@ -245,6 +245,18 @@ func SetupConfig(
serverConfig.EffectiveVersion = v
// set priority for aggregated discovery
for i, b := range builders {
gvs := GetGroupVersions(b)
if len(gvs) == 0 {
return fmt.Errorf("builder did not return any API group versions: %T", b)
}
pvs := scheme.PrioritizedVersionsForGroup(gvs[0].Group)
for j, gv := range pvs {
serverConfig.AggregatedDiscoveryGroupManager.SetGroupVersionPriority(metav1.GroupVersion(gv), 15000+i, len(pvs)-j)
}
}
if err := AddPostStartHooks(serverConfig, builders); err != nil {
return err
}
+6 -3
View File
@@ -278,18 +278,21 @@ func (s *service) start(ctx context.Context) error {
groupVersions := make([]schema.GroupVersion, 0, len(builders))
// Install schemas
initialSize := len(kubeaggregator.APIVersionPriorities)
for i, b := range builders {
gvs := builder.GetGroupVersions(b)
groupVersions = append(groupVersions, gvs...)
if len(gvs) == 0 {
return fmt.Errorf("no group versions found for builder %T", b)
}
if err := b.InstallSchema(Scheme); err != nil {
return err
}
pvs := Scheme.PrioritizedVersionsForGroup(gvs[0].Group)
for _, gv := range gvs {
for j, gv := range pvs {
if s.features.IsEnabledGlobally(featuremgmt.FlagKubernetesAggregator) {
// set the priority for the group+version
kubeaggregator.APIVersionPriorities[gv] = kubeaggregator.Priority{Group: 15000, Version: int32(i + initialSize)}
kubeaggregator.APIVersionPriorities[gv] = kubeaggregator.Priority{Group: int32(15000 + i), Version: int32(len(pvs) - j)}
}
if a, ok := b.(builder.APIGroupAuthorizer); ok {