mirror of
https://github.com/kubernetes/client-go.git
synced 2025-06-29 08:29:23 +00:00
Merge pull request #58091 from deads2k/client-01-scale
Automatic merge from submit-queue (batch tested with PRs 57823, 58091, 58093, 58096, 57020). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. manually handle encoding and decoding in the scale client @p0lyn0mial I think this resolves the problems you're seeing in https://github.com/kubernetes/kubernetes/pull/57843 by manually controlling the encode and decode in the client itself. /assign @DirectXMan12 Kubernetes-commit: eba10f1ea1541237d9aa577418423c70b79ecb04
This commit is contained in:
commit
271600dc67
106
Godeps/Godeps.json
generated
106
Godeps/Godeps.json
generated
@ -488,215 +488,215 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/equality",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/errors",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/meta",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/resource",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/testing",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/testing",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/fuzzer",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip",
|
"ImportPath": "k8s.io/apimachinery/pkg/api/testing/roundtrip",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
|
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced",
|
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/announced",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
|
"ImportPath": "k8s.io/apimachinery/pkg/apimachinery/registered",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/fuzzer",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/internalversion",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
|
"ImportPath": "k8s.io/apimachinery/pkg/apis/meta/v1alpha1",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
"ImportPath": "k8s.io/apimachinery/pkg/conversion",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
"ImportPath": "k8s.io/apimachinery/pkg/conversion/queryparams",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
"ImportPath": "k8s.io/apimachinery/pkg/fields",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
"ImportPath": "k8s.io/apimachinery/pkg/labels",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/schema",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/json",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/protobuf",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/recognizer",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/streaming",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
|
"ImportPath": "k8s.io/apimachinery/pkg/runtime/serializer/versioning",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
"ImportPath": "k8s.io/apimachinery/pkg/selection",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
"ImportPath": "k8s.io/apimachinery/pkg/types",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/cache",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/clock",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/diff",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/errors",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/framer",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/httpstream/spdy",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/intstr",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/json",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/mergepatch",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/net",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/remotecommand",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/runtime",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/sets",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/strategicpatch",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/validation",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/validation/field",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/wait",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
|
"ImportPath": "k8s.io/apimachinery/pkg/util/yaml",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/version",
|
"ImportPath": "k8s.io/apimachinery/pkg/version",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
"ImportPath": "k8s.io/apimachinery/pkg/watch",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
|
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/json",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
|
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/netutil",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
"ImportPath": "k8s.io/apimachinery/third_party/forked/golang/reflect",
|
||||||
"Rev": "d9544a17dea2508999d4dfb3fc4a8a9ccb140443"
|
"Rev": "d86399872a1f1082d33982f7f9b37a2ce7c2e307"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ImportPath": "k8s.io/kube-openapi/pkg/common",
|
"ImportPath": "k8s.io/kube-openapi/pkg/common",
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
|
|
||||||
autoscaling "k8s.io/api/autoscaling/v1"
|
autoscaling "k8s.io/api/autoscaling/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
"k8s.io/client-go/dynamic"
|
"k8s.io/client-go/dynamic"
|
||||||
@ -129,21 +130,29 @@ func (c *namespacedScaleClient) Get(resource schema.GroupResource, name string)
|
|||||||
return nil, fmt.Errorf("unable to get client for %s: %v", resource.String(), err)
|
return nil, fmt.Errorf("unable to get client for %s: %v", resource.String(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
rawObj, err := c.client.clientBase.Get().
|
result := c.client.clientBase.Get().
|
||||||
AbsPath(path).
|
AbsPath(path).
|
||||||
Namespace(c.namespace).
|
Namespace(c.namespace).
|
||||||
Resource(gvr.Resource).
|
Resource(gvr.Resource).
|
||||||
Name(name).
|
Name(name).
|
||||||
SubResource("scale").
|
SubResource("scale").
|
||||||
Do().
|
Do()
|
||||||
Get()
|
if err := result.Error(); err != nil {
|
||||||
|
return nil, fmt.Errorf("could not fetch the scale for %s %s: %v", resource.String(), name, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
scaleBytes, err := result.Raw()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
decoder := scaleConverter.codecs.UniversalDecoder(scaleConverter.ScaleVersions()...)
|
||||||
|
rawScaleObj, err := runtime.Decode(decoder, scaleBytes)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert whatever this is to autoscaling/v1.Scale
|
// convert whatever this is to autoscaling/v1.Scale
|
||||||
scaleObj, err := scaleConverter.ConvertToVersion(rawObj, autoscaling.SchemeGroupVersion)
|
scaleObj, err := scaleConverter.ConvertToVersion(rawScaleObj, autoscaling.SchemeGroupVersion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err)
|
return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err)
|
||||||
}
|
}
|
||||||
@ -158,7 +167,7 @@ func (c *namespacedScaleClient) Update(resource schema.GroupResource, scale *aut
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Currently, a /scale endpoint can receive and return different scale types.
|
// Currently, a /scale endpoint can receive and return different scale types.
|
||||||
// Until we hvae support for the alternative API representations proposal,
|
// Until we have support for the alternative API representations proposal,
|
||||||
// we need to deal with sending and accepting differnet API versions.
|
// we need to deal with sending and accepting differnet API versions.
|
||||||
|
|
||||||
// figure out what scale we actually need here
|
// figure out what scale we actually need here
|
||||||
@ -170,25 +179,39 @@ func (c *namespacedScaleClient) Update(resource schema.GroupResource, scale *aut
|
|||||||
// convert this to whatever this endpoint wants
|
// convert this to whatever this endpoint wants
|
||||||
scaleUpdate, err := scaleConverter.ConvertToVersion(scale, desiredGVK.GroupVersion())
|
scaleUpdate, err := scaleConverter.ConvertToVersion(scale, desiredGVK.GroupVersion())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("could not convert scale update to internal Scale: %v", err)
|
return nil, fmt.Errorf("could not convert scale update to external Scale: %v", err)
|
||||||
|
}
|
||||||
|
encoder := scaleConverter.codecs.LegacyCodec(desiredGVK.GroupVersion())
|
||||||
|
scaleUpdateBytes, err := runtime.Encode(encoder, scaleUpdate)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("could not encode scale update to external Scale: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
rawObj, err := c.client.clientBase.Put().
|
result := c.client.clientBase.Put().
|
||||||
AbsPath(path).
|
AbsPath(path).
|
||||||
Namespace(c.namespace).
|
Namespace(c.namespace).
|
||||||
Resource(gvr.Resource).
|
Resource(gvr.Resource).
|
||||||
Name(scale.Name).
|
Name(scale.Name).
|
||||||
SubResource("scale").
|
SubResource("scale").
|
||||||
Body(scaleUpdate).
|
Body(scaleUpdateBytes).
|
||||||
Do().
|
Do()
|
||||||
Get()
|
if err := result.Error(); err != nil {
|
||||||
|
panic(err)
|
||||||
|
return nil, fmt.Errorf("could not update the scale for %s %s: %v", resource.String(), scale.Name, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
scaleBytes, err := result.Raw()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("could not fetch the scale for %s %s: %v", resource.String(), scale.Name, err)
|
return nil, err
|
||||||
|
}
|
||||||
|
decoder := scaleConverter.codecs.UniversalDecoder(scaleConverter.ScaleVersions()...)
|
||||||
|
rawScaleObj, err := runtime.Decode(decoder, scaleBytes)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert whatever this is back to autoscaling/v1.Scale
|
// convert whatever this is back to autoscaling/v1.Scale
|
||||||
scaleObj, err := scaleConverter.ConvertToVersion(rawObj, autoscaling.SchemeGroupVersion)
|
scaleObj, err := scaleConverter.ConvertToVersion(rawScaleObj, autoscaling.SchemeGroupVersion)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err)
|
return nil, fmt.Errorf("received an object from a /scale endpoint which was not convertible to autoscaling Scale: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,7 @@ import (
|
|||||||
|
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
|
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
"k8s.io/client-go/discovery"
|
"k8s.io/client-go/discovery"
|
||||||
scalescheme "k8s.io/client-go/scale/scheme"
|
scalescheme "k8s.io/client-go/scale/scheme"
|
||||||
scaleappsint "k8s.io/client-go/scale/scheme/appsint"
|
scaleappsint "k8s.io/client-go/scale/scheme/appsint"
|
||||||
@ -124,6 +125,7 @@ func NewDiscoveryScaleKindResolver(client discovery.ServerResourcesInterface) Sc
|
|||||||
// ScaleConverter knows how to convert between external scale versions.
|
// ScaleConverter knows how to convert between external scale versions.
|
||||||
type ScaleConverter struct {
|
type ScaleConverter struct {
|
||||||
scheme *runtime.Scheme
|
scheme *runtime.Scheme
|
||||||
|
codecs serializer.CodecFactory
|
||||||
internalVersioner runtime.GroupVersioner
|
internalVersioner runtime.GroupVersioner
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,6 +143,7 @@ func NewScaleConverter() *ScaleConverter {
|
|||||||
|
|
||||||
return &ScaleConverter{
|
return &ScaleConverter{
|
||||||
scheme: scheme,
|
scheme: scheme,
|
||||||
|
codecs: serializer.NewCodecFactory(scheme),
|
||||||
internalVersioner: runtime.NewMultiGroupVersioner(
|
internalVersioner: runtime.NewMultiGroupVersioner(
|
||||||
scalescheme.SchemeGroupVersion,
|
scalescheme.SchemeGroupVersion,
|
||||||
schema.GroupKind{Group: scaleext.GroupName, Kind: "Scale"},
|
schema.GroupKind{Group: scaleext.GroupName, Kind: "Scale"},
|
||||||
@ -156,6 +159,22 @@ func (c *ScaleConverter) Scheme() *runtime.Scheme {
|
|||||||
return c.scheme
|
return c.scheme
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *ScaleConverter) Codecs() serializer.CodecFactory {
|
||||||
|
return c.codecs
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *ScaleConverter) ScaleVersions() []schema.GroupVersion {
|
||||||
|
return []schema.GroupVersion{
|
||||||
|
scaleautoscaling.SchemeGroupVersion,
|
||||||
|
scalescheme.SchemeGroupVersion,
|
||||||
|
scaleext.SchemeGroupVersion,
|
||||||
|
scaleextint.SchemeGroupVersion,
|
||||||
|
scaleappsint.SchemeGroupVersion,
|
||||||
|
scaleappsv1beta1.SchemeGroupVersion,
|
||||||
|
scaleappsv1beta2.SchemeGroupVersion,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ConvertToVersion converts the given *external* input object to the given output *external* output group-version.
|
// ConvertToVersion converts the given *external* input object to the given output *external* output group-version.
|
||||||
func (c *ScaleConverter) ConvertToVersion(in runtime.Object, outVersion schema.GroupVersion) (runtime.Object, error) {
|
func (c *ScaleConverter) ConvertToVersion(in runtime.Object, outVersion schema.GroupVersion) (runtime.Object, error) {
|
||||||
scaleInt, err := c.scheme.ConvertToVersion(in, c.internalVersioner)
|
scaleInt, err := c.scheme.ConvertToVersion(in, c.internalVersioner)
|
||||||
|
Loading…
Reference in New Issue
Block a user