mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
fix group mapping and encoding order
This commit is contained in:
parent
a49c363624
commit
f89bd83664
@ -114,22 +114,24 @@ func IsEnabledVersion(v unversioned.GroupVersion) bool {
|
|||||||
return found
|
return found
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnabledVersions returns all enabled versions.
|
// EnabledVersions returns all enabled versions. Groups are randomly ordered, but versions within groups
|
||||||
func EnabledVersions() (ret []unversioned.GroupVersion) {
|
// are priority order from best to worst
|
||||||
for v := range enabledVersions {
|
func EnabledVersions() []unversioned.GroupVersion {
|
||||||
ret = append(ret, v)
|
ret := []unversioned.GroupVersion{}
|
||||||
|
for _, groupMeta := range groupMetaMap {
|
||||||
|
ret = append(ret, groupMeta.GroupVersions...)
|
||||||
}
|
}
|
||||||
return
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnabledVersionsForGroup returns all enabled versions for a group.
|
// EnabledVersionsForGroup returns all enabled versions for a group in order of best to worst
|
||||||
func EnabledVersionsForGroup(group string) (ret []unversioned.GroupVersion) {
|
func EnabledVersionsForGroup(group string) []unversioned.GroupVersion {
|
||||||
for v := range enabledVersions {
|
groupMeta, ok := groupMetaMap[group]
|
||||||
if v.Group == group {
|
if !ok {
|
||||||
ret = append(ret, v)
|
return []unversioned.GroupVersion{}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return
|
|
||||||
|
return append([]unversioned.GroupVersion{}, groupMeta.GroupVersions...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Group returns the metadata of a group if the gruop is registered, otherwise
|
// Group returns the metadata of a group if the gruop is registered, otherwise
|
||||||
|
@ -57,12 +57,20 @@ func NewCodec(
|
|||||||
if encodeVersion != nil {
|
if encodeVersion != nil {
|
||||||
internal.encodeVersion = make(map[string]unversioned.GroupVersion)
|
internal.encodeVersion = make(map[string]unversioned.GroupVersion)
|
||||||
for _, v := range encodeVersion {
|
for _, v := range encodeVersion {
|
||||||
|
// first one for a group wins. This is consistent with best to worst order throughout the codebase
|
||||||
|
if _, ok := internal.encodeVersion[v.Group]; ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
internal.encodeVersion[v.Group] = v
|
internal.encodeVersion[v.Group] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if decodeVersion != nil {
|
if decodeVersion != nil {
|
||||||
internal.decodeVersion = make(map[string]unversioned.GroupVersion)
|
internal.decodeVersion = make(map[string]unversioned.GroupVersion)
|
||||||
for _, v := range decodeVersion {
|
for _, v := range decodeVersion {
|
||||||
|
// first one for a group wins. This is consistent with best to worst order throughout the codebase
|
||||||
|
if _, ok := internal.decodeVersion[v.Group]; ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
internal.decodeVersion[v.Group] = v
|
internal.decodeVersion[v.Group] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user