1. 26 Jun, 2018 11 commits
    • Seth Jennings's avatar
      add sjenning to sig-node-reviewers · 6d5a818c
      Seth Jennings authored
      6d5a818c
    • Kubernetes Submit Queue's avatar
      Merge pull request #65460 from cofyc/issue64853 · ba7f798a
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 65342, 65460). 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>.
      
      Prepare local volumes via hostexec pod instead of SSH
      
      **What this PR does / why we need it**:
      
      Prepare local volumes via hostexec pod. SSH access may be removed in future.
      
      **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 #64853
      
      **Special notes for your reviewer**:
      
      For each test, launch a pod for each node to setup volumes when needed.
      It uses `nsenter` to enter into host mount namespace to run commands.
      
      Why using `nsenter` command:
      - migrate to use hostexec pod (baseimage: alpine:3.6) busybox `losetup` is hard
      - alpine does not contain mkfs.ext4 command
      - easier to setup local volumes (no need to mount /tmp, /mnt, /dev/, /sys directories)
      - only require hostexec pod contains `nsenter` command
      
      **Release note**:
      
      ```release-note
      NONE
      ```
      ba7f798a
    • Kubernetes Submit Queue's avatar
      Merge pull request #65342 from dashpole/npd_args · 2dbb9c86
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 65342, 65460). 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>.
      
      Update NPD config for GCI
      
      **What this PR does / why we need it**:
      Use https://github.com/kubernetes/node-problem-detector/pull/180 on GCI
      
      **Special notes for your reviewer**:
      This is currently pending an NPD release.
      
      **Release note**:
      ```release-note
      NONE
      ```
      /assign @Random-Liu 
      /sig node
      /kind feature
      /priority important-soon
      2dbb9c86
    • Kubernetes Submit Queue's avatar
      Merge pull request #65437 from losipiuk/lo/gpu-tests-from-env · 0d9c4325
      Kubernetes Submit Queue authored
      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>.
      
      Read gpu type from TESTED_GPU_TYPE env variable
      
      ```release-note
      NONE
      ```
      0d9c4325
    • Kubernetes Submit Queue's avatar
      Merge pull request #49410 from jasonbrooks/patch-1 · 76b4699c
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 65449, 65373, 49410). 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 kernel config locations for fedora and atomic
      
      **What this PR does / why we need it**:
      
      * Fedora stores its kernel configs in /usr/lib/modules/$(uname -r)/config
      * Fedora/CentOS/RHEL atomic hosts use /usr/lib/ostree-boot/$(uname -r), though this location is deprecated
      * The lack of these locations in the validator is causing kubeadm to hang on "failed to parse kernel config" in its preflight checking on fedora and atomic host
      
      **Special notes for your reviewer**:
      
      **Release note**:
      
      ```release-note
      ```
      76b4699c
    • Kubernetes Submit Queue's avatar
      Merge pull request #65373 from multi-io/openstack_lbaas_node_secgroup_fix · 3d694993
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 65449, 65373, 49410). 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>.
      
      OpenStack LBaaS fix: must use ID, not name, of the node security group
      
      This is a bugfix for the OpenStack LBaaS cloud provider security group management.
      
      A bit of context: When creating a load balancer for a given `type: LoadBalancer` service, the provider will try to:
      
      (see `pkg/cloudprovider/providers/openstack/openstack_loadbalancer.go`/`EnsureLoadBalancer`)
      
      1. create a load balancer (LB) in Openstack with listeners corresponding to the service's ports
      2. attach a floating IP to the LB's network port
      
      If `manage-security-groups` is enabled in controller-manager's cloud.conf:
      
      3. create a security group with ingress rules corresponding to the LB's listeners, and attach it to the LB's network port
      4. for all nodes of the cluster, pick an existing security group for the nodes ("node security group") and add ingress rules to it exposing the service's NodePorts to the security group created in step 3.
      
      In the current upstream master, steps 1 through 3 work fine, step 4 fails, leading to a service that's not accessible via the LB without further manual intervention.
      
      The bug is in the "pick an existing security group" operation (func `getNodeSecurityGroupIDForLB`), which, contrary to its name, will return the security group's name rather than its ID (actually it returns a list of names rather than IDs, apparently to cover some corner cases where you might have more than one node security group, but anyway). This will then be used when trying to add the ingress rules to the group, which the Openstack API will reject with a 404 (at least on our (fairly standard) Openstack Ocata installation) because we're giving it a name where it expects an ID.
      
      The PR adds a "get ID given a name" lookup to the `getNodeSecurityGroupIDForLB` function, so it actually returns IDs. That's it. I'm not sure if the upstream code wasn't really tested, or maybe other people use other Openstacks with more lenient APIs. The bug and the fix is always reproducible on our installation.
      
      **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 #58145
      
      
      **Special notes for your reviewer:**
      
      Should we turn `getNodeSecurityGroupIDForLB` into a method with the lbaas as its receiver because it now requires two of the lbaas's attributes? I'm not sure what the conventions are here, if any. 
      
      **Release note**:
      ```release-note
      NONE
      ```
      3d694993
    • Kubernetes Submit Queue's avatar
      Merge pull request #65449 from cblecker/run-in-gopath-symlink-fix · 0d31f90b
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 65449, 65373, 49410). 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 run-in-gopath issue with symlink'd gopath
      
      **What this PR does / why we need it**:
      Fixes `hack/update-bazel.sh` so that it can be run in a symlink'd GOPATH, (such as using `hack/run-in-gopath.sh`).
      
      **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 #65403.
      
      **Special notes for your reviewer**:
      
      **Release note**:
      ```release-note
      NONE
      ```
      0d31f90b
    • Yecheng Fu's avatar
      Prepare local volumes via hostexec pod. · 1fbc5bab
      Yecheng Fu authored
      1fbc5bab
    • Kubernetes Submit Queue's avatar
      Merge pull request #64812 from hzxuzhonghu/audit-useragent · 1f4f0123
      Kubernetes Submit Queue authored
      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 user-agent to audit-logging
      
      **What this PR does / why we need it**:
      
      Add User-Agent to audit event.
      
      **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 #64791
      
      **Special notes for your reviewer**:
      
      **Release note**:
      
      ```release-note
      Add user-agent to audit-logging.
      ```
      1f4f0123
    • Kubernetes Submit Queue's avatar
      Merge pull request #65330 from freehan/neg-rate-limit · 93055c77
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 59214, 65330). 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 rate limiting for NEG calls
      
      ```release-note
      None
      ```
      93055c77
    • Kubernetes Submit Queue's avatar
      Merge pull request #59214 from kdembler/cpumanager-checkpointing · 991a8475
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 59214, 65330). 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>.
      
      Migrate cpumanager to use checkpointing manager
      
      **What this PR does / why we need it**:
      This PR migrates `cpumanager` to use new kubelet level node checkpointing feature (#56040) to decrease code redundancy and improve consistency.
      
      **Which issue(s) this PR fixes**:
      Fixes #58339
      
      **Notes**:
      At point of submitting PR the most straightforward approach was used - `state_checkpoint` implementation of `State` interface was added. However, with checkpointing implementation there might be no point to keep `State` interface and just use single implementation with checkpoint backend and in case of different backend than filestore needed just supply `cpumanager` with custom `CheckpointManager` implementation.
      
      /kind feature
      /sig node
      cc @flyingcougar @ConnorDoyle
      991a8475
  2. 25 Jun, 2018 20 commits
  3. 24 Jun, 2018 6 commits
    • Kubernetes Submit Queue's avatar
      Merge pull request #65411 from nikhita/fix-publishing-bot-fakeclient · 7a9a30a4
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 63773, 65411). 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>.
      
      client-go/examples/fake-client: add doc.go to fix go build warnings
      
      The publishing bot is currently broken (https://github.com/kubernetes/kubernetes/issues/56876#issuecomment-399763681). This is due to the following error:
      
      ```
      [24 Jun 18 15:08 UTC]: Running smoke tests for branch master
      [24 Jun 18 15:08 UTC]: /bin/bash -xec "godep restore\ngo build ./...\ngo test $(go list ./... | grep -v /vendor/)\n"
      	+ godep restore
      	+ go build ./...
      	go build k8s.io/client-go/examples/fake-client: no non-test Go files in /go-workspace/src/k8s.io/client-go/examples/fake-client
      [24 Jun 18 15:09 UTC]: exit status 1
          	+ godep restore
          	+ go build ./...
          	go build k8s.io/client-go/examples/fake-client: no non-test Go files in /go-workspace/src/k8s.io/client-go/examples/fake-client
      
      [24 Jun 18 15:09 UTC]: exit status 1```
      ```
      
      The fakeclient package does not have any non-test go files. The test file was added in https://github.com/kubernetes/kubernetes/pull/65291 2 days ago.
      
      This causes `go build` to give a warning: `no non-test Go files in /go-workspace/src/k8s.io/client-go/examples/fake-client`, which breaks the publishing bot. This PR adds a dummy doc.go file in the package to avoid this warning and fix the publishing bot.
      
      **Release note**:
      
      ```release-note
      NONE
      ```
      7a9a30a4
    • Kubernetes Submit Queue's avatar
      Merge pull request #63773 from k82cn/rm_unused_var · f23ae617
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 63773, 65411). 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>.
      
      Removed unused vars.
      Signed-off-by: 's avatarDa K. Ma <klaus1982.cn@gmail.com>
      
      **Release note**:
      ```release-note
      None
      ```
      f23ae617
    • Nikhita Raghunath's avatar
      client-go/examples/fake-client: add doc.go to fix go build warnings · 764ae696
      Nikhita Raghunath authored
      The fakeclient package does not have any non-test go files. This
      causes `go build` to give a warning: `no non-test Go files in ...`.
      This also causes the publishing bot to fail.
      
      This PR adds a dummy doc.go file in the package to avoid this warning.
      764ae696
    • Kubernetes Submit Queue's avatar
      Merge pull request #65391 from smarterclayton/describe · ec37c0f6
      Kubernetes Submit Queue authored
      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>.
      
      When splitting `snake_case` words, omit the underscore
      
      While we require camelCase by convention for official APIs, CRDs may use
      `snake_case`, and the generic describer prints this as `Snake _ Case`.  We should print `Snake Case`
      
      Prow is impacted by this for the ProwJob CRD:
      
      ```
        Decoration _ Config:
          Gcs _ Configuration:
            Bucket:                    origin-ci-test
            Default _ Org:             openshift
            Default _ Repo:            origin
            Path _ Strategy:           single
          Gcs _ Credentials _ Secret:  gcs-publisher-credentials
      ```
      
      @kubernetes/sig-cli-pr-reviews
      
      ```release-note
      Using `kubectl describe` on CRDs that use underscores will be prettier.
      ```
      ec37c0f6
    • Kubernetes Submit Queue's avatar
      Merge pull request #65396 from bsalamat/sched_no_sort · f0311d82
      Kubernetes Submit Queue authored
      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>.
      
      Improve scheduler's performance by eliminating sorting of nodes by their score
      
      **What this PR does / why we need it**:
      Profiling scheduler, I noticed that scheduler spends a significant amount of time in sorting the nodes after we score them to find nodes with the highest score. Finding nodes with the highest score does not need sorting the array. This PR replaces the sort with a linear scan.
      
      Eliminating the sort results in over 10% improvement in throughput of the scheduler.
      
      Before (3 runs for 5000 nodes, scheduling 1000 pods in a cluster running 2000 pods):
      BenchmarkScheduling/5000Nodes/2000Pods-12         	    1000	  20682552 ns/op
      BenchmarkScheduling/5000Nodes/2000Pods-12         	    1000	  20464729 ns/op
      BenchmarkScheduling/5000Nodes/2000Pods-12         	    1000	  21188906 ns/op
      
      After:
      BenchmarkScheduling/5000Nodes/2000Pods-12         	    1000	  18485866 ns/op
      BenchmarkScheduling/5000Nodes/2000Pods-12         	    1000	  18457749 ns/op
      BenchmarkScheduling/5000Nodes/2000Pods-12         	    1000	  18418200 ns/op
      
      **Release note**:
      
      ```release-note
      Improve scheduler's performance by eliminating sorting of nodes by their score.
      ```
      f0311d82
    • Da K. Ma's avatar
      Removed unused vars. · 66d558df
      Da K. Ma authored
      Signed-off-by: 's avatarDa K. Ma <klaus1982.cn@gmail.com>
      66d558df
  4. 23 Jun, 2018 3 commits
    • Bobby (Babak) Salamat's avatar
    • Kubernetes Submit Queue's avatar
      Merge pull request #64995 from bsalamat/preempt_opt · 582b88c8
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 65388, 64995). 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 more conditions to the list of predicate failures that won't be resolved by preemption
      
      **What this PR does / why we need it**:
      Adds more conditions to the list of predicate failures that won't be resolved by preemption. This change can potentially improve performance of preemption by avoiding the nodes that won't be able to schedule the pending pod no matter how many other pods are removed from them.
      
      **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
      Add more conditions to the list of predicate failures that won't be resolved by preemption.
      ```
      
      /sig scheduling
      582b88c8
    • Kubernetes Submit Queue's avatar
      Merge pull request #65388 from DataDog/lbernail/fix-ipvs-from-host · 966c77c8
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 65388, 64995). 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>.
      
      Always create kubeClusterIPSet in ipvs proxier
      
      **What this PR does / why we need it**:
      This PR creates the kubeClusterIPSet ipset even if kube-proxy is started without masqueradeAll and clusterCIDR.
      This is necessary to masquerade traffic sent to a clusterIP from the host network namespace. The code to do so is actually already present here: https://github.com/kubernetes/kubernetes/blob/master/pkg/proxy/ipvs/proxier.go#L1220-L1244
      
      However the second else (neither masqueradeAll nor clusterCIDR are set) cannot be used because, before this PR, the initial test `if !proxier.ipsetList[kubeClusterIPSet].isEmpty()` can never return true when masqueradeAll and clusterCIDR are not set because kubeClusterIPSet is empty.
      
      **Which issue(s) this PR fixes** 
      Fixes #65158
      
      ```release-note
      Allow access to ClusterIP from the host network namespace when kube-proxy is started in IPVS mode without either masqueradeAll or clusterCIDR flags
      ```
      
      **Additional comment**
      Issue #65158 is closed because ClusterIP access from the host has already fixed in master, except for the case described here (no masquerade flag). More detail in the issue.
      966c77c8