mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 02:09:56 +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
|
// SchemeGroupVersion is group version used to register these objects
|
||||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
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.
|
// ParameterCodec handles versioning of objects that are converted to query parameters.
|
||||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||||
|
|
||||||
@ -123,13 +119,5 @@ func addKnownTypes(scheme *runtime.Scheme) error {
|
|||||||
&ConfigMapList{},
|
&ConfigMapList{},
|
||||||
)
|
)
|
||||||
|
|
||||||
// Register Unversioned types under their own special group
|
|
||||||
scheme.AddUnversionedTypes(Unversioned,
|
|
||||||
&metav1.Status{},
|
|
||||||
&metav1.APIVersions{},
|
|
||||||
&metav1.APIGroupList{},
|
|
||||||
&metav1.APIGroup{},
|
|
||||||
&metav1.APIResourceList{},
|
|
||||||
)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -52,14 +52,14 @@ func NewMetadataCodecFactory() serializer.CodecFactory {
|
|||||||
if kind.Version == runtime.APIVersionInternal {
|
if kind.Version == runtime.APIVersionInternal {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if kind == api.Unversioned.WithKind("Status") {
|
if kind == metav1.Unversioned.WithKind("Status") {
|
||||||
// this is added below as unversioned
|
// this is added below as unversioned
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
metaOnlyObject := gvkToMetadataOnlyObject(kind)
|
metaOnlyObject := gvkToMetadataOnlyObject(kind)
|
||||||
scheme.AddKnownTypeWithName(kind, metaOnlyObject)
|
scheme.AddKnownTypeWithName(kind, metaOnlyObject)
|
||||||
}
|
}
|
||||||
scheme.AddUnversionedTypes(api.Unversioned, &metav1.Status{})
|
scheme.AddUnversionedTypes(metav1.Unversioned, &metav1.Status{})
|
||||||
return serializer.NewCodecFactory(scheme)
|
return serializer.NewCodecFactory(scheme)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,6 +27,10 @@ const GroupName = "meta.k8s.io"
|
|||||||
// SchemeGroupVersion is group version used to register these objects
|
// SchemeGroupVersion is group version used to register these objects
|
||||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"}
|
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.
|
// WatchEventKind is name reserved for serializing watch events.
|
||||||
const WatchEventKind = "WatchEvent"
|
const WatchEventKind = "WatchEvent"
|
||||||
|
|
||||||
@ -56,6 +60,15 @@ func AddToGroupVersion(scheme *runtime.Scheme, groupVersion schema.GroupVersion)
|
|||||||
Convert_versioned_Event_to_versioned_InternalEvent,
|
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.
|
// register manually. This usually goes through the SchemeBuilder, which we cannot use here.
|
||||||
scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...)
|
scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...)
|
||||||
AddConversionFuncs(scheme)
|
AddConversionFuncs(scheme)
|
||||||
|
@ -570,6 +570,7 @@ func TestAddKnownTypesIdemPotent(t *testing.T) {
|
|||||||
t.Errorf("expected only one type after double registration with custom name")
|
t.Errorf("expected only one type after double registration with custom name")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s.AddUnversionedTypes(gv, &InternalSimple{})
|
||||||
s.AddUnversionedTypes(gv, &InternalSimple{})
|
s.AddUnversionedTypes(gv, &InternalSimple{})
|
||||||
if len(s.KnownTypes(gv)) != 1 {
|
if len(s.KnownTypes(gv)) != 1 {
|
||||||
t.Errorf("expected only one %v type after double registration with custom name", gv)
|
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) {
|
func TestConflictingAddKnownTypes(t *testing.T) {
|
||||||
s := runtime.NewScheme()
|
s := runtime.NewScheme()
|
||||||
gv := schema.GroupVersion{Group: "foo", Version: "v1"}
|
gv := schema.GroupVersion{Group: "foo", Version: "v1"}
|
||||||
@ -612,7 +618,14 @@ func TestConflictingAddKnownTypes(t *testing.T) {
|
|||||||
panicked <- true
|
panicked <- true
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
s.AddUnversionedTypes(gv, &InternalSimple{})
|
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{})
|
s.AddUnversionedTypes(gv, &InternalSimple{})
|
||||||
panicked <- false
|
panicked <- false
|
||||||
}()
|
}()
|
||||||
|
@ -50,10 +50,6 @@ const GroupName = ""
|
|||||||
// SchemeGroupVersion is group version used to register these objects
|
// SchemeGroupVersion is group version used to register these objects
|
||||||
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
|
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.
|
// ParameterCodec handles versioning of objects that are converted to query parameters.
|
||||||
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
var ParameterCodec = runtime.NewParameterCodec(Scheme)
|
||||||
|
|
||||||
@ -123,13 +119,5 @@ func addKnownTypes(scheme *runtime.Scheme) error {
|
|||||||
&ConfigMapList{},
|
&ConfigMapList{},
|
||||||
)
|
)
|
||||||
|
|
||||||
// Register Unversioned types under their own special group
|
|
||||||
scheme.AddUnversionedTypes(Unversioned,
|
|
||||||
&metav1.Status{},
|
|
||||||
&metav1.APIVersions{},
|
|
||||||
&metav1.APIGroupList{},
|
|
||||||
&metav1.APIGroup{},
|
|
||||||
&metav1.APIResourceList{},
|
|
||||||
)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user