Skip to content

Commit

Permalink
Merge pull request #1391 from mborsz/meta
Browse files Browse the repository at this point in the history
Migrate pod_nanny to fetch only nodes metadata.
  • Loading branch information
k8s-ci-robot authored Nov 8, 2018
2 parents c0a0080 + e62e7fe commit 260e9f6
Show file tree
Hide file tree
Showing 1,299 changed files with 326,260 additions and 33,243 deletions.
654 changes: 504 additions & 150 deletions addon-resizer/Godeps/Godeps.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion addon-resizer/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ PACKAGE = k8s.io/autoscaler/addon-resizer
REGISTRY = staging-k8s.gcr.io
IMGNAME = addon-resizer
IMAGE = $(REGISTRY)/$(IMGNAME)
TAG = 1.8.3
TAG = 1.8.4

# Rules for building the real image for deployment to gcr.io

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 2 additions & 22 deletions addon-resizer/nanny/apis/nannyconfig/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

45 changes: 17 additions & 28 deletions addon-resizer/nanny/kubernetes_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,12 @@ package nanny

import (
"fmt"
"time"

corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/wait"
"k8s.io/apimachinery/pkg/watch"
metav1beta1 "k8s.io/apimachinery/pkg/apis/meta/v1beta1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/cache"
scheme "k8s.io/client-go/kubernetes/scheme"
)

type kubernetesClient struct {
Expand All @@ -35,21 +32,25 @@ type kubernetesClient struct {
pod string
container string
clientset *kubernetes.Clientset
nodeStore cache.Store
reflector *cache.Reflector
}

func (k *kubernetesClient) CountNodes() (uint64, error) {
err := wait.PollImmediate(time.Second, time.Minute, func() (bool, error) {
if k.reflector.LastSyncResourceVersion() == "" {
return false, nil
}
return true, nil
})
if err != nil {
return 0, err
// Set ResourceVersion = 0 to use cached versions.
options := metav1.ListOptions{
ResourceVersion: "0",
}
return uint64(len(k.nodeStore.List())), nil
result := &metav1beta1.PartialObjectMetadataList{}
err := k.clientset.
Core().
RESTClient().
Get().
Resource("nodes").
// Set as=PartialObjectMetadataList to fetch only nodes metadata.
SetHeader("Accept", "application/vnd.kubernetes.protobuf;as=PartialObjectMetadataList;g=meta.k8s.io;v=v1beta1").
VersionedParams(&options, scheme.ParameterCodec).
Do().
Into(result)
return uint64(len(result.Items)), err
}

func (k *kubernetesClient) ContainerResources() (*corev1.ResourceRequirements, error) {
Expand Down Expand Up @@ -93,18 +94,6 @@ func NewKubernetesClient(namespace, deployment, pod, container string, clientset
pod: pod,
container: container,
clientset: clientset,
nodeStore: cache.NewStore(cache.MetaNamespaceKeyFunc),
}
// Start propagating contents of the nodeStore.
nodeListWatch := &cache.ListWatch{
ListFunc: func(options metav1.ListOptions) (runtime.Object, error) {
return clientset.Core().Nodes().List(options)
},
WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) {
return clientset.Core().Nodes().Watch(options)
},
}
result.reflector = cache.NewReflector(nodeListWatch, &corev1.Node{}, result.nodeStore, 0)
go result.reflector.Run(wait.NeverStop)
return result
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 260e9f6

Please sign in to comment.