K8s: Set priority for aggregated discovery (#101427)

pull/101475/head
Todd Treece 3 months ago committed by GitHub
parent 879b121136
commit 620d213856
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 12
      pkg/services/apiserver/builder/helper.go
  2. 9
      pkg/services/apiserver/service.go

@ -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
}

@ -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 {

Loading…
Cancel
Save