mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 23:15:14 +00:00
apimachinery: move unversioned registration to metav1
This commit is contained in:
parent
5ea58748f1
commit
e3b92a11f1
@ -50,10 +50,6 @@ const GroupName = ""
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
||||
|
||||
// Unversioned is group version for unversioned API objects
|
||||
// TODO: this should be v1 probably
|
||||
var Unversioned = schema.GroupVersion{Group: "", Version: "v1"}
|
||||
|
||||
// ParameterCodec handles versioning of objects that are converted to query parameters.
|
||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||
|
||||
@ -123,13 +119,5 @@ func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
&ConfigMapList{},
|
||||
)
|
||||
|
||||
// Register Unversioned types under their own special group
|
||||
scheme.AddUnversionedTypes(Unversioned,
|
||||
&metav1.Status{},
|
||||
&metav1.APIVersions{},
|
||||
&metav1.APIGroupList{},
|
||||
&metav1.APIGroup{},
|
||||
&metav1.APIResourceList{},
|
||||
)
|
||||
return nil
|
||||
}
|
||||
|
@ -52,14 +52,14 @@ func NewMetadataCodecFactory() serializer.CodecFactory {
|
||||
if kind.Version == runtime.APIVersionInternal {
|
||||
continue
|
||||
}
|
||||
if kind == api.Unversioned.WithKind("Status") {
|
||||
if kind == metav1.Unversioned.WithKind("Status") {
|
||||
// this is added below as unversioned
|
||||
continue
|
||||
}
|
||||
metaOnlyObject := gvkToMetadataOnlyObject(kind)
|
||||
scheme.AddKnownTypeWithName(kind, metaOnlyObject)
|
||||
}
|
||||
scheme.AddUnversionedTypes(api.Unversioned, &metav1.Status{})
|
||||
scheme.AddUnversionedTypes(metav1.Unversioned, &metav1.Status{})
|
||||
return serializer.NewCodecFactory(scheme)
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,10 @@ const GroupName = "meta.k8s.io"
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}
|
||||
|
||||
// Unversioned is group version for unversioned API objects
|
||||
// TODO: this should be v1 probably
|
||||
var Unversioned = schema.GroupVersion{Group: "", Version: "v1"}
|
||||
|
||||
// WatchEventKind is name reserved for serializing watch events.
|
||||
const WatchEventKind = "WatchEvent"
|
||||
|
||||
@ -56,6 +60,15 @@ func AddToGroupVersion(scheme *runtime.Scheme, groupVersion schema.GroupVersion)
|
||||
Convert_versioned_Event_to_versioned_InternalEvent,
|
||||
)
|
||||
|
||||
// Register Unversioned types under their own special group
|
||||
scheme.AddUnversionedTypes(Unversioned,
|
||||
&Status{},
|
||||
&APIVersions{},
|
||||
&APIGroupList{},
|
||||
&APIGroup{},
|
||||
&APIResourceList{},
|
||||
)
|
||||
|
||||
// register manually. This usually goes through the SchemeBuilder, which we cannot use here.
|
||||
scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...)
|
||||
AddConversionFuncs(scheme)
|
||||
|
@ -570,6 +570,7 @@ func TestAddKnownTypesIdemPotent(t *testing.T) {
|
||||
t.Errorf("expected only one type after double registration with custom name")
|
||||
}
|
||||
|
||||
s.AddUnversionedTypes(gv, &InternalSimple{})
|
||||
s.AddUnversionedTypes(gv, &InternalSimple{})
|
||||
if len(s.KnownTypes(gv)) != 1 {
|
||||
t.Errorf("expected only one %v type after double registration with custom name", gv)
|
||||
@ -587,6 +588,11 @@ func TestAddKnownTypesIdemPotent(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// EmbeddableTypeMeta passes GetObjectKind to the type which embeds it.
|
||||
type EmbeddableTypeMeta runtime.TypeMeta
|
||||
|
||||
func (tm *EmbeddableTypeMeta) GetObjectKind() schema.ObjectKind { return (*runtime.TypeMeta)(tm) }
|
||||
|
||||
func TestConflictingAddKnownTypes(t *testing.T) {
|
||||
s := runtime.NewScheme()
|
||||
gv := schema.GroupVersion{Group: "foo", Version: "v1"}
|
||||
@ -612,7 +618,14 @@ func TestConflictingAddKnownTypes(t *testing.T) {
|
||||
panicked <- true
|
||||
}
|
||||
}()
|
||||
|
||||
s.AddUnversionedTypes(gv, &InternalSimple{})
|
||||
|
||||
// redefine InternalSimple with the same name, but obviously as a different type
|
||||
type InternalSimple struct {
|
||||
EmbeddableTypeMeta `json:",inline"`
|
||||
TestString string `json:"testString"`
|
||||
}
|
||||
s.AddUnversionedTypes(gv, &InternalSimple{})
|
||||
panicked <- false
|
||||
}()
|
||||
|
@ -50,10 +50,6 @@ const GroupName = ""
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
||||
|
||||
// Unversioned is group version for unversioned API objects
|
||||
// TODO: this should be v1 probably
|
||||
var Unversioned = schema.GroupVersion{Group: "", Version: "v1"}
|
||||
|
||||
// ParameterCodec handles versioning of objects that are converted to query parameters.
|
||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||
|
||||
@ -123,13 +119,5 @@ func addKnownTypes(scheme *runtime.Scheme) error {
|
||||
&ConfigMapList{},
|
||||
)
|
||||
|
||||
// Register Unversioned types under their own special group
|
||||
scheme.AddUnversionedTypes(Unversioned,
|
||||
&metav1.Status{},
|
||||
&metav1.APIVersions{},
|
||||
&metav1.APIGroupList{},
|
||||
&metav1.APIGroup{},
|
||||
&metav1.APIResourceList{},
|
||||
)
|
||||
return nil
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user