1. 29 Oct, 2016 20 commits
    • Kubernetes Submit Queue's avatar
      Merge pull request #33250 from ymqytw/edit_before_create · 739f78fa
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      support editing before creating resource
      
      Support `kubectl create -f config.yaml --edit`
      Support editing before creating resource from files, urls and stdin.
      The behavior is similar to `kubectl edit`
      It won't create anything when edit make no change.
      
      partial: #18064
      
      Based on: #33686 and #33973
      
      ```release-note
      Support editing before creating resource from files, urls and stdin, e.g. `kubectl create -f config.yaml --edit`
      It won't create anything when edit make no change.
      ```
      739f78fa
    • Kubernetes Submit Queue's avatar
      Merge pull request #35230 from deads2k/controller-12-sa-controller · 620788a7
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      convert SA controller to shared informers
      
      convert the SA controller to shared informer + workqueue.
      
      I think one of @derekwaynecarr @ncdc or @liggitt
      620788a7
    • Kubernetes Submit Queue's avatar
      Merge pull request #35661 from timstclair/dockershim · f099403e
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Implement streaming CRI methods in dockershim
      
      *NOTE: Temporarily includes commit from https://github.com/kubernetes/kubernetes/pull/35330 - only review the second commit.*
      
      Builds on https://github.com/kubernetes/kubernetes/pull/35330, using the library to implement the streaming methods in various CRI shims.
      
      This does not actually wire up the new streaming methods in the kubelet (that will be my next PR). Once the new methods are wired up, I will delete the `Legacy{Exec,Attach,PortForward}` methods.
      
      /cc @kubernetes/sig-node @feiskyer
      f099403e
    • Kubernetes Submit Queue's avatar
      Merge pull request #35785 from piosz/clientset · 17e41561
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Removed 1.3 clientset
      
      needed for #35782
      17e41561
    • Kubernetes Submit Queue's avatar
      Merge pull request #35452 from deads2k/auth-02-front-proxy · 4ec036c8
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      allow authentication through a front-proxy
      
      This allows a front proxy to set a request header and have that be a valid `user.Info` in the authentication chain.  To secure this power, a client certificate may be used to confirm the identity of the front proxy
      
      @kubernetes/sig-auth fyi
      @erictune per-request
      @liggitt you wrote the openshift one, ptal.
      4ec036c8
    • Kubernetes Submit Queue's avatar
      Merge pull request #35687 from shashidharatd/federation-ci2 · bb9e3d33
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Fix federation-apiserver authentication e2e tests
      
      **What this PR does / why we need it**: Fixes couple of federation e2e tests
      
      **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # partly fixes #35251
      bb9e3d33
    • Kubernetes Submit Queue's avatar
      Merge pull request #35593 from madhusudancs/federation-kubefed-init-certutil-triple · 962a1525
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Implement package `triple` with utilities to generate certificate-key pairs for CA, server and clients.
      
      Please review only the last commit here. This is based on PRs #35592 which will be reviewed independently.
      
      Design Doc: PR #34484
      
      cc @kubernetes/sig-cluster-federation @quinton-hoole @mwielgus
      962a1525
    • Kubernetes Submit Queue's avatar
      Merge pull request #35708 from wojtek-t/rename_test_etcd_version · 569da522
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Rename TEST_ETCD_VERSION to ETCD_VERSION
      
      Ref #20504
      569da522
    • Kubernetes Submit Queue's avatar
      Merge pull request #35694 from wojtek-t/update_etcd_3_0_13 · bb992150
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Update Godeps etcd to 3.0.13
      
      Ref #20504
      bb992150
    • Kubernetes Submit Queue's avatar
      Merge pull request #35798 from bprashanth/ing_test · 0e46a5b2
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Clean up static-ip in e2e
      
      I dropped this line: https://github.com/kubernetes/kubernetes/pull/35331/files#diff-5997d488011ead8354bdddfceaf1515dL595, in a previous refactor https://github.com/kubernetes/kubernetes/pull/35331, so we started leaking static ips. This commit adds it back in, along with some debug info if it happens again. Marking p2 since test is currently leaking.
      0e46a5b2
    • Kubernetes Submit Queue's avatar
      Merge pull request #34651 from smarterclayton/negotiate · 9a219eb8
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Simplify negotiation in server in preparation for multi version support
      
      This is a pre-factor for #33900 to simplify runtime.NegotiatedSerializer, tighten up a few abstractions that may break when clients can request different client versions, and pave the way for better negotiation.
      
      View this as pure simplification.
      9a219eb8
    • Kubernetes Submit Queue's avatar
      Merge pull request #35581 from foxish/fix-network-partition-e2e · f196c403
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Fixing e2e tests which rely on network disruptions
      
      **What this PR does / why we need it**: It fixes e2e tests  on network disruptions
      
      **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes https://github.com/kubernetes/kubernetes/issues/27324, https://github.com/kubernetes/kubernetes/issues/35293
      
      https://github.com/kubernetes/kubernetes/pull/33655 changed the kubelet's `--api-server` flag to use the external IP address of the APIServer in GCE. Hence, the iptables rules were failing previously. We now return the external IP for `getMaster()`. This fix is required in order to write e2e tests which test behavior in the face of network disruptions.
      
      /cc @bprashanth @dchen1107 @kubernetes/sig-apps
      f196c403
    • Kubernetes Submit Queue's avatar
      Merge pull request #35319 from vishh/gci-startup · 9b021a97
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      On GCI, cleanup kubelet startup
      
      -->
      ```release-note
      * Avoid overriding system and kubelet cgroups on GCI
      * Make the kubectl from k8s release the default on GCI
      ```
      
      cc @kubernetes/sig-node @mtaufen
      9b021a97
    • Kubernetes Submit Queue's avatar
      Merge pull request #35560 from jingxu97/Oct/pd-tests · 2f4cdd3f
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Add a retry when reading a file content from a container
      
      To avoid temporal failure in reading the file content, add a retry
      process in function verifyPDContentsViaContainer
      2f4cdd3f
    • Kubernetes Submit Queue's avatar
      Merge pull request #35817 from luxas/fix_crossbuild · 5eefdb92
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Fix cadvisor_unsupported and the crossbuild
      
      Resolves a bug in the `cadvisor_unsupported.go` code.
      Fixes https://github.com/kubernetes/kubernetes/issues/35735
      
      Introduced by: https://github.com/kubernetes/kubernetes/pull/35136
      We should consider to cherrypick this as #35136 also was cherrypicked
      
      cc @kubernetes/sig-testing @vishh @dashpole @jessfraz
      
      ```release-note
      Fix cadvisor_unsupported and the crossbuild
      ```
      5eefdb92
    • Kubernetes Submit Queue's avatar
      Merge pull request #31652 from intelsdi-x/poc-opaque-int-resources · 58457daf
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      [PHASE 1] Opaque integer resource accounting.
      
      ## [PHASE 1] Opaque integer resource accounting.
      
      This change provides a simple way to advertise some amount of arbitrary countable resource for a node in a Kubernetes cluster. Users can consume these resources by including them in pod specs, and the scheduler takes them into account when placing pods on nodes. See the example at the bottom of the PR description for more info.
      
      Summary of changes:
      
      - Defines opaque integer resources as any resource with prefix `pod.alpha.kubernetes.io/opaque-int-resource-`.
      - Prevent kubelet from overwriting capacity.
      - Handle opaque resources in scheduler.
      - Validate integer-ness of opaque int quantities in API server.
      - Tests for above.
      
      Feature issue: https://github.com/kubernetes/features/issues/76
      
      Design: http://goo.gl/IoKYP1
      
      Issues:
      
      kubernetes/kubernetes#28312
      kubernetes/kubernetes#19082
      
      Related:
      
      kubernetes/kubernetes#19080
      
      CC @davidopp @timothysc @balajismaniam 
      
      **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`. 
      -->
      ```release-note
      Added support for accounting opaque integer resources.
      
      Allows cluster operators to advertise new node-level resources that would be
      otherwise unknown to Kubernetes. Users can consume these resources in pod
      specs just like CPU and memory. The scheduler takes care of the resource
      accounting so that no more than the available amount is simultaneously
      allocated to pods.
      ```
      
      ## Usage example
      
      ```sh
      $ echo '[{"op": "add", "path": "pod.alpha.kubernetes.io~1opaque-int-resource-bananas", "value": "555"}]' | \
      > http PATCH http://localhost:8080/api/v1/nodes/localhost.localdomain/status \
      > Content-Type:application/json-patch+json
      ```
      
      ```http
      HTTP/1.1 200 OK
      Content-Type: application/json
      Date: Thu, 11 Aug 2016 16:44:55 GMT
      Transfer-Encoding: chunked
      
      {
          "apiVersion": "v1",
          "kind": "Node",
          "metadata": {
              "annotations": {
                  "volumes.kubernetes.io/controller-managed-attach-detach": "true"
              },
              "creationTimestamp": "2016-07-12T04:07:43Z",
              "labels": {
                  "beta.kubernetes.io/arch": "amd64",
                  "beta.kubernetes.io/os": "linux",
                  "kubernetes.io/hostname": "localhost.localdomain"
              },
              "name": "localhost.localdomain",
              "resourceVersion": "12837",
              "selfLink": "/api/v1/nodes/localhost.localdomain/status",
              "uid": "2ee9ea1c-47e6-11e6-9fb4-525400659b2e"
          },
          "spec": {
              "externalID": "localhost.localdomain"
          },
          "status": {
              "addresses": [
                  {
                      "address": "10.0.2.15",
                      "type": "LegacyHostIP"
                  },
                  {
                      "address": "10.0.2.15",
                      "type": "InternalIP"
                  }
              ],
              "allocatable": {
                  "alpha.kubernetes.io/nvidia-gpu": "0",
                  "cpu": "2",
                  "memory": "8175808Ki",
                  "pods": "110"
              },
              "capacity": {
                  "alpha.kubernetes.io/nvidia-gpu": "0",
                  "pod.alpha.kubernetes.io/opaque-int-resource-bananas": "555",
                  "cpu": "2",
                  "memory": "8175808Ki",
                  "pods": "110"
              },
              "conditions": [
                  {
                      "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                      "lastTransitionTime": "2016-07-12T04:07:43Z",
                      "message": "kubelet has sufficient disk space available",
                      "reason": "KubeletHasSufficientDisk",
                      "status": "False",
                      "type": "OutOfDisk"
                  },
                  {
                      "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                      "lastTransitionTime": "2016-07-12T04:07:43Z",
                      "message": "kubelet has sufficient memory available",
                      "reason": "KubeletHasSufficientMemory",
                      "status": "False",
                      "type": "MemoryPressure"
                  },
                  {
                      "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                      "lastTransitionTime": "2016-08-10T06:27:11Z",
                      "message": "kubelet is posting ready status",
                      "reason": "KubeletReady",
                      "status": "True",
                      "type": "Ready"
                  },
                  {
                      "lastHeartbeatTime": "2016-08-11T16:44:47Z",
                      "lastTransitionTime": "2016-08-10T06:27:01Z",
                      "message": "kubelet has no disk pressure",
                      "reason": "KubeletHasNoDiskPressure",
                      "status": "False",
                      "type": "DiskPressure"
                  }
              ],
              "daemonEndpoints": {
                  "kubeletEndpoint": {
                      "Port": 10250
                  }
              },
              "images": [],
              "nodeInfo": {
                  "architecture": "amd64",
                  "bootID": "1f7e95ca-a4c2-490e-8ca2-6621ae1eb5f0",
                  "containerRuntimeVersion": "docker://1.10.3",
                  "kernelVersion": "4.5.7-202.fc23.x86_64",
                  "kubeProxyVersion": "v1.3.0-alpha.4.4285+7e4b86c96110d3-dirty",
                  "kubeletVersion": "v1.3.0-alpha.4.4285+7e4b86c96110d3-dirty",
                  "machineID": "cac4063395254bc89d06af5d05322453",
                  "operatingSystem": "linux",
                  "osImage": "Fedora 23 (Cloud Edition)",
                  "systemUUID": "D6EE0782-5DEB-4465-B35D-E54190C5EE96"
              }
          }
      }
      ```
      
      After patching, the kubelet's next sync fills in allocatable:
      
      ```
      $ kubectl get node localhost.localdomain -o json | jq .status.allocatable
      ```
      
      ```json
      {
        "alpha.kubernetes.io/nvidia-gpu": "0",
        "pod.alpha.kubernetes.io/opaque-int-resource-bananas": "555",
        "cpu": "2",
        "memory": "8175808Ki",
        "pods": "110"
      }
      ```
      
      Create two pods, one that needs a single banana and another that needs a truck load:
      
      ```
      $ kubectl create -f chimp.yaml
      $ kubectl create -f superchimp.yaml
      ```
      
      Inspect the scheduler result and pod status:
      
      ```
      $ kubectl describe pods chimp
      Name:           chimp
      Namespace:      default
      Node:           localhost.localdomain/10.0.2.15
      Start Time:     Thu, 11 Aug 2016 19:58:46 +0000
      Labels:         <none>
      Status:         Running
      IP:             172.17.0.2
      Controllers:    <none>
      Containers:
        nginx:
          Container ID:       docker://46ff268f2f9217c59cc49f97cc4f0f085d5ac0e251f508cc08938601117c0cec
          Image:              nginx:1.10
          Image ID:           docker://sha256:82e97a2b0390a20107ab1310dea17f539ff6034438099384998fd91fc540b128
          Port:               80/TCP
          Limits:
            cpu:                                      500m
            memory:                                   64Mi
            pod.alpha.kubernetes.io/opaque-int-resource-bananas:   3
          Requests:
            cpu:                                      250m
            memory:                                   32Mi
            pod.alpha.kubernetes.io/opaque-int-resource-bananas:   1
          State:                                      Running
            Started:                                  Thu, 11 Aug 2016 19:58:51 +0000
          Ready:                                      True
          Restart Count:                              0
          Volume Mounts:                              <none>
          Environment Variables:                      <none>
      Conditions:
        Type          Status
        Initialized   True 
        Ready         True 
        PodScheduled  True 
      No volumes.
      QoS Class:      Burstable
      Events:
        FirstSeen     LastSeen        Count   From                            SubobjectPath           Type            Reason                  Message
        ---------     --------        -----   ----                            -------------           --------        ------                  -------
        9m            9m              1       {default-scheduler }                                    Normal          Scheduled               Successfully assigned chimp to localhost.localdomain
        9m            9m              2       {kubelet localhost.localdomain}                         Warning         MissingClusterDNS       kubelet does not have ClusterDNS IP configured and cannot create Pod using "ClusterFirst" policy. Falling back to DNSDefault policy.
        9m            9m              1       {kubelet localhost.localdomain} spec.containers{nginx}  Normal          Pulled                  Container image "nginx:1.10" already present on machine
        9m            9m              1       {kubelet localhost.localdomain} spec.containers{nginx}  Normal          Created                 Created container with docker id 46ff268f2f92
        9m            9m              1       {kubelet localhost.localdomain} spec.containers{nginx}  Normal          Started                 Started container with docker id 46ff268f2f92
      ```
      
      ```
      $ kubectl describe pods superchimp
      Name:           superchimp
      Namespace:      default
      Node:           /
      Labels:         <none>
      Status:         Pending
      IP:
      Controllers:    <none>
      Containers:
        nginx:
          Image:      nginx:1.10
          Port:       80/TCP
          Requests:
            cpu:                                      250m
            memory:                                   32Mi
            pod.alpha.kubernetes.io/opaque-int-resource-bananas:   10Ki
          Volume Mounts:                              <none>
          Environment Variables:                      <none>
      Conditions:
        Type          Status
        PodScheduled  False 
      No volumes.
      QoS Class:      Burstable
      Events:
        FirstSeen     LastSeen        Count   From                    SubobjectPath   Type            Reason                  Message
        ---------     --------        -----   ----                    -------------   --------        ------                  -------
        3m            1s              15      {default-scheduler }                    Warning         FailedScheduling        pod (superchimp) failed to fit in any node
      fit failure on node (localhost.localdomain): Insufficient pod.alpha.kubernetes.io/opaque-int-resource-bananas
      ```
      58457daf
    • Anirudh Ramanathan's avatar
      Merge pull request #35828 from timstclair/summary-test · 2efdd9ed
      Anirudh Ramanathan authored
      Increase sys container usageBytes upper bound
      2efdd9ed
    • Kubernetes Submit Queue's avatar
      Merge pull request #35819 from vishh/gci-mounter-update · beda882d
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Add netbase package to gci mounter container image
      
      cc @rootfs @jingxu97
      beda882d
    • Jess Frazelle's avatar
      Update CHANGELOG.md for v1.4.5. · b610a558
      Jess Frazelle authored
      b610a558
    • Kubernetes Submit Queue's avatar
      Merge pull request #34859 from jingxu97/syncAttach-10-15 · 3e7172d4
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      Add sync state loop in master's volume reconciler
      
      At master volume reconciler, the information about which volumes are
      attached to nodes is cached in actual state of world. However, this
      information might be out of date in case that node is terminated (volume
      is detached automatically). In this situation, reconciler assume volume
      is still attached and will not issue attach operation when node comes
      back. Pods created on those nodes will fail to mount.
      This PR adds the logic to periodically sync up the truth for attached
      volumes kept in
      the actual state cache. If the volume is no longer attached to the node,
      the actual state will be updated to reflect the truth. In turn,
      reconciler will take actions if needed.
      To avoid issuing many concurrent operations on cloud provider, this PR
      tries to add batch operation to check whether a list of volumes are
      attached to the node instead of one request per volume.
      3e7172d4
  2. 28 Oct, 2016 20 commits