mirror of
https://github.com/kubernetes/client-go.git
synced 2025-06-12 08:35:33 +00:00
Narrow interface consumed by scale client
Kubernetes-commit: d8b69a0a65ad40523f621f11ac296624b4d976b5
This commit is contained in:
parent
e7bf2d1742
commit
8048d500b5
@ -20,7 +20,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
autoscaling "k8s.io/api/autoscaling/v1"
|
autoscaling "k8s.io/api/autoscaling/v1"
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
|
||||||
"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"
|
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
@ -41,7 +40,7 @@ type restInterfaceProvider func(*restclient.Config) (restclient.Interface, error
|
|||||||
// It behaves somewhat similarly to the dynamic ClientPool,
|
// It behaves somewhat similarly to the dynamic ClientPool,
|
||||||
// but is more specifically scoped to Scale.
|
// but is more specifically scoped to Scale.
|
||||||
type scaleClient struct {
|
type scaleClient struct {
|
||||||
mapper meta.RESTMapper
|
mapper PreferredResourceMapper
|
||||||
|
|
||||||
apiPathResolverFunc dynamic.APIPathResolverFunc
|
apiPathResolverFunc dynamic.APIPathResolverFunc
|
||||||
scaleKindResolver ScaleKindResolver
|
scaleKindResolver ScaleKindResolver
|
||||||
@ -51,7 +50,7 @@ type scaleClient struct {
|
|||||||
// NewForConfig creates a new ScalesGetter which resolves kinds
|
// NewForConfig creates a new ScalesGetter which resolves kinds
|
||||||
// to resources using the given RESTMapper, and API paths using
|
// to resources using the given RESTMapper, and API paths using
|
||||||
// the given dynamic.APIPathResolverFunc.
|
// the given dynamic.APIPathResolverFunc.
|
||||||
func NewForConfig(cfg *restclient.Config, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) (ScalesGetter, error) {
|
func NewForConfig(cfg *restclient.Config, mapper PreferredResourceMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) (ScalesGetter, error) {
|
||||||
// so that the RESTClientFor doesn't complain
|
// so that the RESTClientFor doesn't complain
|
||||||
cfg.GroupVersion = &schema.GroupVersion{}
|
cfg.GroupVersion = &schema.GroupVersion{}
|
||||||
|
|
||||||
@ -72,7 +71,7 @@ func NewForConfig(cfg *restclient.Config, mapper meta.RESTMapper, resolver dynam
|
|||||||
|
|
||||||
// New creates a new ScalesGetter using the given client to make requests.
|
// New creates a new ScalesGetter using the given client to make requests.
|
||||||
// The GroupVersion on the client is ignored.
|
// The GroupVersion on the client is ignored.
|
||||||
func New(baseClient restclient.Interface, mapper meta.RESTMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) ScalesGetter {
|
func New(baseClient restclient.Interface, mapper PreferredResourceMapper, resolver dynamic.APIPathResolverFunc, scaleKindResolver ScaleKindResolver) ScalesGetter {
|
||||||
return &scaleClient{
|
return &scaleClient{
|
||||||
mapper: mapper,
|
mapper: mapper,
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
"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"
|
serializer "k8s.io/apimachinery/pkg/runtime/serializer"
|
||||||
@ -34,6 +35,15 @@ import (
|
|||||||
scaleext "k8s.io/client-go/scale/scheme/extensionsv1beta1"
|
scaleext "k8s.io/client-go/scale/scheme/extensionsv1beta1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// PreferredResourceMapper determines the preferred version of a resource to scale
|
||||||
|
type PreferredResourceMapper interface {
|
||||||
|
// ResourceFor takes a partial resource and returns the preferred resource.
|
||||||
|
ResourceFor(resource schema.GroupVersionResource) (preferredResource schema.GroupVersionResource, err error)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ensure a RESTMapper satisfies the PreferredResourceMapper interface
|
||||||
|
var _ PreferredResourceMapper = meta.RESTMapper(nil)
|
||||||
|
|
||||||
// ScaleKindResolver knows about the relationship between
|
// ScaleKindResolver knows about the relationship between
|
||||||
// resources and the GroupVersionKind of their scale subresources.
|
// resources and the GroupVersionKind of their scale subresources.
|
||||||
type ScaleKindResolver interface {
|
type ScaleKindResolver interface {
|
||||||
|
Loading…
Reference in New Issue
Block a user