mirror of
https://github.com/kubernetes/client-go.git
synced 2025-12-25 22:22:28 +00:00
Merge remote-tracking branch 'origin/master' into release-1.8
Kubernetes-commit: 783e2305f10d452b0549578535350cda83649f6c
This commit is contained in:
50
Godeps/Godeps.json
generated
50
Godeps/Godeps.json
generated
@@ -376,103 +376,103 @@
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/admissionregistration/v1alpha1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/apps/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/apps/v1beta2",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/authentication/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/authentication/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/authorization/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/authorization/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/autoscaling/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/autoscaling/v2beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/batch/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/batch/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/batch/v2alpha1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/certificates/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/core/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/extensions/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/imagepolicy/v1alpha1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/networking/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/policy/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/rbac/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/rbac/v1alpha1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/rbac/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/scheduling/v1alpha1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/settings/v1alpha1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/storage/v1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/api/storage/v1beta1",
|
||||
"Rev": "07b4b4eaaae3ae86db8b37558fb20a61933ea428"
|
||||
"Rev": "79875ce1be3143a6a7e07c40b8cbab654b247233"
|
||||
},
|
||||
{
|
||||
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
|
||||
|
||||
@@ -49,6 +49,7 @@ func NewRESTMapper(groupResources []*APIGroupResources, versionInterfaces meta.V
|
||||
for _, group := range groupResources {
|
||||
groupPriority = append(groupPriority, group.Group.Name)
|
||||
|
||||
// Make sure the preferred version comes first
|
||||
if len(group.Group.PreferredVersion.Version) != 0 {
|
||||
preferred := group.Group.PreferredVersion.Version
|
||||
if _, ok := group.VersionedResources[preferred]; ok {
|
||||
@@ -72,6 +73,21 @@ func NewRESTMapper(groupResources []*APIGroupResources, versionInterfaces meta.V
|
||||
continue
|
||||
}
|
||||
|
||||
// Add non-preferred versions after the preferred version, in case there are resources that only exist in those versions
|
||||
if discoveryVersion.Version != group.Group.PreferredVersion.Version {
|
||||
resourcePriority = append(resourcePriority, schema.GroupVersionResource{
|
||||
Group: group.Group.Name,
|
||||
Version: discoveryVersion.Version,
|
||||
Resource: meta.AnyResource,
|
||||
})
|
||||
|
||||
kindPriority = append(kindPriority, schema.GroupVersionKind{
|
||||
Group: group.Group.Name,
|
||||
Version: discoveryVersion.Version,
|
||||
Kind: meta.AnyKind,
|
||||
})
|
||||
}
|
||||
|
||||
gv := schema.GroupVersion{Group: group.Group.Name, Version: discoveryVersion.Version}
|
||||
versionMapper := meta.NewDefaultRESTMapper([]schema.GroupVersion{gv}, versionInterfaces)
|
||||
|
||||
|
||||
@@ -67,6 +67,32 @@ func TestRESTMapper(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// This group tests finding and prioritizing resources that only exist in non-preferred versions
|
||||
{
|
||||
Group: metav1.APIGroup{
|
||||
Name: "unpreferred",
|
||||
Versions: []metav1.GroupVersionForDiscovery{
|
||||
{Version: "v1"},
|
||||
{Version: "v2beta1"},
|
||||
{Version: "v2alpha1"},
|
||||
},
|
||||
PreferredVersion: metav1.GroupVersionForDiscovery{Version: "v1"},
|
||||
},
|
||||
VersionedResources: map[string][]metav1.APIResource{
|
||||
"v1": {
|
||||
{Name: "broccoli", Namespaced: true, Kind: "Broccoli"},
|
||||
},
|
||||
"v2beta1": {
|
||||
{Name: "broccoli", Namespaced: true, Kind: "Broccoli"},
|
||||
{Name: "peas", Namespaced: true, Kind: "Pea"},
|
||||
},
|
||||
"v2alpha1": {
|
||||
{Name: "broccoli", Namespaced: true, Kind: "Broccoli"},
|
||||
{Name: "peas", Namespaced: true, Kind: "Pea"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
restMapper := NewRESTMapper(resources, nil)
|
||||
@@ -123,6 +149,16 @@ func TestRESTMapper(t *testing.T) {
|
||||
Kind: "Job",
|
||||
},
|
||||
},
|
||||
{
|
||||
input: schema.GroupVersionResource{
|
||||
Resource: "peas",
|
||||
},
|
||||
want: schema.GroupVersionKind{
|
||||
Group: "unpreferred",
|
||||
Version: "v2beta1",
|
||||
Kind: "Pea",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range kindTCs {
|
||||
|
||||
Reference in New Issue
Block a user