kubectl: Use metrics-server for kubectl top commands

This commit is contained in:
Frederic Branczyk
2017-11-15 20:41:04 +01:00
parent ddea2dd56f
commit b1448adb59
16 changed files with 819 additions and 60 deletions

View File

@@ -40,6 +40,7 @@ go_library(
"//vendor/k8s.io/client-go/kubernetes:go_default_library",
"//vendor/k8s.io/client-go/rest:go_default_library",
"//vendor/k8s.io/client-go/rest/fake:go_default_library",
"//vendor/k8s.io/metrics/pkg/client/clientset_generated/clientset:go_default_library",
],
)

View File

@@ -50,6 +50,7 @@ import (
"k8s.io/kubernetes/pkg/kubectl/resource"
"k8s.io/kubernetes/pkg/kubectl/validation"
"k8s.io/kubernetes/pkg/printers"
metricsclientset "k8s.io/metrics/pkg/client/clientset_generated/clientset"
)
// +k8s:deepcopy-gen=true
@@ -245,6 +246,7 @@ type TestFactory struct {
TmpDir string
CategoryExpander categories.CategoryExpander
SkipDiscovery bool
MetricsClientSet metricsclientset.Interface
ClientForMappingFunc func(mapping *meta.RESTMapping) (resource.RESTClient, error)
UnstructuredClientForMappingFunc func(mapping *meta.RESTMapping) (resource.RESTClient, error)
@@ -315,6 +317,10 @@ func (f *FakeFactory) KubernetesClientSet() (*kubernetes.Clientset, error) {
return nil, nil
}
func (f *FakeFactory) MetricsClientSet() (metricsclientset.Interface, error) {
return f.tf.MetricsClientSet, f.tf.Err
}
func (f *FakeFactory) ClientSet() (internalclientset.Interface, error) {
return nil, nil
}
@@ -675,6 +681,10 @@ func (f *fakeAPIFactory) KubernetesClientSet() (*kubernetes.Clientset, error) {
return clientset, f.tf.Err
}
func (f *fakeAPIFactory) MetricsClientSet() (metricsclientset.Interface, error) {
return f.tf.MetricsClientSet, f.tf.Err
}
func (f *fakeAPIFactory) ClientSet() (internalclientset.Interface, error) {
// Swap the HTTP client out of the REST client with the fake
// version.