1. 26 Aug, 2016 15 commits
    • Kubernetes Submit Queue's avatar
      Merge pull request #31378 from yifan-gu/rkt_fetch_no_store · 9deb18b9
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      rkt: Force `rkt fetch` to fetch from remote to conform the image pull policy.
      
      Fix https://github.com/kubernetes/kubernetes/issues/27646
      
      Use `--no-store` option for `rkt fetch` to force it to fetch from remote.
      However, `--no-store` will fetch the remote image regardless of whether the content of the image has changed or not. 
      This causes performance downgrade when the image tag is ':latest' and the image pull policy is 'always'. 
      The issue is tracked in https://github.com/coreos/rkt/issues/2937.
      9deb18b9
    • Kubernetes Submit Queue's avatar
      Merge pull request #31172 from bprashanth/nginxe2e · a9754114
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Nginx ingress e2es
      
      Runs the basic ingress conformance suite: https://github.com/kubernetes/kubernetes/blob/master/test/e2e/ingress_utils.go#L85
      a9754114
    • Kubernetes Submit Queue's avatar
      Merge pull request #31383 from janetkuo/run-attach-err · f73c6844
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Print to stderr when attach failed
      
      @kubernetes/kubectl
      f73c6844
    • Kubernetes Submit Queue's avatar
      Merge pull request #31392 from MrHohn/push-kube-dns · d5033c27
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Build and push kube-dns for 1.4 release.
      
      Fix #31355.
      
      Following docker images had been uploaded:
      gcr.io/google_containers/kubedns-amd64:1.7
      gcr.io/google_containers/kubedns-arm:1.7
      gcr.io/google_containers/kubedns-arm64:1.7
      
      Build for ppc64le is disabled by default, and it failed to be built using:
      `KUBE_BUILD_PPC64LE=y make release`
      
      I'm still working on making the ppc64le build. Updates will be added following this thread.
      
      @girishkalele @thockin
      d5033c27
    • Kubernetes Submit Queue's avatar
      Merge pull request #31358 from screeley44/k8-get-pv · df99dfd0
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Add ReclaimPolicy to the resource printer for 'get pv'
      
      Propose we add the RECLAIMPOLICY (persistentVolumeReclaimPolicy) from resource_printer.go to show the policy when a user does a ```kubectl get pv```
      
      ```
      [root@k8dev nfs]# kubectl get pv
      NAME      CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS      CLAIM     REASON    AGE
      pv-nfs    1Gi        RWO           Retain          Available                       1m
      pv-nfs2   1Gi        RWO           Delete          Available                       4s
      
      ```
      df99dfd0
    • Kubernetes Submit Queue's avatar
      Merge pull request #30253 from AdoHe/fix_nodeport · 8705a41c
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Allow services which use same port, different protocol to use the same nodePort for both
      
      fix #20092
      
      @thockin @smarterclayton ptal.
      8705a41c
    • Kubernetes Submit Queue's avatar
      Merge pull request #31225 from pigmej/typos_englishify_pkg_apis · 0b523f74
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Fix various typos in pkg/apis
      
      Just fixed some typos + "englishify" some stuff in pkg/apis
      0b523f74
    • Kubernetes Submit Queue's avatar
      Merge pull request #30730 from janetkuo/prevent-overlapping-deployment · 1184800c
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Handle overlapping deployments gracefully
      
      Fixes #30028
      1184800c
    • Kubernetes Submit Queue's avatar
      Merge pull request #31064 from soundcloud/grobie/filter-internal-labels · feb4d200
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Filter internal Kubernetes labels from Prometheus metrics
      
      **What this PR does / why we need it**:
      
      Kubernetes uses Docker labels as storage for some internal labels. The
      majority of these labels are not meaningful metric labels and a few of
      them are even harmful as they're not static and cause wrong aggregation
      results.
      
      This change provides a custom labels func to only attach meaningful
      labels to cAdvisor exported metrics.
      
      **Which issue this PR fixes**
      
      google/cadvisor#1312
      
      **Special notes for your reviewer**:
      
      Depends on google/cadvisor#1429. Once that is merged, I'll update the vendor update commit.
      
      **Release note**:
      
      ```release-note
      Remove environment variables and internal Kubernetes Docker labels from cAdvisor Prometheus metric labels.
      
      Old behavior:
      
      - environment variables explicitly whitelisted via --docker-env-metadata-whitelist were exported as `container_env_*=*`. Default is zero so by default non were exported
      - all docker labels were exported as `container_label_*=*`
      
      New behavior:
      
      - Only `container_name`, `pod_name`, `namespace`, `id`, `image`, and `name` labels are exposed
      - no environment variables will be exposed ever via /metrics, even if whitelisted
      ```
      
      ---
      
      Given that we have full control over the exported label set, I shortened the pod_name, pod_namespace and container_name label names. Below an example of the change (reformatted for readability).
      
      ```
      # BEFORE
      container_cpu_cfs_periods_total{
        container_label_io_kubernetes_container_hash="5af8c3b4",
        container_label_io_kubernetes_container_name="sync",
        container_label_io_kubernetes_container_restartCount="1",
        container_label_io_kubernetes_container_terminationMessagePath="/dev/termination-log",
        container_label_io_kubernetes_pod_name="popularsearches-web-3165456836-2bfey",
        container_label_io_kubernetes_pod_namespace="popularsearches",
        container_label_io_kubernetes_pod_terminationGracePeriod="30",
        container_label_io_kubernetes_pod_uid="6a291e48-47c4-11e6-84a4-c81f66bdf8bd",
        id="/docker/68e1f15353921f4d6d4d998fa7293306c4ac828d04d1284e410ddaa75cf8cf25",
        image="redacted.com/popularsearches:42-16-ba6bd88",
        name="k8s_sync.5af8c3b4_popularsearches-web-3165456836-2bfey_popularsearches_6a291e48-47c4-11e6-84a4-c81f66bdf8bd_c02d3775"
      } 72819
      
      # AFTER
      container_cpu_cfs_periods_total{
        container_name="sync",
        pod_name="popularsearches-web-3165456836-2bfey",
        namespace="popularsearches",
        id="/docker/68e1f15353921f4d6d4d998fa7293306c4ac828d04d1284e410ddaa75cf8cf25",
        image="redacted.com/popularsearches:42-16-ba6bd88",
        name="k8s_sync.5af8c3b4_popularsearches-web-3165456836-2bfey_popularsearches_6a291e48-47c4-11e6-84a4-c81f66bdf8bd_c02d3775"
      } 72819
      ```
      
      Feedback requested on:
      * Label names. Other suggestions? Should we keep these very long ones?
      * Do we need to export io.kubernetes.pod.uid? It makes working with the metrics a bit more complicated and the pod name is already unique at any time (but not over time). The UID is aslo part of `name`.
      
      As discussed with @timstclair, this should be added to v1.4 as the current labels are harmful.
      
      PTAL @jimmidyson @fabxc @vishh
      feb4d200
    • Kubernetes Submit Queue's avatar
      Merge pull request #28717 from freehan/ebtable · d3ecad11
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Filter duplicate network packets in promiscuous bridge mode (with ebtables)
      
      also fixes: #30783
      d3ecad11
    • Kubernetes Submit Queue's avatar
      Merge pull request #31478 from david-mcmahon/fix-cache-gen · 3af6ad1c
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Fix the creation of the jobResultsCache.json file.
      
      Let's try this again.
      ref https://github.com/kubernetes/release/pull/60
      3af6ad1c
    • Kubernetes Submit Queue's avatar
      Merge pull request #30902 from krousey/version_metric · c70583ac
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Split the version metric out to its own package
      
      This PR breaks a client dependency on prometheus. Combined with #30638, the client will no longer depend on these packages.
      c70583ac
    • David McMahon's avatar
      55bfc885
    • Kubernetes Submit Queue's avatar
      Merge pull request #31466 from caesarxuchao/minor-doc · a3ccdfaa
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      minor client-go doc change
      
      I'll test is after https://github.com/kubernetes/k8s.io/pull/8 is merged.
      a3ccdfaa
    • Kubernetes Submit Queue's avatar
      Merge pull request #30931 from Clarifai/ext-svc-ref-dns · 36a6aee2
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Add ExternalName kube-dns e2e test
      
      ExternalName allows kubedns to return CNAME records for external
      services. No proxying is involved.
      
      Built on top of and includes #30599 
      
      See original issue at
      https://github.com/kubernetes/kubernetes/issues/13748
      
      Feature tracking at
      https://github.com/kubernetes/features/issues/33
      
      The e2e test is at least as comprehensive as the one for headless services (namely, only to some degree)
      
      ```release-note
      Add ExternalName services as CNAME references to external ones
      ```
      36a6aee2
  2. 25 Aug, 2016 25 commits
    • Kubernetes Submit Queue's avatar
      Merge pull request #31363 from rmmh/5day-update · 610a978e
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Get 5 days of test history when updating test owners.
      610a978e
    • Kubernetes Submit Queue's avatar
      Merge pull request #31390 from hongchaodeng/fix · 40efde7e
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      return destroy func to clean up internal resources of storage
      
      What?
      Provide a destroy func to clean up internal resources of storage.
      It changes **unit tests** to clean up resources. (Maybe fix integration test in another PR.)
      
      Why?
      Although apiserver is designed to be long running, there are some cases that it's not.
      See https://github.com/kubernetes/kubernetes/issues/31262#issuecomment-242208771
      We need to gracefully shutdown and clean up resources.
      40efde7e
    • AdoHe's avatar
      10440ed4
    • Chao Xu's avatar
      minor client-go doc change · 0c88db3f
      Chao Xu authored
      0c88db3f
    • Kubernetes Submit Queue's avatar
      Merge pull request #30551 from david-mcmahon/job-cache · a953eb42
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Construct a valid json file for the job cache.
      a953eb42
    • Kubernetes Submit Queue's avatar
      Merge pull request #31367 from Amey-D/gci-kubelet · f090fd15
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      gci: decouple from the built-in kubelet version
      
      Prior to this change, configure.sh would:
      (1) compare versions of built-in kubelet and downloaded kubelet, and
      (2) bind-mount downloaded kubelet at /usr/bin/kubelet in case of
      version mismatch
          
      With this change, configure.sh:
      (1) compares the two versions only on test clusters, and
      (2) uses the actual file paths to start kubelet w/o any bind-mounting
          
      To allow (2), this change also provides its own version of kubelet
      systemd service file.
          
      Effectively with this change we will always use the downloaded kubelet
      binary along with its own systemd service file on non-test clusters.  The
      main advantage is this change does not rely on the kubelet being built in to
      the OS image.
      
      @dchen1107 @wonderfly  can you please review
      
      cc/ @kubernetes/goog-image FYI
      f090fd15
    • Yifan Gu's avatar
    • Kubernetes Submit Queue's avatar
      Merge pull request #31445 from pmorie/goroutinemap-godoc · 75fba4c9
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Improve godoc for goroutinemap
      
      Improves the godoc of goroutinemap; found while preparing to use this type in another PR.
      
      @saad-ali
      75fba4c9
    • Kubernetes Submit Queue's avatar
      Merge pull request #31409 from Random-Liu/fix-verify-golint-sort-hint · a143cdd0
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Fix sort hint in `hack/verify-golint.sh`
      
      The `verify-golint.sh` sorts all items with `LANG=C sort`, but it only hints developers to use `sort`, which causes a little trouble for me.
      
      /cc @jfrazelle  @sttts
      a143cdd0
    • Kubernetes Submit Queue's avatar
      Merge pull request #30540 from Random-Liu/refactor-node-e2e-framework · 863dd10a
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Node Conformance Test: Refactor node e2e framework
      
      For #30122, #30174.
      Based on #30348.
      
      **Please only review the last 3 commits.**
      
      This PR is part of our roadmap to package node conformance test.
      The 1st commit is from #30348, it removed unnecessary dependencies in the node e2e test framework, because we've statically linked these dependencies.
      
      The PR refactored the node e2e framework. Moving different utilities into different packages under `pkg/`.
      
      We need to do this because:
      1) Files like e2e_remote.go and e2e_build.go should only be used by runner, but they were compiled into the test suite because they were placed in the same package. The worst thing is that it will introduce some never used flags in the test suite binary.
      2) Make the directory structure more clear. Only test should be placed in `test/e2e_node`, other utilities should be placed in different packages in `pkg/`.
      
      @dchen1107 @vishh 
      /cc @kubernetes/sig-node @kubernetes/sig-testing
      863dd10a
    • Kubernetes Submit Queue's avatar
      Merge pull request #29216 from mtaufen/kconf-refactor · df54a283
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Refactor to simplify the hard-traveled path of the KubeletConfiguration object
      
      ### There are two main goals of this PR:
      - Make `NewMainKubelet` take `KubeletConfiguration` and `KubeletDeps` as its only arguments.
      - Finally eliminate the legacy `KubeletConfig` type.
      
      ### Why am I doing this?
      Long story short, I started adding an endpoint to the Kubelet to display the *current* config that the Kubelet was running with, and I realized a few things:
      - There were so many transformations to the configuration, in so many different places, before it was used that I wasn't confident the values initially passed in on the `KubeletConfiguration` would be the correct values to report by the time someone used the endpoint to check on them.
      - Trying to reconstruct a `KubeletConfiguration` object from a mix of the `Kubelet` object and the legacy `KubeletConfig` object would just add to the mess (not to mention maintenance burden), and it would be much easier if we passed the `KubeletConfiguration` all the way down to where we construct the `Kubelet` object, and then just store a reference to the `KubeletConfiguration` object on the `Kubelet` for later retrieval. 
      - My hope is that by eliminating unnecessary internal transformations to the config information, and by consolidating the remaining ones in a single place (`NewMainKubelet`), we can have a much clearer understanding of what happens to the config before it makes it to the `Kubelet` object, and also a better ability to report up-to-date information on the status of the Kubelet. 
      
      So I started cleaning things up :-). 
      
      ### Discussion points
      
      It was relatively simple to get `NewMainKubelet` to just take the legacy `KubeletConfig` as its only argument, because most of its arguments were just passing through `KubeletConfig` fields or passing information that was generated solely from `KubeletConfig` fields.
      
      Completely eliminating the legacy `KubeletConfig` type has been more difficult, because the fields of the `KubeletConfiguration` do not have a one-to-one relationship with the fields of the `KubeletConfig`. While I was able to eliminate many of the `KubeletConfig` fields, I'm starting to get into the nontrivial stuff and I'd like to get a discussion started on what should happen with the remaining fields (pending cherry-picking notwithstanding). 
      
      On my `kconf-refactor` branch, the legacy `KubeletConfig` object is down to the following 27 fields (from the initial 93). I'd really appreciate any guidance people have on what should happen with these fields.
      ```
      type KubeletConfig struct {
      	Auth                    server.AuthInterface
      	AutoDetectCloudProvider bool
      	Builder                 KubeletBuilder
      	CAdvisorInterface       cadvisor.Interface
      	Cloud                   cloudprovider.Interface
      	ContainerManager        cm.ContainerManager
      	DockerClient            dockertools.DockerInterface
      	EventClient             *clientset.Clientset
      	Hostname                string
      	HostNetworkSources      []string
      	HostPIDSources          []string
      	HostIPCSources          []string
      	KubeClient              *clientset.Clientset
      	Mounter                 mount.Interface
      	NetworkPlugins          []network.NetworkPlugin
      	NodeName                string
      	OOMAdjuster             *oom.OOMAdjuster
      	OSInterface             kubecontainer.OSInterface
      	PodConfig               *config.PodConfig
      	Recorder                record.EventRecorder
      	Reservation             kubetypes.Reservation
      	TLSOptions              *server.TLSOptions
      	Writer                  kubeio.Writer
      	VolumePlugins           []volume.VolumePlugin
      	EvictionConfig          eviction.Config
      	ContainerRuntimeOptions []kubecontainer.Option
      	Options                 []Option
      }
      ```
      
      The patterns I've seen so far with respect to eliminating `KubeletConfig` fields may be of some help:
      - Some fields could just be eliminated, because they were either the same on `KubeletConfiguration` or just a typecast away from being the same. 
      - Some fields from `KubeletConfiguration` just ended up in substructures of `KubeletConfig`; it was easy to just remove those substructure fields from `KubeletConfig` and construct them using local vars in `NewMainKubelet` instead. 
      - Some fields, e.g. `Runonce`, were able to move into the `KubeletConfiguration`.
      
      
      **P.S.** Part of the way I'm making the transition is by adding an extra `KubeletConfiguration` argument to functions that originally took a `KubeletConfig`, and field-by-field, switching those functions over to using information from the `KubeletConfiguration`. Once the `KubeletConfig` is gone, I'll remove the `KubeletConfig` argument, and the transition will be complete.
      
      **Final note:**
      Please try to keep in mind that this is not a general Kubelet cleanup effort, it is just me cleaning things up that are directly in the path of what I'm trying to do. Let's keep this focused on cleanup related to the path that config takes on it's way to the Kubelet.
      
      
      **Release note**:
      <!--  Steps to write your release note:
      1. Use the release-note-* labels to set the release note state (if you have access) 
      2. Enter your extended release note in the below block; leaving it blank means using the PR title as the release note. If no release note is required, just write `NONE`. 
      -->
      ```
      Removed Flags
      - Removes the --auth-path flag. This has been deprecated in favor of --kubeconfig for two releases.
      ```
      df54a283
    • David McMahon's avatar
      Update CHANGELOG.md for v1.4.0-alpha.3. · 8f0109ea
      David McMahon authored
      8f0109ea
    • Kubernetes Submit Queue's avatar
      Merge pull request #31426 from mwielgus/ns-e2e-fix3 · 20e078fd
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Use deleteTimestamp in federated ns e2e tests
      
      Fixes: #31317
      20e078fd
    • Kubernetes Submit Queue's avatar
      Merge pull request #31354 from janetkuo/sj-replace-e2e · a4665cff
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Update sj on UpdateStatus return value
      
      Fixes #30542, #30549
      
      cc @erictune
      a4665cff
    • Paul Morie's avatar
      Improve godoc for goroutinemap · 12942674
      Paul Morie authored
      12942674
    • Kubernetes Submit Queue's avatar
      Merge pull request #30738 from caesarxuchao/copy-keep-vendor · d836b248
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Keep vendor/ and Godep/ when creating the staging client, add a readme
      
      In copy.sh, instead of removing the vendor/, moving it to _vendor. vendor/ is needed when we publish the staging client to its own repository.
      d836b248
    • Kubernetes Submit Queue's avatar
      Merge pull request #31396 from foxish/integer-overflow · c63cd8fc
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Fixed integer overflow bug in rate limiter.
      
      ```release-note
      Fix overflow issue in controller-manager rate limiter
      ```
      
      This PR fixes a bug in the delayed work-queue used by some controllers.
      The integer overflow bug would previously cause hotlooping behavior after a few failures 
      as `time.Duration(..)` on values larger than MaxInt64 behaves unpredictably, and 
      after a certain value returns 0 always.
      
      cc @bprashanth @pwittrock
      c63cd8fc
    • Michael Taufen's avatar
      Remove the deprecated AuthPath from KubeletServer · 7ae1458a
      Michael Taufen authored
      It has been deprecated for two releases (1.2 and 1.3).
      7ae1458a
    • Michael Taufen's avatar
    • Michael Taufen's avatar
      Kubelet Refactoring · f277205f
      Michael Taufen authored
      This refactor removes the legacy KubeletConfig object and adds a new
      KubeletDeps object, which contains injected runtime objects and
      separates them from static config. It also reduces NewMainKubelet to two
      arguments: a KubeletConfiguration and a KubeletDeps.
      
      Some mesos and kubemark code was affected by this change, and has been
      modified accordingly.
      
      And a few final notes:
      
      KubeletDeps:
      KubeletDeps will be a temporary bin for things we might consider
      "injected dependencies", until we have a better dependency injection
      story for the Kubelet. We will have to discuss this eventually.
      
      RunOnce:
      We will likely not pull new KubeletConfiguration from the API server
      when in runonce mode, so it doesn't make sense to make this something
      that can be configured centrally. We will leave it as a flag-only option
      for now. Additionally, it is increasingly looking like nobody actually uses the
      Kubelet's runonce mode anymore, so it may be a candidate for deprecation
      and removal.
      f277205f
    • Marcin Wielgus's avatar
      e67c6a75
    • Kubernetes Submit Queue's avatar
      Merge pull request #31248 from wojtek-t/better_selectable_fields · b44b7169
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Avoid unnecessary copies & allocations in field selectors
      b44b7169
    • Hongchao Deng's avatar
    • Kubernetes Submit Queue's avatar
      Merge pull request #31430 from mwielgus/ca-0.3.0-b3 · fff95275
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Bump cluster autoscaler to 0.3.0-beta3
      
      cc: @piosz @fgrzadkowski @jszczepkowski
      fff95275
    • Kubernetes Submit Queue's avatar
      Merge pull request #31122 from deads2k/add-quota-test · 785e9f24
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      add quota test for creating update requests
      
      Adding a kube test for https://github.com/kubernetes/kubernetes/pull/30907 as requested in https://github.com/kubernetes/kubernetes/pull/30907#issuecomment-241139913 .
      785e9f24