Skip to content

Commit 6d9fbd2

Browse files
committed
Deprecate heapster related kubelet flags and remove their implementation
Heapster is retired since 1.11. Having kubectl top mention Heapster is confusing for users.
1 parent 4cadaf2 commit 6d9fbd2

File tree

8 files changed

+40
-1206
lines changed

8 files changed

+40
-1206
lines changed

staging/src/k8s.io/kubectl/pkg/cmd/top/BUILD

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ go_test(
4343
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
4444
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
4545
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
46-
"//staging/src/k8s.io/apimachinery/pkg/version:go_default_library",
4746
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library",
48-
"//staging/src/k8s.io/client-go/rest:go_default_library",
4947
"//staging/src/k8s.io/client-go/rest/fake:go_default_library",
5048
"//staging/src/k8s.io/client-go/testing:go_default_library",
5149
"//staging/src/k8s.io/kubectl/pkg/cmd/testing:go_default_library",
@@ -54,7 +52,6 @@ go_test(
5452
"//staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1:go_default_library",
5553
"//staging/src/k8s.io/metrics/pkg/apis/metrics/v1beta1:go_default_library",
5654
"//staging/src/k8s.io/metrics/pkg/client/clientset/versioned/fake:go_default_library",
57-
"//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library",
5855
],
5956
)
6057

staging/src/k8s.io/kubectl/pkg/cmd/top/top_node.go

Lines changed: 17 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -44,40 +44,22 @@ type TopNodeOptions struct {
4444
SortBy string
4545
NoHeaders bool
4646
NodeClient corev1client.CoreV1Interface
47-
HeapsterOptions HeapsterTopOptions
48-
Client *metricsutil.HeapsterMetricsClient
4947
Printer *metricsutil.TopCmdPrinter
5048
DiscoveryClient discovery.DiscoveryInterface
5149
MetricsClient metricsclientset.Interface
5250

5351
genericclioptions.IOStreams
5452
}
5553

56-
type HeapsterTopOptions struct {
57-
Namespace string
58-
Service string
59-
Scheme string
60-
Port string
61-
}
62-
63-
func (o *HeapsterTopOptions) Bind(flags *pflag.FlagSet) {
64-
if len(o.Namespace) == 0 {
65-
o.Namespace = metricsutil.DefaultHeapsterNamespace
66-
}
67-
if len(o.Service) == 0 {
68-
o.Service = metricsutil.DefaultHeapsterService
69-
}
70-
if len(o.Scheme) == 0 {
71-
o.Scheme = metricsutil.DefaultHeapsterScheme
72-
}
73-
if len(o.Port) == 0 {
74-
o.Port = metricsutil.DefaultHeapsterPort
75-
}
76-
77-
flags.StringVar(&o.Namespace, "heapster-namespace", o.Namespace, "Namespace Heapster service is located in")
78-
flags.StringVar(&o.Service, "heapster-service", o.Service, "Name of Heapster service")
79-
flags.StringVar(&o.Scheme, "heapster-scheme", o.Scheme, "Scheme (http or https) to connect to Heapster as")
80-
flags.StringVar(&o.Port, "heapster-port", o.Port, "Port name in service to use")
54+
func heapsterTopOptions(flags *pflag.FlagSet) {
55+
flags.String("heapster-namespace", "kube-system", "Namespace Heapster service is located in")
56+
flags.MarkDeprecated("heapster-namespace", "This flag is currently no-op and will be deleted.")
57+
flags.String("heapster-service", "heapster", "Name of Heapster service")
58+
flags.MarkDeprecated("heapster-service", "This flag is currently no-op and will be deleted.")
59+
flags.String("heapster-scheme", "http", "Scheme (http or https) to connect to Heapster as")
60+
flags.MarkDeprecated("heapster-scheme", "This flag is currently no-op and will be deleted.")
61+
flags.String("heapster-port", "", "Port name in service to use")
62+
flags.MarkDeprecated("heapster-port", "This flag is currently no-op and will be deleted.")
8163
}
8264

8365
var (
@@ -117,8 +99,8 @@ func NewCmdTopNode(f cmdutil.Factory, o *TopNodeOptions, streams genericclioptio
11799
cmd.Flags().StringVarP(&o.Selector, "selector", "l", o.Selector, "Selector (label query) to filter on, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2)")
118100
cmd.Flags().StringVar(&o.SortBy, "sort-by", o.Selector, "If non-empty, sort nodes list using specified field. The field can be either 'cpu' or 'memory'.")
119101
cmd.Flags().BoolVar(&o.NoHeaders, "no-headers", o.NoHeaders, "If present, print output without headers")
102+
heapsterTopOptions(cmd.Flags())
120103

121-
o.HeapsterOptions.Bind(cmd.Flags())
122104
return cmd
123105
}
124106

@@ -146,7 +128,6 @@ func (o *TopNodeOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, args []
146128
}
147129

148130
o.NodeClient = clientset.CoreV1()
149-
o.Client = metricsutil.NewHeapsterMetricsClient(clientset.CoreV1(), o.HeapsterOptions.Namespace, o.HeapsterOptions.Scheme, o.HeapsterOptions.Service, o.HeapsterOptions.Port)
150131

151132
o.Printer = metricsutil.NewTopCmdPrinter(o.Out)
152133
return nil
@@ -181,17 +162,13 @@ func (o TopNodeOptions) RunTopNode() error {
181162

182163
metricsAPIAvailable := SupportedMetricsAPIVersionAvailable(apiGroups)
183164

184-
var metrics *metricsapi.NodeMetricsList
185-
if metricsAPIAvailable {
186-
metrics, err = getNodeMetricsFromMetricsAPI(o.MetricsClient, o.ResourceName, selector)
187-
if err != nil {
188-
return err
189-
}
190-
} else {
191-
metrics, err = o.Client.GetNodeMetrics(o.ResourceName, selector.String())
192-
if err != nil {
193-
return err
194-
}
165+
if !metricsAPIAvailable {
166+
return errors.New("Metrics API not available")
167+
}
168+
169+
metrics, err := getNodeMetricsFromMetricsAPI(o.MetricsClient, o.ResourceName, selector)
170+
if err != nil {
171+
return err
195172
}
196173

197174
if len(metrics.Items) == 0 {

0 commit comments

Comments
 (0)