Commit Graph

31450 Commits

Author SHA1 Message Date
Kubernetes Submit Queue
884e4b7b9c Merge pull request #58753 from soltysh/explain_cronjobs
Automatic merge from submit-queue. 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>.

Fix kubectl explain for cronjobs

**What this PR does / why we need it**:
`kubectl explain cronjob` was failing with `error: Couldn't find resource for "batch/v1, Kind=CronJob"` the reason for that is that even though we were getting the group and version from the mapper, we always rewrote it with the default value for a specific group, unless user specified the output version. 


**Special notes for your reviewer**:

**Release note**:
```release-note
Fix kubectl explain for resources not existing in default version of API group
```
for review:
/assign @juanvallejo 
for approval:
/assign @deads2k
2018-01-25 09:54:03 -08:00
Maciej Szulik
c7efab40b6 Fix kubectl explain for cronjobs 2018-01-25 16:10:31 +01:00
Kubernetes Submit Queue
7de1a8e0f5 Merge pull request #56288 from jsafrane/multiattach-pods
Automatic merge from submit-queue. 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>.

Add list of pods that use a volume to multiattach events

So users knows what pods are blocking a volume and can realize their error.

**Release note**:

```release-note
NONE
```

UX:
* User can get one of following events, depending what other pod(s) are already using a volume and in which namespace they are:
```
Multi-Attach error for volume"volume-name" Volume is already exclusively attached to one node and can't be attached to another
Multi-Attach error for volume "volume-name" Volume is already used by pod(s) pod3 and 1 pod(s) in different namespaces
```

* controller-manager gets always full logs:
  * When the node where is the volume attached is known:
        ```
        Multi-Attach error for volume "volume-name" (UniqueName: "fake-plugin/volume-name") from node "node1" Volume is already used by pods ns2/pod2, ns1/pod3 on node node2, node3
        ```

  * When the node where is the volume attached is not known:
        ```
        Multi-Attach error for volume "volume-name" (UniqueName: "fake-plugin/volume-name") from node "node1" Volume is already exclusively attached to node node2 and can't be attached to another
        ```

/kind bug
/sig storage
/assign @gnufied
2018-01-25 05:31:34 -08:00
Kubernetes Submit Queue
06e14c140a Merge pull request #58780 from misterikkit/invalCache
Automatic merge from submit-queue. 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>.

Fix equivalence cache invalidation of Node condition.

Equivalence cache for CheckNodeConditionPred becomes invalid when
Node.Spec.Unschedulable changes. This can happen even if
Node.Status.Conditions does not change, so move the logic around.

This logic is covered by integration test
"test/integration/scheduler".TestUnschedulableNodes but equivalence
cache is currently skipped when test pods have no OwnerReference.

The test failure is exposed by #58555 



**What this PR does / why we need it**:

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:

/ref #58222


**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
/sig scheduling
@kubernetes/sig-scheduling-pr-reviews
2018-01-25 04:48:27 -08:00
Yassine TIJANI
ed8e75a15c fixing array out of bound by checking initContainers instead of containers 2018-01-25 09:58:51 +01:00
Kubernetes Submit Queue
dd272ea3fd Merge pull request #56870 from ConnorDoyle/rename-deviceplugin-package
Automatic merge from submit-queue. 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>.

Rename package deviceplugin => devicemanager.

**What this PR does / why we need it**:

Fixes #58795
/kind cleanup

Rename package `deviceplugin` to `devicemanager` for consistency.

We already have components named Container manager and CPU manager. The device plugin package similarly contains an interface called `Manager`. The fact that the manager has plugins is somewhat incidental to the purpose of the package itself.

Note that this rename only affects internal API. The external gRPC interface still exports a package called deviceplugin.

**Release note**:
```release-note
NONE
```
2018-01-25 00:55:45 -08:00
jianglingxia
0e1972a82e Add UT test to openstack_test.go 2018-01-25 16:25:35 +08:00
lichuqiang
5da8d55e45 remove unused func in FakeConfigurator of scheduler 2018-01-25 16:08:13 +08:00
Connor Doyle
e5667cf426 Rename package deviceplugin => devicemanager. 2018-01-24 22:32:43 -08:00
Mike Danese
c89cb942cd serviceaccount: handle jwt flow specific validation in seperate validator struct 2018-01-24 20:40:54 -08:00
Mike Danese
057b7af798 serviceaccount: check token is issued by correct iss before verifying
Right now if a JWT for an unknown issuer, for any subject hits the
serviceaccount token authenticator, we return a errors as if the token
was meant for us but we couldn't find a key to verify it. We should
instead return nil, false, nil.

This change helps us support multiple service account token
authenticators with different issuers.
2018-01-24 20:21:59 -08:00
Kubernetes Submit Queue
e78949bd05 Merge pull request #54913 from chentao1596/kubelet-get-pods-from-path-unused-param
Automatic merge from submit-queue. 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>.

kubelet/get-pod-from-path: unused param should be removed

**What this PR does / why we need it**:

I'm sorry that i have not notice this PR has been closed because of the error of test. And, i found it can't reopen again,  so i open the other one, thank you!

https://github.com/kubernetes/kubernetes/pull/38184

I am so sorry for trouble with you, PTAL, thank you!
2018-01-24 20:13:13 -08:00
Jiangtian Li
071be11db5 Use GlobalMemoryStatusEx to get total physical memory on Windows node 2018-01-24 19:44:13 -08:00
Kubernetes Submit Queue
098cba3f14 Merge pull request #53250 from tianshapjq/testcase-util
Automatic merge from submit-queue. 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>.

testcase to pkg/kubelet/cadvisor/util.go

**What this PR does / why we need it**:
testcase to pkg/kubelet/cadvisor/util.go
2018-01-24 18:23:24 -08:00
Kubernetes Submit Queue
0b8f3a2240 Merge pull request #58185 from caesarxuchao/webhook-cluster-scoped-resources
Automatic merge from submit-queue. 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>.

Never let cluster-scoped resources skip webhooks

Fix #57964

This allows user write webhooks for cluster-scoped custom resources.

We still need to figure out how to selectively exempt cluster-scoped resources from webhooks to avoid bootstrapping deadlocks. For now, if a deadlock occurs, users can work around by first deleting the webhook configuration, then rebooting the webhook, then re-enabling the webhook configuration.

```release-note
Bug fix: webhooks now do not skip cluster-scoped resources

Action required: Before upgrading your Kubernetes clusters, double check if you had configured webhooks for cluster-scoped objects (e.g., nodes, persistentVolume), these webhooks will start to take effect. Delete/modify the configs if that's not desirable.
```
2018-01-24 17:41:18 -08:00
Di Xu
97ec47ba55 use containing API group when resolving shortname from discovery 2018-01-25 09:38:34 +08:00
Jonathan Basseri
e9a3815a6c Fix equivalence cache hash tests. 2018-01-24 17:15:42 -08:00
Jonathan Basseri
466a499fcb Move equivalence class hash code.
This moves the equivalence hashing code from
algorithm/predicates/utils.go to core/equivalence_cache.go.

In the process, making the hashing function and hashing function factory
both injectable dependencies is removed.
2018-01-24 17:15:42 -08:00
Jonathan Basseri
5ab4714520 Change equivalence hash function.
This changes the equivalence class hashing function to use as inputs all
the Pod fields which are read by FitPredicates. Before we used a
combination of OwnerReference and PersistentVolumeClaim info, which was
a close approximation. The new method ensures that hashing remains
correct regardless of controller behavior.

The PVCSet field can be removed from equivalencePod because it is
implicitly included in the Volume list.

Tests are now broken.
2018-01-24 17:15:42 -08:00
Jonathan Basseri
4ae7075e27 Add benchmark for equivalence hashing. 2018-01-24 17:15:42 -08:00
Jonathan Basseri
59f0a99909 Fix equiv. cache invalidation of Node condition.
Equivalence cache for CheckNodeConditionPred becomes invalid when
Node.Spec.Unschedulable changes. This can happen even if
Node.Status.Conditions does not change, so move the logic around.

This logic is covered by integration test
"test/integration/scheduler".TestUnschedulableNodes but equivalence
cache is currently skipped when test pods have no OwnerReference.
2018-01-24 17:07:52 -08:00
Kubernetes Submit Queue
29917f5e96 Merge pull request #58739 from jsafrane/fix-prebound-pvc-access
Automatic merge from submit-queue (batch tested with PRs 58661, 58764, 58368, 58739, 58773). 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>.

Don't bind PVs and PVCs with different access modes.

PVC pre-bound to a PV can bind to the PV only if it has correct access mode. Report an event if it does not and keep the PVC Pending.

++ minor refactoring of `syncClaim`, `isMisMatch` was declared too far away from place when it's used.

/sig storage
/assign @gnufied @rootfs 

```release-note
None
```
2018-01-24 16:38:42 -08:00
Kubernetes Submit Queue
876292f9ee Merge pull request #58368 from MrHohn/gce-externalLB-update-host
Automatic merge from submit-queue (batch tested with PRs 58661, 58764, 58368, 58739, 58773). 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>.

[GCE cloud provider] Ensure hosts are updated in EnsureLoadBalancer()

**What this PR does / why we need it**:
From https://github.com/kubernetes/kubernetes/issues/56527, the `EnsureLoadBalancer()` implementation in GCE external LB doesn't always update the hosts (nodes). This PR makes it to do so.

Previously, the only situation where `ensureExternalLoadBalancer()` will not update hosts is when hosts are updated but there is no other changes that trigger target pool update (for which we delete&recreate target pool and hence updates the hosts). So the main change here is detecting that condition and call `updateTargetPool()`.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #56527

**Special notes for your reviewer**:
Turned out it could be a small change, so I gave it a try.
/assign @nicksardo @bowei 

**Release note**:

```release-note
NONE
```
2018-01-24 16:38:39 -08:00
Kubernetes Submit Queue
f53c26a7fb Merge pull request #58661 from brendandburns/ut2
Automatic merge from submit-queue. 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>.

Add some more azure unit tests.

moar coverage!
2018-01-24 15:52:04 -08:00
Kubernetes Submit Queue
b40581c14e Merge pull request #58534 from dougm/vclib-tests
Automatic merge from submit-queue (batch tested with PRs 58756, 58758, 58725, 52799, 58534). 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>.

Add vSphere Cloud Provider vclib tests

**What this PR does / why we need it**:
Additional vSphere Cloud Provider functional tests against vcsim, providing more test coverage without having to run against a real vCenter instance.

Follow up to #55918

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:

**Special notes for your reviewer**:

This set of tests focuses on Datastore, Folder and VirtualMachine types.  A couple of TODOs depend on changes to vcsim, I will follow up on those.

**Release note**:

```release-note
NONE
```
2018-01-24 15:26:41 -08:00
Kubernetes Submit Queue
a7aa75a284 Merge pull request #52799 from php-coder/psp_selinux_categories
Automatic merge from submit-queue (batch tested with PRs 58756, 58758, 58725, 52799, 58534). 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>.

PSP: improve parsing and validation of SELinux levels

**What this PR does / why we need it**:
At this moment, when we're comparing SELinux levels of PSP and container, we compare them as strings. We don't take into account that categories in a level may be specified in a different order (for example, `s0:c0,c6` is the same as `s0:c6,c0`).

This PR improves handling of SELinux levels by doing logical comparison.

**Special notes for your reviewer**:
Here is the issue in OpenShift tracker from @pweil-: https://github.com/openshift/origin/issues/15627
Relate PR to fixing this in OpenShift: https://github.com/openshift/origin/pull/16432

**Release note**:
```release-note
NONE
```

PTAL @pweil- 
CC @simo5
2018-01-24 15:26:38 -08:00
Kubernetes Submit Queue
f6205ab82e Merge pull request #58725 from mikedanese/jwt0
Automatic merge from submit-queue (batch tested with PRs 58756, 58758, 58725, 52799, 58534). 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>.

serviceaccount: move service account token functionality to go-jose

This is a non-functional change that makes some of my later work easier.
2018-01-24 15:26:36 -08:00
Kubernetes Submit Queue
a5c46303a2 Merge pull request #57265 from brendandburns/svc-proxy
Automatic merge from submit-queue. 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>.

By default block service proxy to external IP addresses.

**What this PR does / why we need it**:
Currently, the Service Proxy on the APIServer allows unrestricted access to any IP address that the APIServer machine can reach. This is likely undesirable in many cases.

Update the service proxy so that it filters Endpoints to only those that have a TargetRef that matches a known Pod.

Fixes https://github.com/kubernetes/kubernetes/issues/58761

**Release note**:
```release-note
By default disable access to external IP addresses from the apiserver service proxy.
```
2018-01-24 13:15:10 -08:00
Andrew Garrett
20a682b643 Tag Security Group created for AWS ELB with same additional tags as ELB
Reuse the
service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags
annotation for these tags.

We think that this is a simpler and less intrusive approach than adding
a new annotation, and most users will want the same set of tags applied.

Signed-off-by: Brett Kochendorfer <brett.kochendorfer@gmail.com>
2018-01-24 20:16:45 +00:00
Kubernetes Submit Queue
4024b59844 Merge pull request #45442 from verb/pod-tshoot-1
Automatic merge from submit-queue. 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>.

Add a container type to the runtime manager's container status

**What this PR does / why we need it**:
This is Step 1 of the "Debug Containers" feature proposed in #35584 and is hidden behind a feature gate. Debug containers exist as container status with no associated spec, so this new runtime label allows the kubelet to treat containers differently without relying on spec.

**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: cc #27140

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```

**Integrating feedback**:
- [x] Remove Type field in favor of a help method

**Dependencies:**
- [x] #46261 Feature gate for Debug Containers
2018-01-24 11:48:49 -08:00
Kubernetes Submit Queue
32913ab0cd Merge pull request #58664 from hzxuzhonghu/code-gen
Automatic merge from submit-queue (batch tested with PRs 58259, 58664). 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>.

fix generator_for_scheme: remove blank new line

**What this PR does / why we need it**:

1. remove new blank line in `AddToScheme`
80e344644e/pkg/client/clientset_generated/internalclientset/fake/register.go (L81-L83)

2. remove new blank line in `Install`
3d69cea1e5/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/register.go (L44-L47)


**Special notes for your reviewer**:

the first commit changes the code generator for schema register.
c8c9ca77af 

**Release note**:

```release-note
NONE
```
2018-01-24 11:00:38 -08:00
Michael Taufen
6443b6f543 Removal of KubeletConfigFile feature gate: Step 1
This feature gate was redundant with the `--config` flag, which already
enables/disables loading Kubelet config from a file.

Since the gate guarded an alpha feature, removing it is not a violation
of our API guidelines.

Some stuff in `kubernetes/test-infra` currently sets the gate,
so removing will be a 3 step process:
1. This PR, which makes the gate a no-op.
2. Stop setting the gate in `kubernetes/test-infra`.
3. Completely remove the gate.
2018-01-24 10:19:15 -08:00
Slava Semushin
09333b3a5d selinux/mustrunas_test.go(TestMustRunAsValidate): add more test cases to improve code coverage. 2018-01-24 18:52:11 +01:00
Slava Semushin
26fb4ed5fc selinux/mustrunas_test.go(TestMustRunAsValidate): make PSP SeLinux options configurable. 2018-01-24 18:40:07 +01:00
Slava Semushin
3f261537b1 selinux/mustrunas_test.go(TestMustRunAsValidate): rename a member to make its meaning obvious. 2018-01-24 18:35:48 +01:00
Slava Semushin
2e55ffbbbf Update autogenerated files. 2018-01-24 18:33:25 +01:00
Slava Semushin
072214597c PSP: when comparing categories in SELinux levels, ignore its order. 2018-01-24 18:33:25 +01:00
Kubernetes Submit Queue
47d61ef472 Merge pull request #58418 from yujuhong/deprecate-rktnetes
Automatic merge from submit-queue. 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>.

Add deprecation warnings for rktnetes flags

**What this PR does / why we need it**:

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #53601

**Special notes for your reviewer**:

**Release note**:
```release-note
rktnetes has been deprecated in favor of rktlet. Please see https://github.com/kubernetes-incubator/rktlet for more information.
```
2018-01-24 08:54:49 -08:00
Jan Safranek
e46c886bf3 Add list of pods that use a volume to multiattach events
So users knows what pods are blocking a volume and can realize their error.
2018-01-24 13:22:03 +01:00
YuxiJin-tobeyjin
f6d3c21de4 add ut for kuberuntime-gc 2018-01-24 16:54:54 +08:00
Jan Safranek
691fec5e34 Don't bind PVs and PVCs with different access modes.
PVC pre-bound to a PV can bind to the PV only if it has correct access mode.
Report an event if it does not and keep the PVC Pending.
2018-01-24 09:48:38 +01:00
hzxuzhonghu
1f013b7dea run update code-gen 2018-01-24 16:45:23 +08:00
Kubernetes Submit Queue
2f4cca73af Merge pull request #57680 from hzxuzhonghu/volume-expand
Automatic merge from submit-queue. 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>.

process pvc watch deletion event miss in expand-controller

**What this PR does / why we need it**:

volume expand controller should also process exception case when watch deletion event missed as most controllers do.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-01-23 22:33:34 -08:00
Brendan Burns
dcb9b4b591 By default block service proxy to external IP addresses.
Service proxy uses redirects to Pods instead of direct access.
2018-01-24 04:13:15 +00:00
Mike Danese
33046de3cf move service account signing to using go-jose
also extract custom validation to seperate function
2018-01-23 17:40:08 -08:00
Kubernetes Submit Queue
35ed5338b1 Merge pull request #58393 from deads2k/agg-02-ga
Automatic merge from submit-queue (batch tested with PRs 54071, 58393). 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>.

promote aggregation API to v1

Finishing https://github.com/kubernetes/features/issues/263 as discussed in apimachinery

The API has been available since 1.6 and beta since 1.7.  Openshift has been using it for about a year and service catalog (@pmorie) and metrics server (@piosz @DirectXMan12) have both been using too.  The feature and the API have both been stable over that time.

@kubernetes/sig-api-machinery-api-reviews @kubernetes/api-approvers 

/assign lavalamp
/assign smarterclayton


```release-note
Promoting the apiregistration.k8s.io (aggregation) to GA
```
2018-01-23 16:41:33 -08:00
Kubernetes Submit Queue
cdf26b05a1 Merge pull request #58712 from bsalamat/fix_cache_filter
Automatic merge from submit-queue (batch tested with PRs 54242, 58522, 58704, 58708, 58712). 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>.

Add better event handling for deleted Pods

**What this PR does / why we need it**:
We have observed cases where scheduler cache has not been updated after Pod deletions. This PR makes the event handling logic more robust by adding logic to check for `cache.DeletedFinalStateUnknown` in our event handler filters.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
Stability: Make Pod delete event handling of scheduler more robust.
```

/sig scheduling
2018-01-23 15:29:49 -08:00
Kubernetes Submit Queue
1dae5f04d5 Merge pull request #58522 from jsafrane/fix-binding-error-messages
Automatic merge from submit-queue (batch tested with PRs 54242, 58522, 58704, 58708, 58712). 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>.

Clean up error messages for pre-bound PVCs.

When a PVC explicitly requests specific PV and the PV does not match, we should tell the user what exactly does not match.

From: `Volume's size is smaller than requested or volume's class does not match with claim`

To: `Cannot bind to requested volume "<volume name>": %s`, where `%s` is one of:
- `requested PV is too small`
- `storageClasseNames do not match`
- `incompatible volumeMode`
- `error checking volumeMode: api defaulting for volumeMode failed` (this should not ever happen)

/sig storage
@kubernetes/sig-storage-pr-reviews 

**Release note**:
```release-note
NONE
```
2018-01-23 15:29:41 -08:00
Brendan Burns
f28db5a897 Add some more azure unit tests. 2018-01-23 21:46:38 +00:00
Kubernetes Submit Queue
3cbb62b6bb Merge pull request #56206 from brancz/top-metrics-s
Automatic merge from submit-queue (batch tested with PRs 56206, 58525). 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>.

kubectl: Use metrics-server for kubectl top commands

**What this PR does / why we need it**:

This PR implements support for the kubectl top commands to use the metrics-server as an aggregated API, instead of requesting the metrics from heapster directly. If the `metrics.k8s.io` API is not served by the apiserver, then this still falls back to the previous behavior.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:

Fixes #55489

**Special notes for your reviewer**:

As utilizing heapster as well as the v1alpha1 version of the metrics API is discouraged, I intentionally implemented the support very separated, so that once it is decided, that support is entirely removed, this will make it easy.

**Release note**:

```release-note
Support metrics API in `kubectl top` commands.
```

/cc @kubernetes/sig-instrumentation-pr-reviews @DirectXMan12 @fgrzadkowski @piosz
2018-01-23 13:17:31 -08:00