1. 06 Jun, 2017 16 commits
  2. 05 Jun, 2017 24 commits
    • Kubernetes Submit Queue's avatar
      Merge pull request #46460 from sakshamsharma/location_transformer · f893cddf
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)
      
      Add configuration for encryption providers
      
      ## Additions
      
      Allows providing a configuration file (using flag `--experimental-encryption-provider-config`) to use the existing AEAD transformer (with multiple keys) by composing mutable transformer, prefix transformer (for parsing providerId), another prefix transformer (for parsing keyId), and AES-GCM transformers (one for each key). Multiple providers can be configured using the configuration file.
      
      Example configuration:
      ```
      kind: EncryptionConfig
      apiVersion: v1
      resources:
        - resources:
          - namespaces
          providers:
          - aes:
              keys:
              - name: key1
                secret: c2vjcmv0iglzihnly3vyzq==
              - name: key2
                secret: dghpcybpcybwyxnzd29yza==
          - identity: {}
      ```
      
      Need for configuration discussed in:
      #41939
      [Encryption](https://github.com/destijl/community/blob/3418b4e4c6358f5dc747a37b90a97bc792f159ee/contributors/design-proposals/encryption.md)
      
      **Pathway of a read/write request**:
      1. MutableTransformer
      2. PrefixTransformer reads the provider-id, and passes the request further if that matches.
      3. PrefixTransformer reads the key-id, and passes the request further if that matches.
      4. GCMTransformer tries decrypting and authenticating the cipher text in case of reads. Similarly for writes.
      
      ## Caveats
      1. To keep the command line parameter parsing independent of the individual transformer's configuration, we need to convert the configuration to an `interface{}` and manually parse it in the transformer. Suggestions on better ways to do this are welcome.
      
      2. Flags `--encryption-provider` and `--encrypt-resource` (both mentioned in [this document](https://github.com/destijl/community/blob/3418b4e4c6358f5dc747a37b90a97bc792f159ee/contributors/design-proposals/encryption.md) ) are not supported in this because they do not allow more than one provider, and the current format for the configuration file possibly supersedes their functionality.
      
      3. Currently, it can be tested by adding `--experimental-encryption-provider-config=config.yml` to `hack/local-up-cluster.sh` on line 511, and placing the above configuration in `config.yml` in the root project directory.
      
      Previous discussion on these changes:
      https://github.com/sakshamsharma/kubernetes/pull/1
      
      @jcbsmpsn @destijl @smarterclayton
      
      ## TODO
      1. Investigate if we need to store keys on disk (per [encryption.md](https://github.com/destijl/community/blob/3418b4e4c6358f5dc747a37b90a97bc792f159ee/contributors/design-proposals/encryption.md#option-1-simple-list-of-keys-on-disk))
      2. Look at [alpha flag conventions](https://github.com/kubernetes/kubernetes/blob/master/pkg/features/kube_features.go)
      3. Need to reserve `k8s:enc` prefix formally for encrypted data. Else find a better way to detect transformed data.
      f893cddf
    • Kubernetes Submit Queue's avatar
      Merge pull request #46820 from ixdy/bazel-kubeproxy-debian-iptables · 7fb75873
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)
      
      bazel: base kube-proxy image on debian-iptables instead of busybox + iptables
      
      **What this PR does / why we need it**: the bazel-built kube-proxy image currently uses a custom base image made up of scratch + busybox + iptables + a few dependencies, while the official kube-proxy image is based off of the debian-iptables image.
      
      This difference seems to cause some weird issues such as #46103, since the container layout doesn't look the same.
      
      **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #46103, probably?
      
      **Special notes for your reviewer**:
      
      **Release note**:
      
      ```release-note
      NONE
      ```
      
      /assign @mikedanese @spxtr @pipejakob 
      /cc @Q-Lee @thockin @cblecker
      7fb75873
    • Kubernetes Submit Queue's avatar
      Merge pull request #46816 from dashpole/update_godep · 39d548f4
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)
      
      Update cAdvisor version to v0.26.0
      
      issue: #46658
      
      I have requested a 1 day exception for code freeze.
      
      /assign @dchen1107 
      
      ```release-note
      Fix disk partition discovery for brtfs
      Add ZFS support
      Add overlay2 storage driver support
      ```
      39d548f4
    • Kubernetes Submit Queue's avatar
      Merge pull request #46663 from nicksardo/gce-internallb · 4faf7f1f
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 46550, 46663, 46816, 46820, 46460)
      
      [GCE] Support internal load balancers
      
      **What this PR does / why we need it**:
      Allows users to expose K8s services externally of the K8s cluster but within their GCP network. 
      
      Fixes #33483
      
      **Important User Notes:**
      - This is a beta feature. ILB could be enabled differently in the future. 
      - Requires nodes having version 1.7.0+ (ILB requires health checking and a health check endpoint on kube-proxy has just been exposed)
      - This cannot be used for intra-cluster communication. Do not call the load balancer IP from a K8s node/pod.  
      - There is no reservation system for private IPs. You can specify a RFC 1918 address in `loadBalancerIP` field, but it could be lost to another VM or LB if service settings are modified.
      - If you're running an ingress, your existing loadbalancer backend service must be using BalancingMode type `RATE` - not `UTILIZATION`. 
        - Option 1: With a 1.5.8+ or 1.6.4+ version master, delete all your ingresses, and re-create them.
        - Option 2: Migrate to a new cluster running 1.7.0. Considering ILB requires nodes with 1.7.0, this isn't a bad idea.
        - Option 3: Possible migration opportunity, but use at your own risk. More to come later.
      
      
      **Reviewer Notes**:
      Several files were renamed, so github thinks ~2k lines have changed. Review commits one-by-one to see the actual changes.
      
      **Release note**:
      ```release-note
      Support creation of GCP Internal Load Balancers from Service objects
      ```
      4faf7f1f
    • Fabiano Franz's avatar
      Update generated · 39e58128
      Fabiano Franz authored
      39e58128
    • Fabiano Franz's avatar
      058f9b4f
    • Fabiano Franz's avatar
      f07bf05f
    • Tim St. Clair's avatar
      Generate protobuf for the audit API · d7d54357
      Tim St. Clair authored
      d7d54357
    • Clayton Coleman's avatar
      Load initializers from dynamic config · 772ab8e1
      Clayton Coleman authored
      Handle failure cases on startup gracefully to avoid causing cascading
      errors and poor initialization in other components. Initial errors from
      config load cause the initializer to pause and hold requests. Return
      typed errors to better communicate failures to clients.
      
      Add code to handle two specific cases - admin wants to bypass
      initialization defaulting, and mirror pods (which want to bypass
      initialization because the kubelet owns their lifecycle).
      772ab8e1
    • Clayton Coleman's avatar
      Remove Initializers from federation · 034f06d7
      Clayton Coleman authored
      034f06d7
    • Kubernetes Submit Queue's avatar
      Merge pull request #46550 from DirectXMan12/feature/hpa-status-conditions · 7bbc615b
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue
      
      HPA Status Conditions
      
      This PR introduces conditions to the status of the HorizontalPodAutoscaler (in autoscaling/v2alpha1).  
      The conditions whether or not the autoscaler is actively scaling, and why.  This gives greater visibility
      into the *current* status of the autoscaler, similarly to how conditions work for pods, nodes, etc.
      
      `kubectl describe` has been updated to the display the conditions affecting a given HPA.
      
      Implements kubernetes/features#264 (alpha in 1.7)
      
      **Release note**:
      ```release-note
      Introduces status conditions to the HorizontalPodAutoscaler in autoscaling/v2alpha1, indicating the current status of a given HorizontalPodAutoscaler, and why it is or is not scaling.
      ```
      7bbc615b
    • Mike Danese's avatar
      save kubelet bootstrap certs on GCI · ab63017b
      Mike Danese authored
      ab63017b
    • Anirudh Ramanathan's avatar
      Merge pull request #46985 from deads2k/controller-09-agg-health · cc294cfb
      Anirudh Ramanathan authored
      make the health check wait for ready apiservices
      cc294cfb
    • Mike Danese's avatar
      promote tls-bootstrap to beta · cdcfa35c
      Mike Danese authored
      cdcfa35c
    • deads2k's avatar
      make the health check wait for ready apiservices · 0ad98c29
      deads2k authored
      0ad98c29
    • Ravi Gadde's avatar
      Added Bind method to Scheduler Extender · 7f179bf9
      Ravi Gadde authored
      - only one extender can support the bind method
      - if an extender supports bind, scheduler delegates the pod binding to the extender
      7f179bf9
    • Jordan Liggitt's avatar
    • Solly Ross's avatar
      Update generated autoscaling files · c8fdeb02
      Solly Ross authored
      This commit updates the generated autoscaling files to be up-to-date
      with the HPA status condition changes.
      c8fdeb02
    • Solly Ross's avatar
      Update kubectl to display HPA status conditions · 53dccdbb
      Solly Ross authored
      This commit updates `kubectl describe` to display the new HPA
      status conditions.  This should make it easier for users to discern
      the current state of the HPA.
      53dccdbb
    • Solly Ross's avatar
      Make HPA controller set HPA status conditions · 1334b81d
      Solly Ross authored
      This commit causes the HPA controller to set a variety of status
      conditions using the new `Status.Conditions` field of
      autoscaling/v2alpha1.  These provide insight into the current state
      of the HPA, and generally correspond to similar events being emitted.
      1334b81d
    • Solly Ross's avatar
      Add HPA status conditions to API types · 26ef38fe
      Solly Ross authored
      This commit adds the new API status conditions to the API types.
      The field exists as a field in autoscaling/v2alpha1, and is
      round-tripped through an annotation in autoscaling/v1.
      26ef38fe
    • deads2k's avatar
      deflake CRD watch tests · 04de3e67
      deads2k authored
      04de3e67
    • Kubernetes Submit Queue's avatar
      Merge pull request #46771 from n-marton/46770-permission-for-volume-binder · 0cff8393
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 46734, 46810, 46759, 46259, 46771)
      
      Added node to persistent-volume-binder clusterrole
      
      **What this PR does / why we need it**: Added missing permission to volume-binder clusterrole
      
      **Which issue this PR fixes**: fixes #46770
      
      **Special notes for your reviewer**: Non
      
      **Release note**: Non
      0cff8393
    • Kubernetes Submit Queue's avatar
      Merge pull request #46259 from Q-Lee/kube-proxy · 0cfef01a
      Kubernetes Submit Queue authored
      Automatic merge from submit-queue (batch tested with PRs 46734, 46810, 46759, 46259, 46771)
      
      Add iptables lock-file mount to kube-proxy manifest
      
      **What this PR does / why we need it**: kube-proxy is broken in make bazel-release. The new iptables binary uses a lockfile in "/run", but the directory doesn't exist. This causes iptables-restore to fail. We need to share the same lock-file amongst all containers, so mount the host /run dir.
      
      This is similar to #46132 but expediency matters, since builds are broken.
      
      **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes #46103
      
      **Special notes for your reviewer**:
      
      **Release note**:
      
      ```release-note
      ```
      0cfef01a