Commit 36065c6d authored by Xiang Dai's avatar Xiang Dai

delete all duplicate empty blanks

Signed-off-by: 's avatarXiang Dai <764524258@qq.com>
parent b77e4e24
...@@ -5,7 +5,7 @@ labels: triage/support ...@@ -5,7 +5,7 @@ labels: triage/support
--- ---
<!-- <!--
STOP -- PLEASE READ! STOP -- PLEASE READ!
GitHub is not the right place for support requests. GitHub is not the right place for support requests.
......
...@@ -24,7 +24,7 @@ https://git.k8s.io/community/contributors/devel/release.md#issue-kind-label ...@@ -24,7 +24,7 @@ https://git.k8s.io/community/contributors/devel/release.md#issue-kind-label
**What this PR does / why we need it**: **What this PR does / why we need it**:
**Which issue(s) this PR fixes**: **Which issue(s) this PR fixes**:
<!-- <!--
*Automatically closes linked issue when PR is merged. *Automatically closes linked issue when PR is merged.
Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`. Usage: `Fixes #<issue number>`, or `Fixes (paste link of issue)`.
_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_* _If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*
...@@ -34,7 +34,7 @@ Fixes # ...@@ -34,7 +34,7 @@ Fixes #
**Special notes for your reviewer**: **Special notes for your reviewer**:
**Does this PR introduce a user-facing change?**: **Does this PR introduce a user-facing change?**:
<!-- <!--
If no, just write "NONE" in the release-note block below. If no, just write "NONE" in the release-note block below.
If yes, a release note is required: If yes, a release note is required:
Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required". Enter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string "action required".
......
...@@ -650,7 +650,7 @@ filename | sha256 hash ...@@ -650,7 +650,7 @@ filename | sha256 hash
* Fix creation of custom resources when the CRD contains non-conventional pluralization and subresources ([#66249](https://github.com/kubernetes/kubernetes/pull/66249), [@deads2k](https://github.com/deads2k)) * Fix creation of custom resources when the CRD contains non-conventional pluralization and subresources ([#66249](https://github.com/kubernetes/kubernetes/pull/66249), [@deads2k](https://github.com/deads2k))
* Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm)) * Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm))
* Also updates dependencies of users of debian-base. * Also updates dependencies of users of debian-base.
* debian-base version 0.3.1 is already available. * debian-base version 0.3.1 is already available.
* Fix an issue that pods using hostNetwork keep increasing. ([#67456](https://github.com/kubernetes/kubernetes/pull/67456), [@Huang-Wei](https://github.com/Huang-Wei)) * Fix an issue that pods using hostNetwork keep increasing. ([#67456](https://github.com/kubernetes/kubernetes/pull/67456), [@Huang-Wei](https://github.com/Huang-Wei))
* Allows extension API server to dynamically discover the requestheader CA certificate when the core API server doesn't use certificate based authentication for it's clients ([#66394](https://github.com/kubernetes/kubernetes/pull/66394), [@rtripat](https://github.com/rtripat)) * Allows extension API server to dynamically discover the requestheader CA certificate when the core API server doesn't use certificate based authentication for it's clients ([#66394](https://github.com/kubernetes/kubernetes/pull/66394), [@rtripat](https://github.com/rtripat))
...@@ -1223,7 +1223,7 @@ filename | sha256 hash ...@@ -1223,7 +1223,7 @@ filename | sha256 hash
### Node ### Node
Many of the changes within SIG-Node revolve around control. With the beta release of the `kubelet.config.k8s.io` API group, a significant subset of Kubelet configuration can now be [configured via a versioned config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/). Kubernetes v1.10 adds alpha support for the ability to [configure whether containers in a pod should share a single process namespace](https://github.com/kubernetes/enhancements/issues/495), and the CRI has been upgraded to v1alpha2, which adds [support for Windows Container Configuration](https://github.com/kubernetes/enhancements/issues/547). Kubernetes v1.10 also ships with the beta release of the [CRI validation test suite](https://github.com/kubernetes/enhancements/issues/292). Many of the changes within SIG-Node revolve around control. With the beta release of the `kubelet.config.k8s.io` API group, a significant subset of Kubelet configuration can now be [configured via a versioned config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/). Kubernetes v1.10 adds alpha support for the ability to [configure whether containers in a pod should share a single process namespace](https://github.com/kubernetes/enhancements/issues/495), and the CRI has been upgraded to v1alpha2, which adds [support for Windows Container Configuration](https://github.com/kubernetes/enhancements/issues/547). Kubernetes v1.10 also ships with the beta release of the [CRI validation test suite](https://github.com/kubernetes/enhancements/issues/292).
The Resource Management Working Group graduated three features to beta in the 1.10 release. First, [CPU Manager](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/), which allows users to request exclusive CPU cores. This helps performance in a variety of use-cases, including network latency sensitive applications, as well as applications that benefit from CPU cache residency. Next, [Huge Pages](https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/), which allows pods to consume either 2Mi or 1Gi Huge Pages. This benefits applications that consume large amounts of memory. Use of Huge Pages is a common tuning recommendation for databases and JVMs. Finally, the [Device Plugin](https://kubernetes.io/docs/concepts/cluster-administration/device-plugins/) feature, which provides a framework for vendors to advertise their resources to the Kubelet without changing Kubernetes core code. Targeted devices include GPUs, High-performance NICs, FPGAs, InfiniBand, and other similar computing resources that may require vendor specific initialization and setup. The Resource Management Working Group graduated three features to beta in the 1.10 release. First, [CPU Manager](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/), which allows users to request exclusive CPU cores. This helps performance in a variety of use-cases, including network latency sensitive applications, as well as applications that benefit from CPU cache residency. Next, [Huge Pages](https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/), which allows pods to consume either 2Mi or 1Gi Huge Pages. This benefits applications that consume large amounts of memory. Use of Huge Pages is a common tuning recommendation for databases and JVMs. Finally, the [Device Plugin](https://kubernetes.io/docs/concepts/cluster-administration/device-plugins/) feature, which provides a framework for vendors to advertise their resources to the Kubelet without changing Kubernetes core code. Targeted devices include GPUs, High-performance NICs, FPGAs, InfiniBand, and other similar computing resources that may require vendor specific initialization and setup.
...@@ -1231,7 +1231,7 @@ The Resource Management Working Group graduated three features to beta in the 1. ...@@ -1231,7 +1231,7 @@ The Resource Management Working Group graduated three features to beta in the 1.
This release brings additional power to both local storage and Persistent Volumes. [Mount namespace propagation](https://github.com/kubernetes/enhancements/issues/432) allows a container to mount a volume as rslave so that host mounts can be seen inside the container, or as rshared so that mounts made inside a container can be seen by the host. (Note that this is [not supported on Windows](https://github.com/kubernetes/kubernetes/pull/60275).) [Local Ephemeral Storage Capacity Isolation](https://github.com/kubernetes/enhancements/issues/361) makes it possible to set requests and limits on ephemeral local storage resources. In addition, you can now create [Local Persistent Storage](https://github.com/kubernetes/enhancements/issues/121), which enables PersistentVolumes to be created with locally attached disks, and not just network volumes. This release brings additional power to both local storage and Persistent Volumes. [Mount namespace propagation](https://github.com/kubernetes/enhancements/issues/432) allows a container to mount a volume as rslave so that host mounts can be seen inside the container, or as rshared so that mounts made inside a container can be seen by the host. (Note that this is [not supported on Windows](https://github.com/kubernetes/kubernetes/pull/60275).) [Local Ephemeral Storage Capacity Isolation](https://github.com/kubernetes/enhancements/issues/361) makes it possible to set requests and limits on ephemeral local storage resources. In addition, you can now create [Local Persistent Storage](https://github.com/kubernetes/enhancements/issues/121), which enables PersistentVolumes to be created with locally attached disks, and not just network volumes.
On the Persistent Volumes side, this release [Prevents deletion of Persistent Volume Claims that are used by a pod](https://github.com/kubernetes/enhancements/issues/498) and [Persistent Volumes that are bound to a Persistent Volume Claim](https://github.com/kubernetes/enhancements/issues/499), making it impossible to delete storage that is in use by a pod. On the Persistent Volumes side, this release [Prevents deletion of Persistent Volume Claims that are used by a pod](https://github.com/kubernetes/enhancements/issues/498) and [Persistent Volumes that are bound to a Persistent Volume Claim](https://github.com/kubernetes/enhancements/issues/499), making it impossible to delete storage that is in use by a pod.
This release also includes [Topology Aware Volume Scheduling](https://github.com/kubernetes/enhancements/issues/490) for local persistent volumes, the stable release of [Detailed storage metrics of internal state](https://github.com/kubernetes/enhancements/issues/496), and beta support for [Out-of-tree CSI Volume Plugins](https://github.com/kubernetes/enhancements/issues/178). This release also includes [Topology Aware Volume Scheduling](https://github.com/kubernetes/enhancements/issues/490) for local persistent volumes, the stable release of [Detailed storage metrics of internal state](https://github.com/kubernetes/enhancements/issues/496), and beta support for [Out-of-tree CSI Volume Plugins](https://github.com/kubernetes/enhancements/issues/178).
...@@ -1261,7 +1261,7 @@ This release includes a change to [kubectl get and describe to work better with ...@@ -1261,7 +1261,7 @@ This release includes a change to [kubectl get and describe to work better with
### Network ### Network
In terms of networking, Kubernetes 1.10 is about control. Users now have beta support for the ability to [configure a pod's resolv.conf](https://github.com/kubernetes/enhancements/issues/504), rather than relying on the cluster DNS, as well as [configuring the NodePort IP address](https://github.com/kubernetes/enhancements/issues/539). You can also [switch the default DNS plugin to CoreDNS](https://github.com/kubernetes/enhancements/issues/427) (beta). In terms of networking, Kubernetes 1.10 is about control. Users now have beta support for the ability to [configure a pod's resolv.conf](https://github.com/kubernetes/enhancements/issues/504), rather than relying on the cluster DNS, as well as [configuring the NodePort IP address](https://github.com/kubernetes/enhancements/issues/539). You can also [switch the default DNS plugin to CoreDNS](https://github.com/kubernetes/enhancements/issues/427) (beta).
## Before Upgrading ## Before Upgrading
...@@ -1433,7 +1433,7 @@ If no featureGates was specified in `kubeadm-config`, just change `featureGates: ...@@ -1433,7 +1433,7 @@ If no featureGates was specified in `kubeadm-config`, just change `featureGates:
* rktnetes has been deprecated in favor of rktlet. Please see [https://github.com/kubernetes-incubator/rktlet](https://github.com/kubernetes-incubator/rktlet) for more information. ([#58418](https://github.com/kubernetes/kubernetes/pull/58418), [@yujuhong](https://github.com/yujuhong)) * rktnetes has been deprecated in favor of rktlet. Please see [https://github.com/kubernetes-incubator/rktlet](https://github.com/kubernetes-incubator/rktlet) for more information. ([#58418](https://github.com/kubernetes/kubernetes/pull/58418), [@yujuhong](https://github.com/yujuhong))
* The Kubelet now explicitly registers all of its command-line flags with an internal flagset, which prevents flags from third party libraries from unintentionally leaking into the Kubelet's command-line API. Many unintentionally leaked flags are now marked deprecated, so that users have a chance to migrate away from them before they are removed. In addition, one previously leaked flag, --cloud-provider-gce-lb-src-cidrs, has been entirely removed from the Kubelet's command-line API, because it is irrelevant to Kubelet operation. The deprecated flags are: * The Kubelet now explicitly registers all of its command-line flags with an internal flagset, which prevents flags from third party libraries from unintentionally leaking into the Kubelet's command-line API. Many unintentionally leaked flags are now marked deprecated, so that users have a chance to migrate away from them before they are removed. In addition, one previously leaked flag, --cloud-provider-gce-lb-src-cidrs, has been entirely removed from the Kubelet's command-line API, because it is irrelevant to Kubelet operation. The deprecated flags are:
* --application_metrics_count_limit * --application_metrics_count_limit
* --boot_id_file * --boot_id_file
...@@ -1474,17 +1474,17 @@ If no featureGates was specified in `kubeadm-config`, just change `featureGates: ...@@ -1474,17 +1474,17 @@ If no featureGates was specified in `kubeadm-config`, just change `featureGates:
</tr> </tr>
<tr> <tr>
<td>GET /swagger.json</td> <td>GET /swagger.json</td>
<td>GET /openapi/v2 <td>GET /openapi/v2
Accept: application/json</td> Accept: application/json</td>
</tr> </tr>
<tr> <tr>
<td>GET /swagger-2.0.0.pb-v1</td> <td>GET /swagger-2.0.0.pb-v1</td>
<td>GET /openapi/v2 <td>GET /openapi/v2
Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf</td> Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf</td>
</tr> </tr>
<tr> <tr>
<td>GET /swagger-2.0.0.pb-v1.gz</td> <td>GET /swagger-2.0.0.pb-v1.gz</td>
<td>GET /openapi/v2 <td>GET /openapi/v2
Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf Accept-Encoding: gzip</td> Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf Accept-Encoding: gzip</td>
</tr> </tr>
</table> </table>
...@@ -1598,7 +1598,7 @@ kubernetesVersion: v1.9.1 ...@@ -1598,7 +1598,7 @@ kubernetesVersion: v1.9.1
noTaintMaster: true noTaintMaster: true
``` ```
And point to the file using the --config flag, as in And point to the file using the --config flag, as in
`kubeadm init --config /etc/kubeadm/kubeadm.yaml` `kubeadm init --config /etc/kubeadm/kubeadm.yaml`
...@@ -2238,13 +2238,13 @@ parameters: ...@@ -2238,13 +2238,13 @@ parameters:
* Updates kube-dns to v1.14.8 ([#57918](https://github.com/kubernetes/kubernetes/pull/57918), [@rramkumar1](https://github.com/rramkumar1)) * Updates kube-dns to v1.14.8 ([#57918](https://github.com/kubernetes/kubernetes/pull/57918), [@rramkumar1](https://github.com/rramkumar1))
* Influxdb is unchanged from v1.9: v1.3.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) * Influxdb is unchanged from v1.9: v1.3.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319))
* Grafana is unchanged from v1.9: v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) * Grafana is unchanged from v1.9: v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319))
* CAdvisor is v0.29.1 ([#60867](https://github.com/kubernetes/kubernetes/pull/60867)) * CAdvisor is v0.29.1 ([#60867](https://github.com/kubernetes/kubernetes/pull/60867))
* fluentd-gcp-scaler is v0.3.0 ([#61269](https://github.com/kubernetes/kubernetes/pull/61269)) * fluentd-gcp-scaler is v0.3.0 ([#61269](https://github.com/kubernetes/kubernetes/pull/61269))
* Updated fluentd in fluentd-es-image to fluentd v1.1.0 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525), [@monotek](https://github.com/monotek)) * Updated fluentd in fluentd-es-image to fluentd v1.1.0 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525), [@monotek](https://github.com/monotek))
* fluentd-elasticsearch is v2.0.4 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525)) * fluentd-elasticsearch is v2.0.4 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525))
* Updated fluentd-gcp to v3.0.0. ([#60722](https://github.com/kubernetes/kubernetes/pull/60722)) * Updated fluentd-gcp to v3.0.0. ([#60722](https://github.com/kubernetes/kubernetes/pull/60722))
* Ingress glbc is v1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302)) * Ingress glbc is v1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302))
* OIDC authentication is coreos/go-oidc v2 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) * OIDC authentication is coreos/go-oidc v2 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544))
* Updated fluentd-gcp updated to v2.0.11. ([#56927](https://github.com/kubernetes/kubernetes/pull/56927), [@x13n](https://github.com/x13n)) * Updated fluentd-gcp updated to v2.0.11. ([#56927](https://github.com/kubernetes/kubernetes/pull/56927), [@x13n](https://github.com/x13n))
* Calico has been updated to v2.6.7 ([#59130](https://github.com/kubernetes/kubernetes/pull/59130), [@caseydavenport](https://github.com/caseydavenport)) * Calico has been updated to v2.6.7 ([#59130](https://github.com/kubernetes/kubernetes/pull/59130), [@caseydavenport](https://github.com/caseydavenport))
...@@ -2306,8 +2306,8 @@ filename | sha256 hash ...@@ -2306,8 +2306,8 @@ filename | sha256 hash
* Fix bug allowing garbage collector to enter a broken state that could only be fixed by restarting the controller-manager. ([#61201](https://github.com/kubernetes/kubernetes/pull/61201), [@jennybuckley](https://github.com/jennybuckley)) * Fix bug allowing garbage collector to enter a broken state that could only be fixed by restarting the controller-manager. ([#61201](https://github.com/kubernetes/kubernetes/pull/61201), [@jennybuckley](https://github.com/jennybuckley))
* When `TaintNodesByCondition` enabled, added `node.kubernetes.io/unschedulable:NoSchedule` ([#61161](https://github.com/kubernetes/kubernetes/pull/61161), [@k82cn](https://github.com/k82cn)) * When `TaintNodesByCondition` enabled, added `node.kubernetes.io/unschedulable:NoSchedule` ([#61161](https://github.com/kubernetes/kubernetes/pull/61161), [@k82cn](https://github.com/k82cn))
* taint to the node if `spec.Unschedulable` is true. * taint to the node if `spec.Unschedulable` is true.
* When `ScheduleDaemonSetPods` enabled, `node.kubernetes.io/unschedulable:NoSchedule` * When `ScheduleDaemonSetPods` enabled, `node.kubernetes.io/unschedulable:NoSchedule`
* toleration is added automatically to DaemonSet Pods; so the `unschedulable` field of * toleration is added automatically to DaemonSet Pods; so the `unschedulable` field of
* a node is not respected by the DaemonSet controller. * a node is not respected by the DaemonSet controller.
* Fixed kube-proxy to work correctly with iptables 1.6.2 and later. ([#60978](https://github.com/kubernetes/kubernetes/pull/60978), [@danwinship](https://github.com/danwinship)) * Fixed kube-proxy to work correctly with iptables 1.6.2 and later. ([#60978](https://github.com/kubernetes/kubernetes/pull/60978), [@danwinship](https://github.com/danwinship))
* Audit logging with buffering enabled can increase apiserver memory usage (e.g. up to 200MB in 100-node cluster). The increase is bounded by the buffer size (configurable). Ref: issue [#60500](https://github.com/kubernetes/kubernetes/pull/60500) ([#61118](https://github.com/kubernetes/kubernetes/pull/61118), [@shyamjvs](https://github.com/shyamjvs)) * Audit logging with buffering enabled can increase apiserver memory usage (e.g. up to 200MB in 100-node cluster). The increase is bounded by the buffer size (configurable). Ref: issue [#60500](https://github.com/kubernetes/kubernetes/pull/60500) ([#61118](https://github.com/kubernetes/kubernetes/pull/61118), [@shyamjvs](https://github.com/shyamjvs))
......
...@@ -452,7 +452,7 @@ filename | sha512 hash ...@@ -452,7 +452,7 @@ filename | sha512 hash
* Get public IP for Azure vmss nodes. ([#68498](https://github.com/kubernetes/kubernetes/pull/68498), [@feiskyer](https://github.com/feiskyer)) * Get public IP for Azure vmss nodes. ([#68498](https://github.com/kubernetes/kubernetes/pull/68498), [@feiskyer](https://github.com/feiskyer))
* Role, ClusterRole and their bindings for cloud-provider is put under system namespace. Their addonmanager mode switches to EnsureExists. ([#67224](https://github.com/kubernetes/kubernetes/pull/67224), [@grayluck](https://github.com/grayluck)) * Role, ClusterRole and their bindings for cloud-provider is put under system namespace. Their addonmanager mode switches to EnsureExists. ([#67224](https://github.com/kubernetes/kubernetes/pull/67224), [@grayluck](https://github.com/grayluck))
* Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm)) * Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm))
* Also updates dependencies of users of debian-base. * Also updates dependencies of users of debian-base.
* debian-base version 0.3.1 is already available. * debian-base version 0.3.1 is already available.
* Update debian-iptables and hyperkube-base images to include CVE fixes. ([#67365](https://github.com/kubernetes/kubernetes/pull/67365), [@ixdy](https://github.com/ixdy)) * Update debian-iptables and hyperkube-base images to include CVE fixes. ([#67365](https://github.com/kubernetes/kubernetes/pull/67365), [@ixdy](https://github.com/ixdy))
* Support configuring the Azure load balancer idle connection timeout for services ([#66045](https://github.com/kubernetes/kubernetes/pull/66045), [@cpuguy83](https://github.com/cpuguy83)) * Support configuring the Azure load balancer idle connection timeout for services ([#66045](https://github.com/kubernetes/kubernetes/pull/66045), [@cpuguy83](https://github.com/cpuguy83))
......
...@@ -582,7 +582,7 @@ Sig Azure was focused on two primary new alpha features: ...@@ -582,7 +582,7 @@ Sig Azure was focused on two primary new alpha features:
Besides the above new features, support for Azure Virtual Machine Scale Sets (VMSS) and Cluster-Autoscaler is now stable and considered GA: Besides the above new features, support for Azure Virtual Machine Scale Sets (VMSS) and Cluster-Autoscaler is now stable and considered GA:
- Azure virtual machine scale sets (VMSS) allow you to create and manage identical load balanced VMs that automatically increase or decrease based on demand or a set schedule. - Azure virtual machine scale sets (VMSS) allow you to create and manage identical load balanced VMs that automatically increase or decrease based on demand or a set schedule.
- With this new stable feature, Kubernetes supports the scaling of containerized applications with Azure VMSS, including the ability to integrate it with cluster-autoscaler to automatically adjust the size of the Kubernetes clusters based on the same conditions. - With this new stable feature, Kubernetes supports the scaling of containerized applications with Azure VMSS, including the ability to integrate it with cluster-autoscaler to automatically adjust the size of the Kubernetes clusters based on the same conditions.
### SIG-cli ### SIG-cli
...@@ -593,11 +593,11 @@ SIG CLI focused on implementing the new plugin mechanism, providing a library wi ...@@ -593,11 +593,11 @@ SIG CLI focused on implementing the new plugin mechanism, providing a library wi
This is the first Kubernetes release for this SIG! In v1.12, SIG Cloud Provider focused on building the processes and infrastructure to better support existing and new cloud providers. Some of these initiatives (many of which are still in progress) are: This is the first Kubernetes release for this SIG! In v1.12, SIG Cloud Provider focused on building the processes and infrastructure to better support existing and new cloud providers. Some of these initiatives (many of which are still in progress) are:
- Reporting E2E conformance test results to TestGrid from every cloud provider (in collaboration with SIG Testing & SIG Release) - Reporting E2E conformance test results to TestGrid from every cloud provider (in collaboration with SIG Testing & SIG Release)
- Defining minimum required documentation from each cloud provider which includes (in collaboration with SIG Docs): - Defining minimum required documentation from each cloud provider which includes (in collaboration with SIG Docs):
- example manifests for the kube-apiserver, kube-controller-manager, kube-schedule, kubelet, and the cloud-controller-manager - example manifests for the kube-apiserver, kube-controller-manager, kube-schedule, kubelet, and the cloud-controller-manager
- labels/annotations that are consumed by any cloud specific controllers - labels/annotations that are consumed by any cloud specific controllers
In addition to the above, SIG Cloud Provider has been focusing on a long running effort to remove cloud provider code from kubernetes/kubernetes. In addition to the above, SIG Cloud Provider has been focusing on a long running effort to remove cloud provider code from kubernetes/kubernetes.
### SIG-cluster-lifecycle ### SIG-cluster-lifecycle
...@@ -638,11 +638,11 @@ No feature work, but a large refactoring of metrics-server as well as a number o ...@@ -638,11 +638,11 @@ No feature work, but a large refactoring of metrics-server as well as a number o
### SIG-node ### SIG-node
SIG-node graduated the PodShareProcessNamespace feature from alpha to beta. This feature allows a pod spec to request that all containers in a pod share a common process namespaces. SIG-node graduated the PodShareProcessNamespace feature from alpha to beta. This feature allows a pod spec to request that all containers in a pod share a common process namespaces.
Two alpha features were also added in this release. Two alpha features were also added in this release.
The RuntimeClass alpha feature enables a node to surface multiple runtime options to support a variety of workload types. Examples include native linux containers, and “sandboxed” containers that isolate the container from the host kernel. The RuntimeClass alpha feature enables a node to surface multiple runtime options to support a variety of workload types. Examples include native linux containers, and “sandboxed” containers that isolate the container from the host kernel.
The CustomCFSQuotaPeriod alpha feature enables node administrators to change the default period used to enforce CFS quota on a node. This can improve performance for some workloads that experience latency while using CFS quota with the default measurement period. Finally, the SIG continues to focus on improving reliability by fixing bugs while working out design and implementation of future features. The CustomCFSQuotaPeriod alpha feature enables node administrators to change the default period used to enforce CFS quota on a node. This can improve performance for some workloads that experience latency while using CFS quota with the default measurement period. Finally, the SIG continues to focus on improving reliability by fixing bugs while working out design and implementation of future features.
...@@ -732,7 +732,7 @@ SIG Windows focused on stability and reliability of our existing feature set. We ...@@ -732,7 +732,7 @@ SIG Windows focused on stability and reliability of our existing feature set. We
- kubeadm: The `v1alpha1` config API has been removed. ([#65628](https://github.com/kubernetes/kubernetes/pull/65628), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle - kubeadm: The `v1alpha1` config API has been removed. ([#65628](https://github.com/kubernetes/kubernetes/pull/65628), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle
- kube-apiserver: When using `--enable-admission-plugins` the `Priority` admission plugin is now enabled by default (matching changes in 1.11.1+). If using `--admission-control` to fully specify the set of admission plugins, it is now necessary to add the `Priority` admission plugin for the PodPriority feature to work properly. ([#65739](https://github.com/kubernetes/kubernetes/pull/65739), [@liggitt](https://github.com/liggitt)) Courtesy of SIG Scheduling - kube-apiserver: When using `--enable-admission-plugins` the `Priority` admission plugin is now enabled by default (matching changes in 1.11.1+). If using `--admission-control` to fully specify the set of admission plugins, it is now necessary to add the `Priority` admission plugin for the PodPriority feature to work properly. ([#65739](https://github.com/kubernetes/kubernetes/pull/65739), [@liggitt](https://github.com/liggitt)) Courtesy of SIG Scheduling
- The `system-node-critical` and `system-cluster-critical` priority classes are now limited to the `kube-system` namespace by the `PodPriority` admission plugin (matching changes in 1.11.1+). ([#65593](https://github.com/kubernetes/kubernetes/pull/65593), [@bsalamat](https://github.com/bsalamat)) Courtesy of SIG Scheduling - The `system-node-critical` and `system-cluster-critical` priority classes are now limited to the `kube-system` namespace by the `PodPriority` admission plugin (matching changes in 1.11.1+). ([#65593](https://github.com/kubernetes/kubernetes/pull/65593), [@bsalamat](https://github.com/bsalamat)) Courtesy of SIG Scheduling
- kubeadm: Control plane images (etcd, kube-apiserver, kube-proxy, etc.) no longer use arch suffixes. Arch suffixes are kept for kube-dns only. ([#66960](https://github.com/kubernetes/kubernetes/pull/66960), - kubeadm: Control plane images (etcd, kube-apiserver, kube-proxy, etc.) no longer use arch suffixes. Arch suffixes are kept for kube-dns only. ([#66960](https://github.com/kubernetes/kubernetes/pull/66960),
[@rosti](https://github.com/rosti)) Courtesy of SIG Cluster Lifecycle, SIG Release, and SIG Testing [@rosti](https://github.com/rosti)) Courtesy of SIG Cluster Lifecycle, SIG Release, and SIG Testing
- kubeadm - Feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated and can no longer be used for new clusters. Cluster updates using above feature-gates flag is not supported. ([#67786](https://github.com/kubernetes/kubernetes/pull/67786), [@fabriziopandini](https://github.com/fabriziopandini)) Courtesy of SIG Cluster Lifecycle - kubeadm - Feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated and can no longer be used for new clusters. Cluster updates using above feature-gates flag is not supported. ([#67786](https://github.com/kubernetes/kubernetes/pull/67786), [@fabriziopandini](https://github.com/fabriziopandini)) Courtesy of SIG Cluster Lifecycle
- 'KubeSchedulerConfiguration' which used to be under GroupVersion 'componentconfig/v1alpha1', - 'KubeSchedulerConfiguration' which used to be under GroupVersion 'componentconfig/v1alpha1',
...@@ -798,7 +798,7 @@ is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.c ...@@ -798,7 +798,7 @@ is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.c
- kubeadm now supports the phase command "alpha phase kubelet config annotate-cri". ([#68449](https://github.com/kubernetes/kubernetes/pull/68449), [@fabriziopandini](https://github.com/fabriziopandini)) - kubeadm now supports the phase command "alpha phase kubelet config annotate-cri". ([#68449](https://github.com/kubernetes/kubernetes/pull/68449), [@fabriziopandini](https://github.com/fabriziopandini))
- kubeadm: --cri-socket now defaults to tcp://localhost:2375 when running on Windows. ([#67447](https://github.com/kubernetes/kubernetes/pull/67447), [@benmoss](https://github.com/benmoss)) - kubeadm: --cri-socket now defaults to tcp://localhost:2375 when running on Windows. ([#67447](https://github.com/kubernetes/kubernetes/pull/67447), [@benmoss](https://github.com/benmoss))
- kubeadm now includes a new EXPERIMENTAL `--rootfs`, which (if specified) causes kubeadm to chroot before performing any file operations. This is expected to be useful when setting up kubernetes on a different filesystem, such as invoking kubeadm from docker. ([#54935](https://github.com/kubernetes/kubernetes/pull/54935), [@anguslees](https://github.com/anguslees)) - kubeadm now includes a new EXPERIMENTAL `--rootfs`, which (if specified) causes kubeadm to chroot before performing any file operations. This is expected to be useful when setting up kubernetes on a different filesystem, such as invoking kubeadm from docker. ([#54935](https://github.com/kubernetes/kubernetes/pull/54935), [@anguslees](https://github.com/anguslees))
- The command line option --cri-socket-path of the kubeadm subcommand "kubeadm config images pull" has been renamed to --cri-socket to be consistent with the rest of kubeadm subcommands. - The command line option --cri-socket-path of the kubeadm subcommand "kubeadm config images pull" has been renamed to --cri-socket to be consistent with the rest of kubeadm subcommands.
- kubeadm: The ControlPlaneEndpoint was moved from the API config struct to ClusterConfiguration ([#67830](https://github.com/kubernetes/kubernetes/pull/67830), [@fabriziopandini](https://github.com/fabriziopandini)) - kubeadm: The ControlPlaneEndpoint was moved from the API config struct to ClusterConfiguration ([#67830](https://github.com/kubernetes/kubernetes/pull/67830), [@fabriziopandini](https://github.com/fabriziopandini))
- kubeadm: InitConfiguration now consists of two structs: InitConfiguration and ClusterConfiguration ([#67441](https://github.com/kubernetes/kubernetes/pull/67441), [@rosti](https://github.com/rosti)) - kubeadm: InitConfiguration now consists of two structs: InitConfiguration and ClusterConfiguration ([#67441](https://github.com/kubernetes/kubernetes/pull/67441), [@rosti](https://github.com/rosti))
- The RuntimeClass API has been added. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it. The RuntimeClass API resource defines different classes of runtimes that may be used to run containers in the cluster. Pods can select a RuntimeClass to use via the RuntimeClassName field. ([#67737](https://github.com/kubernetes/kubernetes/pull/67737), [@tallclair](https://github.com/tallclair)) - The RuntimeClass API has been added. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it. The RuntimeClass API resource defines different classes of runtimes that may be used to run containers in the cluster. Pods can select a RuntimeClass to use via the RuntimeClassName field. ([#67737](https://github.com/kubernetes/kubernetes/pull/67737), [@tallclair](https://github.com/tallclair))
...@@ -845,7 +845,7 @@ is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.c ...@@ -845,7 +845,7 @@ is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.c
### SIG Auth ### SIG Auth
- TokenRequest and TokenRequestProjection are now beta features. To enable these feature, the API server needs to be started with the `--service-account-issuer`, `--service-account-signing-key-file`, and `--service-account-api-audiences` flags. - TokenRequest and TokenRequestProjection are now beta features. To enable these feature, the API server needs to be started with the `--service-account-issuer`, `--service-account-signing-key-file`, and `--service-account-api-audiences` flags.
([#67349](https://github.com/kubernetes/kubernetes/pull/67349), [@mikedanese](https://github.com/mikedanese)) ([#67349](https://github.com/kubernetes/kubernetes/pull/67349), [@mikedanese](https://github.com/mikedanese))
- The admin RBAC role now aggregates edit and view. The edit RBAC role now aggregates view. ([#66684](https://github.com/kubernetes/kubernetes/pull/66684), [@deads2k](https://github.com/deads2k)) - The admin RBAC role now aggregates edit and view. The edit RBAC role now aggregates view. ([#66684](https://github.com/kubernetes/kubernetes/pull/66684), [@deads2k](https://github.com/deads2k))
- UserInfo derived from service account tokens created from the TokenRequest API now include the pod name and UID in the Extra field. ([#61858](https://github.com/kubernetes/kubernetes/pull/61858), [@mikedanese](https://github.com/mikedanese)) - UserInfo derived from service account tokens created from the TokenRequest API now include the pod name and UID in the Extra field. ([#61858](https://github.com/kubernetes/kubernetes/pull/61858), [@mikedanese](https://github.com/mikedanese))
...@@ -907,7 +907,7 @@ is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.c ...@@ -907,7 +907,7 @@ is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.c
- kubeadm uses audit policy v1 instead of v1beta1 ([#67176](https://github.com/kubernetes/kubernetes/pull/67176), [@charrywanganthony](https://github.com/charrywanganthony)) - kubeadm uses audit policy v1 instead of v1beta1 ([#67176](https://github.com/kubernetes/kubernetes/pull/67176), [@charrywanganthony](https://github.com/charrywanganthony))
- Kubeadm nodes will no longer be able to run with an empty or invalid hostname in /proc/sys/kernel/hostname ([#64815](https://github.com/kubernetes/kubernetes/pull/64815), [@dixudx](https://github.com/dixudx)) - Kubeadm nodes will no longer be able to run with an empty or invalid hostname in /proc/sys/kernel/hostname ([#64815](https://github.com/kubernetes/kubernetes/pull/64815), [@dixudx](https://github.com/dixudx))
- kubeadm now can join the cluster with pre-existing client certificate if provided ([#66482](https://github.com/kubernetes/kubernetes/pull/66482), [@dixudx](https://github.com/dixudx)) - kubeadm now can join the cluster with pre-existing client certificate if provided ([#66482](https://github.com/kubernetes/kubernetes/pull/66482), [@dixudx](https://github.com/dixudx))
([#66382](https://github.com/kubernetes/kubernetes/pull/66382), [@bart0sh](https://github.com/bart0sh)) ([#66382](https://github.com/kubernetes/kubernetes/pull/66382), [@bart0sh](https://github.com/bart0sh))
- kubeadm will no longer hang indefinitely if there is no Internet connection and --kubernetes-version is not specified.([#65676](https://github.com/kubernetes/kubernetes/pull/65676), [@dkoshkin](https://github.com/dkoshkin)) - kubeadm will no longer hang indefinitely if there is no Internet connection and --kubernetes-version is not specified.([#65676](https://github.com/kubernetes/kubernetes/pull/65676), [@dkoshkin](https://github.com/dkoshkin))
- kubeadm: kube-proxy will now run on all nodes, and not just master nodes.([#65931](https://github.com/kubernetes/kubernetes/pull/65931), [@neolit123](https://github.com/neolit123)) - kubeadm: kube-proxy will now run on all nodes, and not just master nodes.([#65931](https://github.com/kubernetes/kubernetes/pull/65931), [@neolit123](https://github.com/neolit123))
- kubeadm now uses separate YAML documents for the kubelet and kube-proxy ComponentConfigs. ([#65787](https://github.com/kubernetes/kubernetes/pull/65787), [@luxas](https://github.com/luxas)) - kubeadm now uses separate YAML documents for the kubelet and kube-proxy ComponentConfigs. ([#65787](https://github.com/kubernetes/kubernetes/pull/65787), [@luxas](https://github.com/luxas))
...@@ -1653,7 +1653,7 @@ filename | sha256 hash ...@@ -1653,7 +1653,7 @@ filename | sha256 hash
* The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. ([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@verb](https://github.com/verb)) * The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. ([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@verb](https://github.com/verb))
* `kubectl create {clusterrole,role}`'s `--resources` flag supports asterisk to specify all resources. ([#62945](https://github.com/kubernetes/kubernetes/pull/62945), [@nak3](https://github.com/nak3)) * `kubectl create {clusterrole,role}`'s `--resources` flag supports asterisk to specify all resources. ([#62945](https://github.com/kubernetes/kubernetes/pull/62945), [@nak3](https://github.com/nak3))
* Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm)) * Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm))
* Also updates dependencies of users of debian-base. * Also updates dependencies of users of debian-base.
* debian-base version 0.3.1 is already available. * debian-base version 0.3.1 is already available.
* DynamicProvisioningScheduling and VolumeScheduling is now supported for Azure managed disks. Feature gates DynamicProvisioningScheduling and VolumeScheduling should be enabled before using this feature. ([#67121](https://github.com/kubernetes/kubernetes/pull/67121), [@feiskyer](https://github.com/feiskyer)) * DynamicProvisioningScheduling and VolumeScheduling is now supported for Azure managed disks. Feature gates DynamicProvisioningScheduling and VolumeScheduling should be enabled before using this feature. ([#67121](https://github.com/kubernetes/kubernetes/pull/67121), [@feiskyer](https://github.com/feiskyer))
* kube-apiserver now includes all registered API groups in discovery, including registered extension API group/versions for unavailable extension API servers. ([#66932](https://github.com/kubernetes/kubernetes/pull/66932), [@nilebox](https://github.com/nilebox)) * kube-apiserver now includes all registered API groups in discovery, including registered extension API group/versions for unavailable extension API servers. ([#66932](https://github.com/kubernetes/kubernetes/pull/66932), [@nilebox](https://github.com/nilebox))
......
...@@ -128,7 +128,7 @@ filename | sha512 hash ...@@ -128,7 +128,7 @@ filename | sha512 hash
* - A new `k8s_external` plugin that allows external zones to point to Kubernetes in-cluster services. * - A new `k8s_external` plugin that allows external zones to point to Kubernetes in-cluster services.
* - CoreDNS now checks if a zone transfer is allowed. Also allow a TTL of 0 to avoid caching in the cache plugin. * - CoreDNS now checks if a zone transfer is allowed. Also allow a TTL of 0 to avoid caching in the cache plugin.
* - TTL is also applied to negative responses (NXDOMAIN, etc). * - TTL is also applied to negative responses (NXDOMAIN, etc).
* Missing directories listed in a user's PATH are no longer considered errors and are instead logged by the "kubectl plugin list" command when listing available plugins. ([#73542](https://github.com/kubernetes/kubernetes/pull/73542), [@juanvallejo](https://github.com/juanvallejo)) * Missing directories listed in a user's PATH are no longer considered errors and are instead logged by the "kubectl plugin list" command when listing available plugins. ([#73542](https://github.com/kubernetes/kubernetes/pull/73542), [@juanvallejo](https://github.com/juanvallejo))
* remove kubelet flag '--experimental-fail-swap-on' (deprecated in v1.8) ([#69552](https://github.com/kubernetes/kubernetes/pull/69552), [@Pingan2017](https://github.com/Pingan2017)) * remove kubelet flag '--experimental-fail-swap-on' (deprecated in v1.8) ([#69552](https://github.com/kubernetes/kubernetes/pull/69552), [@Pingan2017](https://github.com/Pingan2017))
* Introduced support for Windows nodes into the cluster bringup scripts for GCE. ([#73442](https://github.com/kubernetes/kubernetes/pull/73442), [@pjh](https://github.com/pjh)) * Introduced support for Windows nodes into the cluster bringup scripts for GCE. ([#73442](https://github.com/kubernetes/kubernetes/pull/73442), [@pjh](https://github.com/pjh))
...@@ -228,7 +228,7 @@ filename | sha512 hash ...@@ -228,7 +228,7 @@ filename | sha512 hash
* Remove deprecated args '--show-all' ([#69255](https://github.com/kubernetes/kubernetes/pull/69255), [@Pingan2017](https://github.com/Pingan2017)) * Remove deprecated args '--show-all' ([#69255](https://github.com/kubernetes/kubernetes/pull/69255), [@Pingan2017](https://github.com/Pingan2017))
* As per deprecation policy in https://kubernetes.io/docs/reference/using-api/deprecation-policy/ ([#73001](https://github.com/kubernetes/kubernetes/pull/73001), [@shivnagarajan](https://github.com/shivnagarajan)) * As per deprecation policy in https://kubernetes.io/docs/reference/using-api/deprecation-policy/ ([#73001](https://github.com/kubernetes/kubernetes/pull/73001), [@shivnagarajan](https://github.com/shivnagarajan))
* the taints "node.alpha.kubernetes.io/notReady" and "node.alpha.kubernetes.io/unreachable". are no * the taints "node.alpha.kubernetes.io/notReady" and "node.alpha.kubernetes.io/unreachable". are no
* longer supported or adjusted. These uses should be replaced with "node.kubernetes.io/not-ready" * longer supported or adjusted. These uses should be replaced with "node.kubernetes.io/not-ready"
* and "node.kubernetes.io/unreachable" respectively instead. * and "node.kubernetes.io/unreachable" respectively instead.
* The /swagger.json and /swagger-2.0.0.pb-v1 schema documents, deprecated since v1.10, have been removed in favor of `/openapi/v2` ([#73148](https://github.com/kubernetes/kubernetes/pull/73148), [@liggitt](https://github.com/liggitt)) * The /swagger.json and /swagger-2.0.0.pb-v1 schema documents, deprecated since v1.10, have been removed in favor of `/openapi/v2` ([#73148](https://github.com/kubernetes/kubernetes/pull/73148), [@liggitt](https://github.com/liggitt))
* CoreDNS is only officially supported on Linux at this time. As such, when kubeadm is used to deploy this component into your kubernetes cluster, it will be restricted (using nodeSelectors) to run only on nodes with that operating system. This ensures that in clusters which include Windows nodes, the scheduler will not ever attempt to place CoreDNS pods on these machines, reducing setup latency and enhancing initial cluster stability. ([#69940](https://github.com/kubernetes/kubernetes/pull/69940), [@MarcPow](https://github.com/MarcPow)) * CoreDNS is only officially supported on Linux at this time. As such, when kubeadm is used to deploy this component into your kubernetes cluster, it will be restricted (using nodeSelectors) to run only on nodes with that operating system. This ensures that in clusters which include Windows nodes, the scheduler will not ever attempt to place CoreDNS pods on these machines, reducing setup latency and enhancing initial cluster stability. ([#69940](https://github.com/kubernetes/kubernetes/pull/69940), [@MarcPow](https://github.com/MarcPow))
...@@ -367,7 +367,7 @@ filename | sha512 hash ...@@ -367,7 +367,7 @@ filename | sha512 hash
* Fixes spurious 0-length API responses. ([#72856](https://github.com/kubernetes/kubernetes/pull/72856), [@liggitt](https://github.com/liggitt)) * Fixes spurious 0-length API responses. ([#72856](https://github.com/kubernetes/kubernetes/pull/72856), [@liggitt](https://github.com/liggitt))
* Updates Fluentd to 1.3.2 & added filter_parser ([#71180](https://github.com/kubernetes/kubernetes/pull/71180), [@monotek](https://github.com/monotek)) * Updates Fluentd to 1.3.2 & added filter_parser ([#71180](https://github.com/kubernetes/kubernetes/pull/71180), [@monotek](https://github.com/monotek))
* The leaderelection package allows the lease holder to release its lease when the calling context is cancelled. This allows ([#71490](https://github.com/kubernetes/kubernetes/pull/71490), [@smarterclayton](https://github.com/smarterclayton)) * The leaderelection package allows the lease holder to release its lease when the calling context is cancelled. This allows ([#71490](https://github.com/kubernetes/kubernetes/pull/71490), [@smarterclayton](https://github.com/smarterclayton))
* faster handoff when a leader-elected process is gracefully terminated. * faster handoff when a leader-elected process is gracefully terminated.
* Make volume binder resilient to races between main schedule loop and async binding operation ([#72045](https://github.com/kubernetes/kubernetes/pull/72045), [@cofyc](https://github.com/cofyc)) * Make volume binder resilient to races between main schedule loop and async binding operation ([#72045](https://github.com/kubernetes/kubernetes/pull/72045), [@cofyc](https://github.com/cofyc))
* Bump minimum docker API version to 1.26 (1.13.1) ([#72831](https://github.com/kubernetes/kubernetes/pull/72831), [@yujuhong](https://github.com/yujuhong)) * Bump minimum docker API version to 1.26 (1.13.1) ([#72831](https://github.com/kubernetes/kubernetes/pull/72831), [@yujuhong](https://github.com/yujuhong))
* If the `TokenRequestProjection` feature gate is disabled, projected serviceAccountToken volume sources are now dropped at object creation time, or at object update time if the existing object did not have a projected serviceAccountToken volume source. Previously, these would result in validation errors. ([#72714](https://github.com/kubernetes/kubernetes/pull/72714), [@mourya007](https://github.com/mourya007)) * If the `TokenRequestProjection` feature gate is disabled, projected serviceAccountToken volume sources are now dropped at object creation time, or at object update time if the existing object did not have a projected serviceAccountToken volume source. Previously, these would result in validation errors. ([#72714](https://github.com/kubernetes/kubernetes/pull/72714), [@mourya007](https://github.com/mourya007))
......
...@@ -433,7 +433,7 @@ filename | sha256 hash ...@@ -433,7 +433,7 @@ filename | sha256 hash
Changelog (vs 55-8872-18-0) Changelog (vs 55-8872-18-0)
* Cherry-pick runc PR#608: Eliminate redundant parsing of mountinfo * Cherry-pick runc PR#608: Eliminate redundant parsing of mountinfo
* Updated kubernetes to v1.4.5 * Updated kubernetes to v1.4.5
* Fixed a bug in e2fsprogs that caused mke2fs to take a very long time. Upstream fix: http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/commit/?h=next&id=d33e690fe7a6cbeb51349d9f2c7fb16a6ebec9c2 * Fixed a bug in e2fsprogs that caused mke2fs to take a very long time. Upstream fix: http://git.kernel.org/cgit/fs/ext2/e2fsprogs.git/commit/?h=next&id=d33e690fe7a6cbeb51349d9f2c7fb16a6ebec9c2
``` ```
* Fix fetching pids running in a cgroup, which caused problems with OOM score adjustments & setting the /system cgroup ("misc" in the summary API). ([#36614](https://github.com/kubernetes/kubernetes/pull/36614), [@timstclair](https://github.com/timstclair)) * Fix fetching pids running in a cgroup, which caused problems with OOM score adjustments & setting the /system cgroup ("misc" in the summary API). ([#36614](https://github.com/kubernetes/kubernetes/pull/36614), [@timstclair](https://github.com/timstclair))
......
...@@ -1375,7 +1375,7 @@ filename | sha256 hash ...@@ -1375,7 +1375,7 @@ filename | sha256 hash
Kubernetes 1.7 is a milestone release that adds security, stateful application, and extensibility features motivated by widespread production use of Kubernetes. Kubernetes 1.7 is a milestone release that adds security, stateful application, and extensibility features motivated by widespread production use of Kubernetes.
Security enhancements in this release include encrypted secrets (alpha), network policy for pod-to-pod communication, the node authorizer to limit Kubelet access to API resources, and Kubelet client / server TLS certificate rotation (alpha). Security enhancements in this release include encrypted secrets (alpha), network policy for pod-to-pod communication, the node authorizer to limit Kubelet access to API resources, and Kubelet client / server TLS certificate rotation (alpha).
Major features for stateful applications include automated updates to StatefulSets, enhanced updates for DaemonSets, a burst mode for faster StatefulSets scaling, and (alpha) support for local storage. Major features for stateful applications include automated updates to StatefulSets, enhanced updates for DaemonSets, a burst mode for faster StatefulSets scaling, and (alpha) support for local storage.
...@@ -2281,7 +2281,7 @@ Features for this release were tracked via the use of the [kubernetes/features]( ...@@ -2281,7 +2281,7 @@ Features for this release were tracked via the use of the [kubernetes/features](
* Add ABRT support. ([#105](https://github.com/kubernetes/node-problem-detector/pull/105), [@juliusmilan](https://github.com/juliusmilan)) * Add ABRT support. ([#105](https://github.com/kubernetes/node-problem-detector/pull/105), [@juliusmilan](https://github.com/juliusmilan))
* Add a docker image corruption problem detection in the default docker monitor config. ([#117](https://github.com/kubernetes/node-problem-detector/pull/117), [@ajitak](https://github.com/ajitak)) * Add a docker image corruption problem detection in the default docker monitor config. ([#117](https://github.com/kubernetes/node-problem-detector/pull/117), [@ajitak](https://github.com/ajitak))
* Upgrade CAdvisor to v0.26.1. New features added: * Upgrade CAdvisor to v0.26.1. New features added:
* Add Docker overlay2 storage driver support. * Add Docker overlay2 storage driver support.
...@@ -2291,7 +2291,7 @@ Features for this release were tracked via the use of the [kubernetes/features]( ...@@ -2291,7 +2291,7 @@ Features for this release were tracked via the use of the [kubernetes/features](
* Add UDP metrics (collection disabled by default). * Add UDP metrics (collection disabled by default).
* Roll up volume error messages in the kubelet sync loop. ([#44938](https://github.com/kubernetes/kubernetes/pull/44938), [@jayunit100](https://github.com/jayunit100)) * Roll up volume error messages in the kubelet sync loop. ([#44938](https://github.com/kubernetes/kubernetes/pull/44938), [@jayunit100](https://github.com/jayunit100))
* Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler)) * Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler))
* Add generic Toleration for NoExecute Taints to NodeProblemDetector, so that NPD can be scheduled to nodes with NoExecute taints by default. ([#45883](https://github.com/kubernetes/kubernetes/pull/45883), [@gmarek](https://github.com/gmarek)) * Add generic Toleration for NoExecute Taints to NodeProblemDetector, so that NPD can be scheduled to nodes with NoExecute taints by default. ([#45883](https://github.com/kubernetes/kubernetes/pull/45883), [@gmarek](https://github.com/gmarek))
...@@ -2608,7 +2608,7 @@ filename | sha256 hash ...@@ -2608,7 +2608,7 @@ filename | sha256 hash
* servicecontroller: Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb)) * servicecontroller: Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb))
* Fix iSCSI iSER mounting. ([#47281](https://github.com/kubernetes/kubernetes/pull/47281), [@mtanino](https://github.com/mtanino)) * Fix iSCSI iSER mounting. ([#47281](https://github.com/kubernetes/kubernetes/pull/47281), [@mtanino](https://github.com/mtanino))
* StorageOS Volume Driver ([#42156](https://github.com/kubernetes/kubernetes/pull/42156), [@croomes](https://github.com/croomes)) * StorageOS Volume Driver ([#42156](https://github.com/kubernetes/kubernetes/pull/42156), [@croomes](https://github.com/croomes))
* [StorageOS](http://www.storageos.com) can be used as a storage provider for Kubernetes. With StorageOS, capacity from local or attached storage is pooled across the cluster, providing converged infrastructure for cloud-native applications. * [StorageOS](http://www.storageos.com) can be used as a storage provider for Kubernetes. With StorageOS, capacity from local or attached storage is pooled across the cluster, providing converged infrastructure for cloud-native applications.
* CRI has been moved to package `pkg/kubelet/apis/cri/v1alpha1/runtime`. ([#47113](https://github.com/kubernetes/kubernetes/pull/47113), [@feiskyer](https://github.com/feiskyer)) * CRI has been moved to package `pkg/kubelet/apis/cri/v1alpha1/runtime`. ([#47113](https://github.com/kubernetes/kubernetes/pull/47113), [@feiskyer](https://github.com/feiskyer))
* Make gcp auth provider not to override the Auth header if it's already exits ([#45575](https://github.com/kubernetes/kubernetes/pull/45575), [@wanghaoran1988](https://github.com/wanghaoran1988)) * Make gcp auth provider not to override the Auth header if it's already exits ([#45575](https://github.com/kubernetes/kubernetes/pull/45575), [@wanghaoran1988](https://github.com/wanghaoran1988))
* Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler)) * Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler))
...@@ -2733,7 +2733,7 @@ filename | sha256 hash ...@@ -2733,7 +2733,7 @@ filename | sha256 hash
* federation: Add admission controller for policy-based placement ([#44786](https://github.com/kubernetes/kubernetes/pull/44786), [@tsandall](https://github.com/tsandall)) * federation: Add admission controller for policy-based placement ([#44786](https://github.com/kubernetes/kubernetes/pull/44786), [@tsandall](https://github.com/tsandall))
* Get command uses OpenAPI schema to enhance display for a resource if run with flag 'use-openapi-print-columns'. ([#46235](https://github.com/kubernetes/kubernetes/pull/46235), [@droot](https://github.com/droot)) * Get command uses OpenAPI schema to enhance display for a resource if run with flag 'use-openapi-print-columns'. ([#46235](https://github.com/kubernetes/kubernetes/pull/46235), [@droot](https://github.com/droot))
* An example command: * An example command:
* kubectl get pods --use-openapi-print-columns * kubectl get pods --use-openapi-print-columns
* add gzip compression to GET and LIST requests ([#45666](https://github.com/kubernetes/kubernetes/pull/45666), [@ilackarms](https://github.com/ilackarms)) * add gzip compression to GET and LIST requests ([#45666](https://github.com/kubernetes/kubernetes/pull/45666), [@ilackarms](https://github.com/ilackarms))
* Fix the bug where container cannot run as root when SecurityContext.RunAsNonRoot is false. ([#47009](https://github.com/kubernetes/kubernetes/pull/47009), [@yujuhong](https://github.com/yujuhong)) * Fix the bug where container cannot run as root when SecurityContext.RunAsNonRoot is false. ([#47009](https://github.com/kubernetes/kubernetes/pull/47009), [@yujuhong](https://github.com/yujuhong))
* Fixes a bug with cAdvisorPort in the KubeletConfiguration that prevented setting it to 0, which is in fact a valid option, as noted in issue [#11710](https://github.com/kubernetes/kubernetes/pull/11710). ([#46876](https://github.com/kubernetes/kubernetes/pull/46876), [@mtaufen](https://github.com/mtaufen)) * Fixes a bug with cAdvisorPort in the KubeletConfiguration that prevented setting it to 0, which is in fact a valid option, as noted in issue [#11710](https://github.com/kubernetes/kubernetes/pull/11710). ([#46876](https://github.com/kubernetes/kubernetes/pull/46876), [@mtaufen](https://github.com/mtaufen))
...@@ -3046,7 +3046,7 @@ filename | sha256 hash ...@@ -3046,7 +3046,7 @@ filename | sha256 hash
* The new metrics are: * The new metrics are:
* cloudprovider_gce_api_request_duration_seconds{request, region, zone} * cloudprovider_gce_api_request_duration_seconds{request, region, zone}
* cloudprovider_gce_api_request_errors{request, region, zone} * cloudprovider_gce_api_request_errors{request, region, zone}
* `request` is the specific function that is used. * `request` is the specific function that is used.
* `region` is the target region (Will be "<n/a>" if not applicable) * `region` is the target region (Will be "<n/a>" if not applicable)
* `zone` is the target zone (Will be "<n/a>" if not applicable) * `zone` is the target zone (Will be "<n/a>" if not applicable)
......
...@@ -1514,7 +1514,7 @@ For more information, see [#53288](https://issue.k8s.io/53288). ...@@ -1514,7 +1514,7 @@ For more information, see [#53288](https://issue.k8s.io/53288).
For more information, see [#53356](https://issue.k8s.io/53356#issuecomment-333748618). For more information, see [#53356](https://issue.k8s.io/53356#issuecomment-333748618).
* A performance issue was identified in large-scale clusters when deleting thousands of pods simultaneously across hundreds of nodes. Kubelets in this scenario can encounter temporarily increased latency of `delete pod` API calls -- above the target service level objective of 1 second. If you run clusters with this usage pattern and if pod deletion latency could be an issue for you, you might want to wait until the issue is resolved before you upgrade. * A performance issue was identified in large-scale clusters when deleting thousands of pods simultaneously across hundreds of nodes. Kubelets in this scenario can encounter temporarily increased latency of `delete pod` API calls -- above the target service level objective of 1 second. If you run clusters with this usage pattern and if pod deletion latency could be an issue for you, you might want to wait until the issue is resolved before you upgrade.
For more information and for updates on resolution of this issue, see [#51899](https://github.com/kubernetes/kubernetes/issues/51899). For more information and for updates on resolution of this issue, see [#51899](https://github.com/kubernetes/kubernetes/issues/51899).
...@@ -2322,7 +2322,7 @@ filename | sha256 hash ...@@ -2322,7 +2322,7 @@ filename | sha256 hash
* PersistentVolumeClaim metrics like "volume_stats_inodes" and "volume_stats_capacity_bytes" are now reported via kubelet prometheus ([#51553](https://github.com/kubernetes/kubernetes/pull/51553), [@wongma7](https://github.com/wongma7)) * PersistentVolumeClaim metrics like "volume_stats_inodes" and "volume_stats_capacity_bytes" are now reported via kubelet prometheus ([#51553](https://github.com/kubernetes/kubernetes/pull/51553), [@wongma7](https://github.com/wongma7))
* When using IP aliases, use a secondary range rather than subnetwork to reserve cluster IPs. ([#51690](https://github.com/kubernetes/kubernetes/pull/51690), [@bowei](https://github.com/bowei)) * When using IP aliases, use a secondary range rather than subnetwork to reserve cluster IPs. ([#51690](https://github.com/kubernetes/kubernetes/pull/51690), [@bowei](https://github.com/bowei))
* IPAM controller unifies handling of node pod CIDR range allocation. ([#51374](https://github.com/kubernetes/kubernetes/pull/51374), [@bowei](https://github.com/bowei)) * IPAM controller unifies handling of node pod CIDR range allocation. ([#51374](https://github.com/kubernetes/kubernetes/pull/51374), [@bowei](https://github.com/bowei))
* It is intended to supersede the logic that is currently in range_allocator * It is intended to supersede the logic that is currently in range_allocator
* and cloud_cidr_allocator. (ALPHA FEATURE) * and cloud_cidr_allocator. (ALPHA FEATURE)
* Note: for this change, the other allocators still exist and are the default. * Note: for this change, the other allocators still exist and are the default.
* It supports two modes: * It supports two modes:
...@@ -2951,7 +2951,7 @@ filename | sha256 hash ...@@ -2951,7 +2951,7 @@ filename | sha256 hash
* servicecontroller: Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb)) * servicecontroller: Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb))
* Fix iSCSI iSER mounting. ([#47281](https://github.com/kubernetes/kubernetes/pull/47281), [@mtanino](https://github.com/mtanino)) * Fix iSCSI iSER mounting. ([#47281](https://github.com/kubernetes/kubernetes/pull/47281), [@mtanino](https://github.com/mtanino))
* StorageOS Volume Driver ([#42156](https://github.com/kubernetes/kubernetes/pull/42156), [@croomes](https://github.com/croomes)) * StorageOS Volume Driver ([#42156](https://github.com/kubernetes/kubernetes/pull/42156), [@croomes](https://github.com/croomes))
* [StorageOS](http://www.storageos.com) can be used as a storage provider for Kubernetes. With StorageOS, capacity from local or attached storage is pooled across the cluster, providing converged infrastructure for cloud-native applications. * [StorageOS](http://www.storageos.com) can be used as a storage provider for Kubernetes. With StorageOS, capacity from local or attached storage is pooled across the cluster, providing converged infrastructure for cloud-native applications.
* CRI has been moved to package `pkg/kubelet/apis/cri/v1alpha1/runtime`. ([#47113](https://github.com/kubernetes/kubernetes/pull/47113), [@feiskyer](https://github.com/feiskyer)) * CRI has been moved to package `pkg/kubelet/apis/cri/v1alpha1/runtime`. ([#47113](https://github.com/kubernetes/kubernetes/pull/47113), [@feiskyer](https://github.com/feiskyer))
* Make gcp auth provider not to override the Auth header if it's already exits ([#45575](https://github.com/kubernetes/kubernetes/pull/45575), [@wanghaoran1988](https://github.com/wanghaoran1988)) * Make gcp auth provider not to override the Auth header if it's already exits ([#45575](https://github.com/kubernetes/kubernetes/pull/45575), [@wanghaoran1988](https://github.com/wanghaoran1988))
* Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler)) * Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler))
...@@ -2973,7 +2973,7 @@ filename | sha256 hash ...@@ -2973,7 +2973,7 @@ filename | sha256 hash
* federation: Add admission controller for policy-based placement ([#44786](https://github.com/kubernetes/kubernetes/pull/44786), [@tsandall](https://github.com/tsandall)) * federation: Add admission controller for policy-based placement ([#44786](https://github.com/kubernetes/kubernetes/pull/44786), [@tsandall](https://github.com/tsandall))
* Get command uses OpenAPI schema to enhance display for a resource if run with flag 'use-openapi-print-columns'. ([#46235](https://github.com/kubernetes/kubernetes/pull/46235), [@droot](https://github.com/droot)) * Get command uses OpenAPI schema to enhance display for a resource if run with flag 'use-openapi-print-columns'. ([#46235](https://github.com/kubernetes/kubernetes/pull/46235), [@droot](https://github.com/droot))
* An example command: * An example command:
* kubectl get pods --use-openapi-print-columns * kubectl get pods --use-openapi-print-columns
* add gzip compression to GET and LIST requests ([#45666](https://github.com/kubernetes/kubernetes/pull/45666), [@ilackarms](https://github.com/ilackarms)) * add gzip compression to GET and LIST requests ([#45666](https://github.com/kubernetes/kubernetes/pull/45666), [@ilackarms](https://github.com/ilackarms))
* Fix the bug where container cannot run as root when SecurityContext.RunAsNonRoot is false. ([#47009](https://github.com/kubernetes/kubernetes/pull/47009), [@yujuhong](https://github.com/yujuhong)) * Fix the bug where container cannot run as root when SecurityContext.RunAsNonRoot is false. ([#47009](https://github.com/kubernetes/kubernetes/pull/47009), [@yujuhong](https://github.com/yujuhong))
* Fixes a bug with cAdvisorPort in the KubeletConfiguration that prevented setting it to 0, which is in fact a valid option, as noted in issue [#11710](https://github.com/kubernetes/kubernetes/pull/11710). ([#46876](https://github.com/kubernetes/kubernetes/pull/46876), [@mtaufen](https://github.com/mtaufen)) * Fixes a bug with cAdvisorPort in the KubeletConfiguration that prevented setting it to 0, which is in fact a valid option, as noted in issue [#11710](https://github.com/kubernetes/kubernetes/pull/11710). ([#46876](https://github.com/kubernetes/kubernetes/pull/46876), [@mtaufen](https://github.com/mtaufen))
......
...@@ -274,7 +274,7 @@ filename | sha512 hash ...@@ -274,7 +274,7 @@ filename | sha512 hash
* fix UnmountDevice failure on Windows ([#68608](https://github.com/kubernetes/kubernetes/pull/68608), [@andyzhangx](https://github.com/andyzhangx)) * fix UnmountDevice failure on Windows ([#68608](https://github.com/kubernetes/kubernetes/pull/68608), [@andyzhangx](https://github.com/andyzhangx))
* adjusted http/2 buffer sizes for apiservers to prevent starvation issues between concurrent streams ([#67902](https://github.com/kubernetes/kubernetes/pull/67902), [@liggitt](https://github.com/liggitt)) * adjusted http/2 buffer sizes for apiservers to prevent starvation issues between concurrent streams ([#67902](https://github.com/kubernetes/kubernetes/pull/67902), [@liggitt](https://github.com/liggitt))
* Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm)) * Bump up version number of debian-base, debian-hyperkube-base and debian-iptables. ([#67026](https://github.com/kubernetes/kubernetes/pull/67026), [@satyasm](https://github.com/satyasm))
* Also updates dependencies of users of debian-base. * Also updates dependencies of users of debian-base.
* debian-base version 0.3.1 is already available. * debian-base version 0.3.1 is already available.
* Update debian-iptables and hyperkube-base images to include CVE fixes. ([#67365](https://github.com/kubernetes/kubernetes/pull/67365), [@ixdy](https://github.com/ixdy)) * Update debian-iptables and hyperkube-base images to include CVE fixes. ([#67365](https://github.com/kubernetes/kubernetes/pull/67365), [@ixdy](https://github.com/ixdy))
* Immediately close the other side of the connection when proxying. ([#67288](https://github.com/kubernetes/kubernetes/pull/67288), [@MHBauer](https://github.com/MHBauer)) * Immediately close the other side of the connection when proxying. ([#67288](https://github.com/kubernetes/kubernetes/pull/67288), [@MHBauer](https://github.com/MHBauer))
...@@ -1121,7 +1121,7 @@ Extensibility. SIG API Machinery added a new class of admission control webhooks ...@@ -1121,7 +1121,7 @@ Extensibility. SIG API Machinery added a new class of admission control webhooks
### Apps ### Apps
The core workloads API, which is composed of the DaemonSet, Deployment, ReplicaSet, and StatefulSet kinds, has been promoted to GA stability in the apps/v1 group version. As such, the apps/v1beta2 group version is deprecated, and all new code should use the kinds in the apps/v1 group version. The core workloads API, which is composed of the DaemonSet, Deployment, ReplicaSet, and StatefulSet kinds, has been promoted to GA stability in the apps/v1 group version. As such, the apps/v1beta2 group version is deprecated, and all new code should use the kinds in the apps/v1 group version.
### Auth ### Auth
...@@ -1151,7 +1151,7 @@ In v1.9 SIG Network has implemented alpha support for IPv6, and alpha support fo ...@@ -1151,7 +1151,7 @@ In v1.9 SIG Network has implemented alpha support for IPv6, and alpha support fo
### Node ### Node
SIG Node iterated on the ability to support more workloads with better performance and improved reliability. Alpha features were improved around hardware accelerator support, device plugins enablement, and cpu pinning policies to enable us to graduate these features to beta in a future release. In addition, a number of reliability and performance enhancements were made across the node to help operators in production. SIG Node iterated on the ability to support more workloads with better performance and improved reliability. Alpha features were improved around hardware accelerator support, device plugins enablement, and cpu pinning policies to enable us to graduate these features to beta in a future release. In addition, a number of reliability and performance enhancements were made across the node to help operators in production.
### OpenStack ### OpenStack
...@@ -1175,7 +1175,7 @@ The SIG also focused on adding functionality to the Kubernetes volume subsystem, ...@@ -1175,7 +1175,7 @@ The SIG also focused on adding functionality to the Kubernetes volume subsystem,
We are advancing support for Windows Server and Windows Server Containers to beta along with continued feature and functional advancements on both the Kubernetes and Windows platforms. This opens the door for many Windows-specific applications and workloads to run on Kubernetes, significantly expanding the implementation scenarios and the enterprise reach of Kubernetes. We are advancing support for Windows Server and Windows Server Containers to beta along with continued feature and functional advancements on both the Kubernetes and Windows platforms. This opens the door for many Windows-specific applications and workloads to run on Kubernetes, significantly expanding the implementation scenarios and the enterprise reach of Kubernetes.
## Before Upgrading ## Before Upgrading
Consider the following changes, limitations, and guidelines before you upgrade: Consider the following changes, limitations, and guidelines before you upgrade:
...@@ -1206,7 +1206,7 @@ Consider the following changes, limitations, and guidelines before you upgrade: ...@@ -1206,7 +1206,7 @@ Consider the following changes, limitations, and guidelines before you upgrade:
### **Multicluster** ### **Multicluster**
* Development of Kubernetes Federation has moved to [github.com/kubernetes/federation](https://github.com/kubernetes/federation). This move out of tree also means that Federation will begin releasing separately from Kubernetes. Impact: * Development of Kubernetes Federation has moved to [github.com/kubernetes/federation](https://github.com/kubernetes/federation). This move out of tree also means that Federation will begin releasing separately from Kubernetes. Impact:
* Federation-specific behavior will no longer be included in kubectl * Federation-specific behavior will no longer be included in kubectl
* kubefed will no longer be released as part of Kubernetes * kubefed will no longer be released as part of Kubernetes
* The Federation servers will no longer be included in the hyperkube binary and image. ([#53816](https://github.com/kubernetes/kubernetes/pull/53816),[ @marun](https://github.com/marun)) * The Federation servers will no longer be included in the hyperkube binary and image. ([#53816](https://github.com/kubernetes/kubernetes/pull/53816),[ @marun](https://github.com/marun))
...@@ -1236,7 +1236,7 @@ Consider the following changes, limitations, and guidelines before you upgrade: ...@@ -1236,7 +1236,7 @@ Consider the following changes, limitations, and guidelines before you upgrade:
### **Storage** ### **Storage**
* [alpha] The LocalPersistentVolumes alpha feature now also requires the VolumeScheduling alpha feature. This is a breaking change, and the following changes are required: * [alpha] The LocalPersistentVolumes alpha feature now also requires the VolumeScheduling alpha feature. This is a breaking change, and the following changes are required:
* The VolumeScheduling feature gate must also be enabled on kube-scheduler and kube-controller-manager components. * The VolumeScheduling feature gate must also be enabled on kube-scheduler and kube-controller-manager components.
* The NoVolumeNodeConflict predicate has been removed. For non-default schedulers, update your scheduler policy. * The NoVolumeNodeConflict predicate has been removed. For non-default schedulers, update your scheduler policy.
* The CheckVolumeBinding predicate must be enabled in non-default schedulers. ([#55039](https://github.com/kubernetes/kubernetes/pull/55039),[ @msau42](https://github.com/msau42)) * The CheckVolumeBinding predicate must be enabled in non-default schedulers. ([#55039](https://github.com/kubernetes/kubernetes/pull/55039),[ @msau42](https://github.com/msau42))
...@@ -1384,7 +1384,7 @@ As announced with the release of version 1.8, the Kubernetes Workloads API is at ...@@ -1384,7 +1384,7 @@ As announced with the release of version 1.8, the Kubernetes Workloads API is at
* New permissions have been added to default RBAC roles ([#52654](https://github.com/kubernetes/kubernetes/pull/52654),[ @liggitt](https://github.com/liggitt)): * New permissions have been added to default RBAC roles ([#52654](https://github.com/kubernetes/kubernetes/pull/52654),[ @liggitt](https://github.com/liggitt)):
* The default admin and edit roles now include read/write permissions * The default admin and edit roles now include read/write permissions
* The view role includes read permissions on poddisruptionbudget.policy resources. * The view role includes read permissions on poddisruptionbudget.policy resources.
* RBAC rules can now match the same subresource on any resource using the form `*/(subresource)`. For example, `*/scale` matches requests to `replicationcontroller/scale`. ([#53722](https://github.com/kubernetes/kubernetes/pull/53722),[ @deads2k](https://github.com/deads2k)) * RBAC rules can now match the same subresource on any resource using the form `*/(subresource)`. For example, `*/scale` matches requests to `replicationcontroller/scale`. ([#53722](https://github.com/kubernetes/kubernetes/pull/53722),[ @deads2k](https://github.com/deads2k))
* The RBAC bootstrapping policy now allows authenticated users to create selfsubjectrulesreviews. ([#56095](https://github.com/kubernetes/kubernetes/pull/56095),[ @ericchiang](https://github.com/ericchiang)) * The RBAC bootstrapping policy now allows authenticated users to create selfsubjectrulesreviews. ([#56095](https://github.com/kubernetes/kubernetes/pull/56095),[ @ericchiang](https://github.com/ericchiang))
* RBAC ClusterRoles can now select other roles to aggregate. ([#54005](https://github.com/kubernetes/kubernetes/pull/54005),[ @deads2k](https://github.com/deads2k)) * RBAC ClusterRoles can now select other roles to aggregate. ([#54005](https://github.com/kubernetes/kubernetes/pull/54005),[ @deads2k](https://github.com/deads2k))
...@@ -1665,7 +1665,7 @@ This release passes 129/145 Kubernetes e2e conformance tests. ...@@ -1665,7 +1665,7 @@ This release passes 129/145 Kubernetes e2e conformance tests.
* Load balancing is now more flexible: * Load balancing is now more flexible:
* The OpenStack LBaaS v2 Provider is now [configurable](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/#openstack). ([#54176](https://github.com/kubernetes/kubernetes/pull/54176),[ @gonzolino](https://github.com/gonzolino)) * The OpenStack LBaaS v2 Provider is now [configurable](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/#openstack). ([#54176](https://github.com/kubernetes/kubernetes/pull/54176),[ @gonzolino](https://github.com/gonzolino))
* OpenStack Octavia v2 is now supported as a load balancer provider in addition to the existing support for the Neutron LBaaS V2 implementation. Neutron LBaaS V1 support has been removed. ([#55393](https://github.com/kubernetes/kubernetes/pull/55393),[ @jamiehannaford](https://github.com/jamiehannaford)) * OpenStack Octavia v2 is now supported as a load balancer provider in addition to the existing support for the Neutron LBaaS V2 implementation. Neutron LBaaS V1 support has been removed. ([#55393](https://github.com/kubernetes/kubernetes/pull/55393),[ @jamiehannaford](https://github.com/jamiehannaford))
* OpenStack security group support has been beefed up ([#50836](https://github.com/kubernetes/kubernetes/pull/50836),[ @FengyunPan](https://github.com/FengyunPan)): * OpenStack security group support has been beefed up ([#50836](https://github.com/kubernetes/kubernetes/pull/50836),[ @FengyunPan](https://github.com/FengyunPan)):
* Kubernetes will now automatically determine the security group for the node * Kubernetes will now automatically determine the security group for the node
* Nodes can now belong to multiple security groups * Nodes can now belong to multiple security groups
...@@ -1679,7 +1679,7 @@ This release passes 129/145 Kubernetes e2e conformance tests. ...@@ -1679,7 +1679,7 @@ This release passes 129/145 Kubernetes e2e conformance tests.
* Scheduler cache ignores updates to an assumed pod if updates are limited to pod annotations. ([#54008](https://github.com/kubernetes/kubernetes/pull/54008),[ @yguo0905](https://github.com/yguo0905)) * Scheduler cache ignores updates to an assumed pod if updates are limited to pod annotations. ([#54008](https://github.com/kubernetes/kubernetes/pull/54008),[ @yguo0905](https://github.com/yguo0905))
* Issues with namespace deletion have been resolved. ([#53720](https://github.com/kubernetes/kubernetes/pull/53720),[ @shyamjvs](https://github.com/shyamjvs)) ([#53793](https://github.com/kubernetes/kubernetes/pull/53793),[ @wojtek-t](https://github.com/wojtek-t)) * Issues with namespace deletion have been resolved. ([#53720](https://github.com/kubernetes/kubernetes/pull/53720),[ @shyamjvs](https://github.com/shyamjvs)) ([#53793](https://github.com/kubernetes/kubernetes/pull/53793),[ @wojtek-t](https://github.com/wojtek-t))
* Pod preemption has been improved. * Pod preemption has been improved.
* Now takes PodDisruptionBudget into account. ([#56178](https://github.com/kubernetes/kubernetes/pull/56178),[ @bsalamat](https://github.com/bsalamat)) * Now takes PodDisruptionBudget into account. ([#56178](https://github.com/kubernetes/kubernetes/pull/56178),[ @bsalamat](https://github.com/bsalamat))
* Nominated pods are taken into account during scheduling to avoid starvation of higher priority pods. ([#55933](https://github.com/kubernetes/kubernetes/pull/55933),[ @bsalamat](https://github.com/bsalamat)) * Nominated pods are taken into account during scheduling to avoid starvation of higher priority pods. ([#55933](https://github.com/kubernetes/kubernetes/pull/55933),[ @bsalamat](https://github.com/bsalamat))
* Fixed 'Schedulercache is corrupted' error in kube-scheduler ([#55262](https://github.com/kubernetes/kubernetes/pull/55262),[ @liggitt](https://github.com/liggitt)) * Fixed 'Schedulercache is corrupted' error in kube-scheduler ([#55262](https://github.com/kubernetes/kubernetes/pull/55262),[ @liggitt](https://github.com/liggitt))
...@@ -1699,12 +1699,12 @@ This release passes 129/145 Kubernetes e2e conformance tests. ...@@ -1699,12 +1699,12 @@ This release passes 129/145 Kubernetes e2e conformance tests.
* [alpha] Deletion of `PersistentVolumeClaim` objects that are in use by a pod no longer permitted (if alpha feature is enabled). * [alpha] Deletion of `PersistentVolumeClaim` objects that are in use by a pod no longer permitted (if alpha feature is enabled).
* [alpha] Container Storage Interface * [alpha] Container Storage Interface
* New CSIVolumeSource enables Kubernetes to use external CSI drivers to provision, attach, and mount volumes. * New CSIVolumeSource enables Kubernetes to use external CSI drivers to provision, attach, and mount volumes.
* [alpha] Raw block volumes * [alpha] Raw block volumes
* Support for surfacing volumes as raw block devices added to Kubernetes storage system. * Support for surfacing volumes as raw block devices added to Kubernetes storage system.
* Only Fibre Channel volume plugin supports exposes this functionality, in this release. * Only Fibre Channel volume plugin supports exposes this functionality, in this release.
* [alpha] Volume resizing * [alpha] Volume resizing
* Added file system resizing for the following volume plugins: GCE PD, Ceph RBD, AWS EBS, OpenStack Cinder * Added file system resizing for the following volume plugins: GCE PD, Ceph RBD, AWS EBS, OpenStack Cinder
* [alpha] Topology Aware Volume Scheduling * [alpha] Topology Aware Volume Scheduling
* Improved volume scheduling for Local PersistentVolumes, by allowing the scheduler to make PersistentVolume binding decisions while respecting the Pod's scheduling requirements. * Improved volume scheduling for Local PersistentVolumes, by allowing the scheduler to make PersistentVolume binding decisions while respecting the Pod's scheduling requirements.
* Dynamic provisioning is not supported with this feature yet. * Dynamic provisioning is not supported with this feature yet.
* [alpha] Containerized mount utilities * [alpha] Containerized mount utilities
...@@ -2082,7 +2082,7 @@ filename | sha256 hash ...@@ -2082,7 +2082,7 @@ filename | sha256 hash
* The minimum supported go version bumps to 1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301), [@xiangpengzhao](https://github.com/xiangpengzhao)) * The minimum supported go version bumps to 1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301), [@xiangpengzhao](https://github.com/xiangpengzhao))
* GCE: provide an option to disable docker's live-restore on COS/ubuntu ([#55260](https://github.com/kubernetes/kubernetes/pull/55260), [@yujuhong](https://github.com/yujuhong)) * GCE: provide an option to disable docker's live-restore on COS/ubuntu ([#55260](https://github.com/kubernetes/kubernetes/pull/55260), [@yujuhong](https://github.com/yujuhong))
* Azure NSG rules for services exposed via external load balancer ([#54177](https://github.com/kubernetes/kubernetes/pull/54177), [@itowlson](https://github.com/itowlson)) * Azure NSG rules for services exposed via external load balancer ([#54177](https://github.com/kubernetes/kubernetes/pull/54177), [@itowlson](https://github.com/itowlson))
* now limit the destination IP address to the relevant front end load * now limit the destination IP address to the relevant front end load
* balancer IP. * balancer IP.
* DaemonSet status now has a new field named "conditions", making it consistent with other workloads controllers. ([#55272](https://github.com/kubernetes/kubernetes/pull/55272), [@janetkuo](https://github.com/janetkuo)) * DaemonSet status now has a new field named "conditions", making it consistent with other workloads controllers. ([#55272](https://github.com/kubernetes/kubernetes/pull/55272), [@janetkuo](https://github.com/janetkuo))
* kubeadm: Add an experimental mode to deploy CoreDNS instead of KubeDNS ([#52501](https://github.com/kubernetes/kubernetes/pull/52501), [@rajansandeep](https://github.com/rajansandeep)) * kubeadm: Add an experimental mode to deploy CoreDNS instead of KubeDNS ([#52501](https://github.com/kubernetes/kubernetes/pull/52501), [@rajansandeep](https://github.com/rajansandeep))
...@@ -2358,10 +2358,10 @@ filename | sha256 hash ...@@ -2358,10 +2358,10 @@ filename | sha256 hash
* Add monitoring of Windows Server containers metrics in the kubelet via the stats/summary endpoint. ([#50396](https://github.com/kubernetes/kubernetes/pull/50396), [@bobbypage](https://github.com/bobbypage)) * Add monitoring of Windows Server containers metrics in the kubelet via the stats/summary endpoint. ([#50396](https://github.com/kubernetes/kubernetes/pull/50396), [@bobbypage](https://github.com/bobbypage))
* Restores redirect behavior for proxy subresources ([#52933](https://github.com/kubernetes/kubernetes/pull/52933), [@liggitt](https://github.com/liggitt)) * Restores redirect behavior for proxy subresources ([#52933](https://github.com/kubernetes/kubernetes/pull/52933), [@liggitt](https://github.com/liggitt))
* A new service annotation has been added for services of type LoadBalancer on Azure, ([#51757](https://github.com/kubernetes/kubernetes/pull/51757), [@itowlson](https://github.com/itowlson)) * A new service annotation has been added for services of type LoadBalancer on Azure, ([#51757](https://github.com/kubernetes/kubernetes/pull/51757), [@itowlson](https://github.com/itowlson))
* to specify the subnet on which the service's front end IP should be provisioned. The * to specify the subnet on which the service's front end IP should be provisioned. The
* annotation is service.beta.kubernetes.io/azure-load-balancer-internal-subnet and its * annotation is service.beta.kubernetes.io/azure-load-balancer-internal-subnet and its
* value is the subnet name (not the subnet ARM ID). If omitted, the default is the * value is the subnet name (not the subnet ARM ID). If omitted, the default is the
* master subnet. It is ignored if the service is not on Azure, if the type is not * master subnet. It is ignored if the service is not on Azure, if the type is not
* LoadBalancer, or if the load balancer is not internal. * LoadBalancer, or if the load balancer is not internal.
* Adds a command-line argument to kube-apiserver called ([#51698](https://github.com/kubernetes/kubernetes/pull/51698), [@rphillips](https://github.com/rphillips)) * Adds a command-line argument to kube-apiserver called ([#51698](https://github.com/kubernetes/kubernetes/pull/51698), [@rphillips](https://github.com/rphillips))
* --alpha-endpoint-reconciler-type=(master-count, lease, none) (default * --alpha-endpoint-reconciler-type=(master-count, lease, none) (default
...@@ -2544,7 +2544,7 @@ filename | sha256 hash ...@@ -2544,7 +2544,7 @@ filename | sha256 hash
* PersistentVolumeClaim metrics like "volume_stats_inodes" and "volume_stats_capacity_bytes" are now reported via kubelet prometheus ([#51553](https://github.com/kubernetes/kubernetes/pull/51553), [@wongma7](https://github.com/wongma7)) * PersistentVolumeClaim metrics like "volume_stats_inodes" and "volume_stats_capacity_bytes" are now reported via kubelet prometheus ([#51553](https://github.com/kubernetes/kubernetes/pull/51553), [@wongma7](https://github.com/wongma7))
* When using IP aliases, use a secondary range rather than subnetwork to reserve cluster IPs. ([#51690](https://github.com/kubernetes/kubernetes/pull/51690), [@bowei](https://github.com/bowei)) * When using IP aliases, use a secondary range rather than subnetwork to reserve cluster IPs. ([#51690](https://github.com/kubernetes/kubernetes/pull/51690), [@bowei](https://github.com/bowei))
* IPAM controller unifies handling of node pod CIDR range allocation. ([#51374](https://github.com/kubernetes/kubernetes/pull/51374), [@bowei](https://github.com/bowei)) * IPAM controller unifies handling of node pod CIDR range allocation. ([#51374](https://github.com/kubernetes/kubernetes/pull/51374), [@bowei](https://github.com/bowei))
* It is intended to supersede the logic that is currently in range_allocator * It is intended to supersede the logic that is currently in range_allocator
* and cloud_cidr_allocator. (ALPHA FEATURE) * and cloud_cidr_allocator. (ALPHA FEATURE)
* Note: for this change, the other allocators still exist and are the default. * Note: for this change, the other allocators still exist and are the default.
* It supports two modes: * It supports two modes:
......
## Support for deploying and using Kubernetes ## Support for deploying and using Kubernetes
Welcome to Kubernetes! We use GitHub for tracking bugs and feature requests. Welcome to Kubernetes! We use GitHub for tracking bugs and feature requests.
This isn't the right place to get support for using Kubernetes, but the following This isn't the right place to get support for using Kubernetes, but the following
resources are available below, thanks for understanding. resources are available below, thanks for understanding.
### Stack Overflow ### Stack Overflow
The Kubernetes Community is active on Stack Overflow, you can post your questions there: The Kubernetes Community is active on Stack Overflow, you can post your questions there:
* [Kubernetes on Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes) * [Kubernetes on Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes)
* Here are some tips for [about how to ask good questions](https://stackoverflow.com/help/how-to-ask). * Here are some tips for [about how to ask good questions](https://stackoverflow.com/help/how-to-ask).
* Don't forget to check to see [what's on topic](http://stackoverflow.com/help/on-topic). * Don't forget to check to see [what's on topic](http://stackoverflow.com/help/on-topic).
### Documentation ### Documentation
* [User Documentation](https://kubernetes.io/docs/) * [User Documentation](https://kubernetes.io/docs/)
* [Troubleshooting Guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/) * [Troubleshooting Guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/)
### Real-time Chat ### Real-time Chat
* [Slack](https://kubernetes.slack.com) ([registration](http://slack.k8s.io)): * [Slack](https://kubernetes.slack.com) ([registration](http://slack.k8s.io)):
The `#kubernetes-users` and `#kubernetes-novice` channels are usual places where The `#kubernetes-users` and `#kubernetes-novice` channels are usual places where
people offer support. people offer support.
### Forum ### Forum
......
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: heapster name: heapster
namespace: kube-system namespace: kube-system
labels: labels:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "Heapster" kubernetes.io/name: "Heapster"
spec: spec:
ports: ports:
- port: 80 - port: 80
targetPort: 8082 targetPort: 8082
selector: selector:
k8s-app: heapster k8s-app: heapster
...@@ -7,9 +7,9 @@ metadata: ...@@ -7,9 +7,9 @@ metadata:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "Heapster" kubernetes.io/name: "Heapster"
spec: spec:
ports: ports:
- port: 80 - port: 80
targetPort: 8082 targetPort: 8082
selector: selector:
k8s-app: heapster k8s-app: heapster
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: heapster name: heapster
namespace: kube-system namespace: kube-system
labels: labels:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "Heapster" kubernetes.io/name: "Heapster"
spec: spec:
ports: ports:
- port: 80 - port: 80
targetPort: 8082 targetPort: 8082
selector: selector:
k8s-app: heapster k8s-app: heapster
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: heapster name: heapster
namespace: kube-system namespace: kube-system
labels: labels:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "Heapster" kubernetes.io/name: "Heapster"
spec: spec:
ports: ports:
- port: 80 - port: 80
targetPort: 8082 targetPort: 8082
selector: selector:
k8s-app: heapster k8s-app: heapster
...@@ -6,7 +6,7 @@ Design details [here](https://git.k8s.io/enhancements/keps/sig-network/0030-node ...@@ -6,7 +6,7 @@ Design details [here](https://git.k8s.io/enhancements/keps/sig-network/0030-node
## nodelocaldns addon template ## nodelocaldns addon template
This directory contains the addon config yaml - `nodelocaldns.yaml` This directory contains the addon config yaml - `nodelocaldns.yaml`
The variables will be substituted by the configure scripts when the yaml is copied into master. The variables will be substituted by the configure scripts when the yaml is copied into master.
To create a GCE cluster with nodelocaldns enabled, use the command: To create a GCE cluster with nodelocaldns enabled, use the command:
`KUBE_ENABLE_NODELOCAL_DNS=true go run hack/e2e.go -v --up` `KUBE_ENABLE_NODELOCAL_DNS=true go run hack/e2e.go -v --up`
......
...@@ -15,7 +15,7 @@ metadata: ...@@ -15,7 +15,7 @@ metadata:
name: ip-masq-agent name: ip-masq-agent
namespace: kube-system namespace: kube-system
labels: labels:
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
spec: spec:
selector: selector:
matchLabels: matchLabels:
...@@ -45,7 +45,7 @@ spec: ...@@ -45,7 +45,7 @@ spec:
- name: config - name: config
mountPath: /etc/config mountPath: /etc/config
nodeSelector: nodeSelector:
beta.kubernetes.io/masq-agent-ds-ready: "true" beta.kubernetes.io/masq-agent-ds-ready: "true"
volumes: volumes:
- name: config - name: config
configMap: configMap:
......
...@@ -43,8 +43,8 @@ spec: ...@@ -43,8 +43,8 @@ spec:
failureThreshold: 1 failureThreshold: 1
successThreshold: 1 successThreshold: 1
args: args:
- -o KubernetesUseWatch=true - -o KubernetesUseWatch=true
- -o KubernetesClusterLevelMetadata=false - -o KubernetesClusterLevelMetadata=false
- -o MetadataReporterPurgeDeleted=true - -o MetadataReporterPurgeDeleted=true
ports: ports:
- containerPort: 8000 - containerPort: 8000
...@@ -105,8 +105,8 @@ spec: ...@@ -105,8 +105,8 @@ spec:
failureThreshold: 1 failureThreshold: 1
successThreshold: 1 successThreshold: 1
args: args:
- -o KubernetesUseWatch=true - -o KubernetesUseWatch=true
- -o KubernetesClusterLevelMetadata=true - -o KubernetesClusterLevelMetadata=true
- -o MetadataReporterPurgeDeleted=true - -o MetadataReporterPurgeDeleted=true
ports: ports:
- containerPort: 8000 - containerPort: 8000
......
...@@ -14,5 +14,5 @@ spec: ...@@ -14,5 +14,5 @@ spec:
protocol: TCP protocol: TCP
targetPort: 9093 targetPort: 9093
selector: selector:
k8s-app: alertmanager k8s-app: alertmanager
type: "ClusterIP" type: "ClusterIP"
...@@ -69,7 +69,7 @@ rules: ...@@ -69,7 +69,7 @@ rules:
resourceNames: ["kube-state-metrics"] resourceNames: ["kube-state-metrics"]
verbs: ["get", "update"] verbs: ["get", "update"]
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding kind: ClusterRoleBinding
metadata: metadata:
name: kube-state-metrics name: kube-state-metrics
......
apiVersion: apps/v1 apiVersion: apps/v1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
name: node-exporter name: node-exporter
namespace: kube-system namespace: kube-system
labels: labels:
k8s-app: node-exporter k8s-app: node-exporter
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
version: v0.15.2 version: v0.15.2
spec: spec:
selector: selector:
matchLabels: matchLabels:
k8s-app: node-exporter k8s-app: node-exporter
version: v0.15.2 version: v0.15.2
updateStrategy: updateStrategy:
type: OnDelete type: OnDelete
template: template:
metadata: metadata:
labels: labels:
k8s-app: node-exporter k8s-app: node-exporter
version: v0.15.2 version: v0.15.2
annotations: annotations:
scheduler.alpha.kubernetes.io/critical-pod: '' scheduler.alpha.kubernetes.io/critical-pod: ''
......
...@@ -17,4 +17,4 @@ spec: ...@@ -17,4 +17,4 @@ spec:
protocol: TCP protocol: TCP
targetPort: 9100 targetPort: 9100
selector: selector:
k8s-app: node-exporter k8s-app: node-exporter
...@@ -3,7 +3,7 @@ apiVersion: v1 ...@@ -3,7 +3,7 @@ apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: prometheus-config name: prometheus-config
namespace: kube-system namespace: kube-system
labels: labels:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: EnsureExists addonmanager.kubernetes.io/mode: EnsureExists
...@@ -30,7 +30,7 @@ data: ...@@ -30,7 +30,7 @@ data:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: true insecure_skip_verify: true
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
- job_name: kubernetes-nodes-kubelet - job_name: kubernetes-nodes-kubelet
kubernetes_sd_configs: kubernetes_sd_configs:
- role: node - role: node
...@@ -161,7 +161,7 @@ data: ...@@ -161,7 +161,7 @@ data:
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs: relabel_configs:
- source_labels: [__meta_kubernetes_namespace] - source_labels: [__meta_kubernetes_namespace]
regex: kube-system regex: kube-system
action: keep action: keep
- source_labels: [__meta_kubernetes_pod_label_k8s_app] - source_labels: [__meta_kubernetes_pod_label_k8s_app]
regex: alertmanager regex: alertmanager
......
...@@ -13,7 +13,7 @@ metadata: ...@@ -13,7 +13,7 @@ metadata:
name: prometheus name: prometheus
labels: labels:
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
rules: rules:
- apiGroups: - apiGroups:
- "" - ""
......
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: prometheus name: prometheus
namespace: kube-system namespace: kube-system
labels: labels:
kubernetes.io/name: "Prometheus" kubernetes.io/name: "Prometheus"
kubernetes.io/cluster-service: "true" kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile addonmanager.kubernetes.io/mode: Reconcile
spec: spec:
ports: ports:
- name: http - name: http
port: 9090 port: 9090
protocol: TCP protocol: TCP
targetPort: 9090 targetPort: 9090
selector: selector:
k8s-app: prometheus k8s-app: prometheus
apiVersion: apps/v1 apiVersion: apps/v1
kind: StatefulSet kind: StatefulSet
metadata: metadata:
name: prometheus name: prometheus
namespace: kube-system namespace: kube-system
labels: labels:
k8s-app: prometheus k8s-app: prometheus
...@@ -85,7 +85,7 @@ spec: ...@@ -85,7 +85,7 @@ spec:
requests: requests:
cpu: 200m cpu: 200m
memory: 1000Mi memory: 1000Mi
volumeMounts: volumeMounts:
- name: config-volume - name: config-volume
mountPath: /etc/config mountPath: /etc/config
......
...@@ -30,7 +30,7 @@ KUBE_CONTROLLER_MANAGER_ROOT_CA_FILE="--root-ca-file=/srv/kubernetes/ca.crt" ...@@ -30,7 +30,7 @@ KUBE_CONTROLLER_MANAGER_ROOT_CA_FILE="--root-ca-file=/srv/kubernetes/ca.crt"
# RSA key used to sign service account tokens. # RSA key used to sign service account tokens.
KUBE_CONTROLLER_MANAGER_SERVICE_ACCOUNT_PRIVATE_KEY_FILE="--service-account-private-key-file=/srv/kubernetes/server.key" KUBE_CONTROLLER_MANAGER_SERVICE_ACCOUNT_PRIVATE_KEY_FILE="--service-account-private-key-file=/srv/kubernetes/server.key"
# --leader-elect: Start a leader election client and gain leadership before # --leader-elect: Start a leader election client and gain leadership before
# executing the main loop. Enable this when running replicated components for high availability. # executing the main loop. Enable this when running replicated components for high availability.
KUBE_LEADER_ELECT="--leader-elect" KUBE_LEADER_ELECT="--leader-elect"
EOF EOF
......
...@@ -30,7 +30,7 @@ KUBE_LOG_LEVEL="--v=4" ...@@ -30,7 +30,7 @@ KUBE_LOG_LEVEL="--v=4"
# --master: The address of the Kubernetes API server (overrides any value in kubeconfig). # --master: The address of the Kubernetes API server (overrides any value in kubeconfig).
KUBE_MASTER="--master=${MASTER_ADDRESS}:8080" KUBE_MASTER="--master=${MASTER_ADDRESS}:8080"
# --leader-elect: Start a leader election client and gain leadership before # --leader-elect: Start a leader election client and gain leadership before
# executing the main loop. Enable this when running replicated components for high availability. # executing the main loop. Enable this when running replicated components for high availability.
KUBE_LEADER_ELECT="--leader-elect" KUBE_LEADER_ELECT="--leader-elect"
......
...@@ -82,7 +82,7 @@ function get_bin() { ...@@ -82,7 +82,7 @@ function get_bin() {
echo "Source directory path is required" echo "Source directory path is required"
exit 1 exit 1
fi fi
locations=( locations=(
"${KUBE_ROOT}/_output/bin/${bin}" "${KUBE_ROOT}/_output/bin/${bin}"
"${KUBE_ROOT}/_output/dockerized/bin/${host_os}/${host_arch}/${bin}" "${KUBE_ROOT}/_output/dockerized/bin/${host_os}/${host_arch}/${bin}"
......
...@@ -206,11 +206,11 @@ TEST_CLUSTER_RESYNC_PERIOD="${TEST_CLUSTER_RESYNC_PERIOD:---min-resync-period=3m ...@@ -206,11 +206,11 @@ TEST_CLUSTER_RESYNC_PERIOD="${TEST_CLUSTER_RESYNC_PERIOD:---min-resync-period=3m
TEST_CLUSTER_API_CONTENT_TYPE="${TEST_CLUSTER_API_CONTENT_TYPE:-}" TEST_CLUSTER_API_CONTENT_TYPE="${TEST_CLUSTER_API_CONTENT_TYPE:-}"
KUBELET_TEST_ARGS="${KUBELET_TEST_ARGS:-} --serialize-image-pulls=false ${TEST_CLUSTER_API_CONTENT_TYPE}" KUBELET_TEST_ARGS="${KUBELET_TEST_ARGS:-} --serialize-image-pulls=false ${TEST_CLUSTER_API_CONTENT_TYPE}"
if [[ "${NODE_OS_DISTRIBUTION}" == "gci" ]] || [[ "${NODE_OS_DISTRIBUTION}" == "ubuntu" ]] || [[ "${NODE_OS_DISTRIBUTION}" == "custom" ]]; then if [[ "${NODE_OS_DISTRIBUTION}" == "gci" ]] || [[ "${NODE_OS_DISTRIBUTION}" == "ubuntu" ]] || [[ "${NODE_OS_DISTRIBUTION}" == "custom" ]]; then
NODE_KUBELET_TEST_ARGS="${NODE_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true" NODE_KUBELET_TEST_ARGS="${NODE_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true"
fi fi
if [[ "${MASTER_OS_DISTRIBUTION}" == "gci" ]] || [[ "${MASTER_OS_DISTRIBUTION}" == "ubuntu" ]]; then if [[ "${MASTER_OS_DISTRIBUTION}" == "gci" ]] || [[ "${MASTER_OS_DISTRIBUTION}" == "ubuntu" ]]; then
MASTER_KUBELET_TEST_ARGS="${MASTER_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true" MASTER_KUBELET_TEST_ARGS="${MASTER_KUBELET_TEST_ARGS:-} --experimental-kernel-memcg-notification=true"
fi fi
APISERVER_TEST_ARGS="${APISERVER_TEST_ARGS:-} --runtime-config=extensions/v1beta1,scheduling.k8s.io/v1alpha1,settings.k8s.io/v1alpha1 ${TEST_CLUSTER_DELETE_COLLECTION_WORKERS} ${TEST_CLUSTER_MAX_REQUESTS_INFLIGHT}" APISERVER_TEST_ARGS="${APISERVER_TEST_ARGS:-} --runtime-config=extensions/v1beta1,scheduling.k8s.io/v1alpha1,settings.k8s.io/v1alpha1 ${TEST_CLUSTER_DELETE_COLLECTION_WORKERS} ${TEST_CLUSTER_MAX_REQUESTS_INFLIGHT}"
CONTROLLER_MANAGER_TEST_ARGS="${CONTROLLER_MANAGER_TEST_ARGS:-} ${TEST_CLUSTER_RESYNC_PERIOD} ${TEST_CLUSTER_API_CONTENT_TYPE}" CONTROLLER_MANAGER_TEST_ARGS="${CONTROLLER_MANAGER_TEST_ARGS:-} ${TEST_CLUSTER_RESYNC_PERIOD} ${TEST_CLUSTER_API_CONTENT_TYPE}"
......
...@@ -80,7 +80,7 @@ flex_clean() { ...@@ -80,7 +80,7 @@ flex_clean() {
umount_silent ${MOUNTER_PATH}/var/lib/kubelet umount_silent ${MOUNTER_PATH}/var/lib/kubelet
umount_silent ${MOUNTER_PATH} umount_silent ${MOUNTER_PATH}
rm -rf ${MOUNTER_PATH} rm -rf ${MOUNTER_PATH}
if [[ -n ${IMAGE_URL:-} ]]; then if [[ -n ${IMAGE_URL:-} ]]; then
docker rmi -f ${IMAGE_URL} &> /dev/null || /bin/true docker rmi -f ${IMAGE_URL} &> /dev/null || /bin/true
fi fi
...@@ -98,7 +98,7 @@ generate_chroot_wrapper() { ...@@ -98,7 +98,7 @@ generate_chroot_wrapper() {
echo "Failed to set up FlexVolume driver: cannot find directory '/flexvolume' in the mount utility image." echo "Failed to set up FlexVolume driver: cannot find directory '/flexvolume' in the mount utility image."
exit 1 exit 1
fi fi
for driver_dir in ${MOUNTER_PATH}/flexvolume/*; do for driver_dir in ${MOUNTER_PATH}/flexvolume/*; do
if [ -d "$driver_dir" ]; then if [ -d "$driver_dir" ]; then
...@@ -107,7 +107,7 @@ generate_chroot_wrapper() { ...@@ -107,7 +107,7 @@ generate_chroot_wrapper() {
echo "ERROR: Expected 1 file in the FlexVolume directory but found $filecount." echo "ERROR: Expected 1 file in the FlexVolume directory but found $filecount."
exit 1 exit 1
fi fi
driver_file=$( ls $driver_dir | head -n 1 ) driver_file=$( ls $driver_dir | head -n 1 )
# driver_path points to the actual driver inside the mount utility image, # driver_path points to the actual driver inside the mount utility image,
......
...@@ -21,7 +21,7 @@ all: container ...@@ -21,7 +21,7 @@ all: container
container: container:
docker build --pull -t ${REGISTRY}/${IMAGE}:${TAG} . docker build --pull -t ${REGISTRY}/${IMAGE}:${TAG} .
push: push:
docker push ${REGISTRY}/${IMAGE}:${TAG} docker push ${REGISTRY}/${IMAGE}:${TAG}
upload: upload:
......
...@@ -210,7 +210,7 @@ function setup-base-image() { ...@@ -210,7 +210,7 @@ function setup-base-image() {
if [[ "${NODE_OS_DISTRIBUTION}" == "cos" ]]; then if [[ "${NODE_OS_DISTRIBUTION}" == "cos" ]]; then
NODE_OS_DISTRIBUTION="gci" NODE_OS_DISTRIBUTION="gci"
fi fi
source "${KUBE_ROOT}/cluster/gce/${NODE_OS_DISTRIBUTION}/node-helper.sh" source "${KUBE_ROOT}/cluster/gce/${NODE_OS_DISTRIBUTION}/node-helper.sh"
# Reset the node image based on current os distro # Reset the node image based on current os distro
set-linux-node-image set-linux-node-image
......
...@@ -65,7 +65,7 @@ Last, build and push the docker images for all supported architectures. ...@@ -65,7 +65,7 @@ Last, build and push the docker images for all supported architectures.
# Build images for all the architecture and push the manifest image as well # Build images for all the architecture and push the manifest image as well
$ make all-push $ make all-push
# Build images for all the architecture # Build images for all the architecture
$ make all-build $ make all-build
# Build image for target architecture(default=amd64) # Build image for target architecture(default=amd64)
......
...@@ -31,7 +31,7 @@ juju-quickstart`) or Ubuntu (`apt-get install juju-quickstart`). ...@@ -31,7 +31,7 @@ juju-quickstart`) or Ubuntu (`apt-get install juju-quickstart`).
### Deploy a Kubernetes Bundle ### Deploy a Kubernetes Bundle
Use the 'juju quickstart' command to deploy a Kubernetes cluster to any cloud Use the 'juju quickstart' command to deploy a Kubernetes cluster to any cloud
supported by Juju. supported by Juju.
The charm store version of the Kubernetes bundle can be deployed as follows: The charm store version of the Kubernetes bundle can be deployed as follows:
...@@ -174,7 +174,7 @@ for more details of what can be done with the command line tool. ...@@ -174,7 +174,7 @@ for more details of what can be done with the command line tool.
The kubernetes-bundle is open source and available on github.com. If The kubernetes-bundle is open source and available on github.com. If
you want to get started developing on the bundle you can clone it from you want to get started developing on the bundle you can clone it from
github. github.
git clone https://github.com/kubernetes/kubernetes.git git clone https://github.com/kubernetes/kubernetes.git
......
# This stubs out charm-pre-install coming from layer-docker as a workaround for # This stubs out charm-pre-install coming from layer-docker as a workaround for
# offline installs until https://github.com/juju/charm-tools/issues/301 is fixed. # offline installs until https://github.com/juju/charm-tools/issues/301 is fixed.
...@@ -23,7 +23,7 @@ set -o pipefail ...@@ -23,7 +23,7 @@ set -o pipefail
# echo "NOTE:" # echo "NOTE:"
# echo "kubectl.sh is deprecated and will be removed soon." # echo "kubectl.sh is deprecated and will be removed soon."
# echo "please replace all usage with calls to the kubectl" # echo "please replace all usage with calls to the kubectl"
# echo "binary and ensure that it is in your PATH." # echo "binary and ensure that it is in your PATH."
# echo "" # echo ""
# echo "Please see 'kubectl help config' for more details" # echo "Please see 'kubectl help config' for more details"
# echo "about configuring kubectl for your cluster." # echo "about configuring kubectl for your cluster."
......
# See the OWNERS docs at https://go.k8s.io/owners # See the OWNERS docs at https://go.k8s.io/owners
reviewers: reviewers:
- stevekuznetsov - stevekuznetsov
- deads2k - deads2k
- sttts - sttts
approvers: approvers:
- stevekuznetsov - stevekuznetsov
- deads2k - deads2k
- sttts - sttts
...@@ -4,5 +4,5 @@ approvers: ...@@ -4,5 +4,5 @@ approvers:
- sig-scheduling-maintainers - sig-scheduling-maintainers
reviewers: reviewers:
- sig-scheduling - sig-scheduling
labels: labels:
- sig/scheduling - sig/scheduling
...@@ -18,6 +18,6 @@ reviewers: ...@@ -18,6 +18,6 @@ reviewers:
- rosti - rosti
- yagonobre - yagonobre
# Might want to add @xiangpengzhao and @stealthybox back in the future # Might want to add @xiangpengzhao and @stealthybox back in the future
labels: labels:
- area/kubeadm - area/kubeadm
- sig/cluster-lifecycle - sig/cluster-lifecycle
...@@ -53,7 +53,7 @@ var ( ...@@ -53,7 +53,7 @@ var (
` + cmdutil.AlphaDisclaimer) ` + cmdutil.AlphaDisclaimer)
selfhostingExample = normalizer.Examples(` selfhostingExample = normalizer.Examples(`
# Converts a static Pod-hosted control plane into a self-hosted one. # Converts a static Pod-hosted control plane into a self-hosted one.
kubeadm alpha phase self-hosting convert-from-staticpods kubeadm alpha phase self-hosting convert-from-staticpods
`) `)
......
...@@ -77,7 +77,7 @@ var ( ...@@ -77,7 +77,7 @@ var (
joinLongDescription = dedent.Dedent(` joinLongDescription = dedent.Dedent(`
When joining a kubeadm initialized cluster, we need to establish When joining a kubeadm initialized cluster, we need to establish
bidirectional trust. This is split into discovery (having the Node bidirectional trust. This is split into discovery (having the Node
trust the Kubernetes Control Plane) and TLS bootstrap (having the trust the Kubernetes Control Plane) and TLS bootstrap (having the
Kubernetes Control Plane trust the Node). Kubernetes Control Plane trust the Node).
There are 2 main schemes for discovery. The first is to use a shared There are 2 main schemes for discovery. The first is to use a shared
...@@ -93,7 +93,7 @@ var ( ...@@ -93,7 +93,7 @@ var (
If you use a shared token for discovery, you should also pass the If you use a shared token for discovery, you should also pass the
--discovery-token-ca-cert-hash flag to validate the public key of the --discovery-token-ca-cert-hash flag to validate the public key of the
root certificate authority (CA) presented by the Kubernetes Control Plane. root certificate authority (CA) presented by the Kubernetes Control Plane.
The value of this flag is specified as "<hash-type>:<hex-encoded-value>", The value of this flag is specified as "<hash-type>:<hex-encoded-value>",
where the supported hash type is "sha256". The hash is calculated over where the supported hash type is "sha256". The hash is calculated over
the bytes of the Subject Public Key Info (SPKI) object (as in RFC7469). the bytes of the Subject Public Key Info (SPKI) object (as in RFC7469).
......
...@@ -45,7 +45,7 @@ var ( ...@@ -45,7 +45,7 @@ var (
short: "Generates a kubeconfig file for the kubelet to use *only* for cluster bootstrapping purposes", short: "Generates a kubeconfig file for the kubelet to use *only* for cluster bootstrapping purposes",
long: normalizer.LongDesc(` long: normalizer.LongDesc(`
Generates the kubeconfig file for the kubelet to use and saves it to %s file. Generates the kubeconfig file for the kubelet to use and saves it to %s file.
Please note that this should *only* be used for cluster bootstrapping purposes. After your control plane is up, Please note that this should *only* be used for cluster bootstrapping purposes. After your control plane is up,
you should request all kubelet credentials from the CSR API.`), you should request all kubelet credentials from the CSR API.`),
}, },
......
...@@ -36,7 +36,7 @@ import ( ...@@ -36,7 +36,7 @@ import (
var ( var (
uploadKubeadmConfigLongDesc = fmt.Sprintf(normalizer.LongDesc(` uploadKubeadmConfigLongDesc = fmt.Sprintf(normalizer.LongDesc(`
Uploads the kubeadm ClusterConfiguration to a ConfigMap called %s in the %s namespace. Uploads the kubeadm ClusterConfiguration to a ConfigMap called %s in the %s namespace.
This enables correct configuration of system components and a seamless user experience when upgrading. This enables correct configuration of system components and a seamless user experience when upgrading.
Alternatively, you can use kubeadm config. Alternatively, you can use kubeadm config.
......
...@@ -43,7 +43,7 @@ var ( ...@@ -43,7 +43,7 @@ var (
upgradeNodeConfigLongDesc = normalizer.LongDesc(` upgradeNodeConfigLongDesc = normalizer.LongDesc(`
Downloads the kubelet configuration from a ConfigMap of the form "kubelet-config-1.X" in the cluster, Downloads the kubelet configuration from a ConfigMap of the form "kubelet-config-1.X" in the cluster,
where X is the minor version of the kubelet. kubeadm uses the --kubelet-version parameter to determine where X is the minor version of the kubelet. kubeadm uses the --kubelet-version parameter to determine
what the _desired_ kubelet version is. Give what the _desired_ kubelet version is. Give
`) `)
upgradeNodeConfigExample = normalizer.Examples(fmt.Sprintf(` upgradeNodeConfigExample = normalizer.Examples(fmt.Sprintf(`
......
apiVersion: kubeadm.k8s.io/v1beta1 apiVersion: kubeadm.k8s.io/v1beta1
kind: InitConfiguration kind: InitConfiguration
bootstrapTokens: bootstrapTokens:
- token: s73ybu.6tw6wnqgp5z0wb77 - token: s73ybu.6tw6wnqgp5z0wb77
localAPIEndpoint: localAPIEndpoint:
......
...@@ -82,7 +82,7 @@ or not the job is healthy. ...@@ -82,7 +82,7 @@ or not the job is healthy.
New jobs should be specified as YAML files to be processed by [Jenkins Job New jobs should be specified as YAML files to be processed by [Jenkins Job
Builder](http://docs.openstack.org/infra/jenkins-job-builder/). The YAML files Builder](http://docs.openstack.org/infra/jenkins-job-builder/). The YAML files
live in `jenkins/job-configs` and its subfolders **in the live in `jenkins/job-configs` and its subfolders **in the
[kubernetes/test-infra repository](https://github.com/kubernetes/test-infra)**. [kubernetes/test-infra repository](https://github.com/kubernetes/test-infra)**.
Jenkins runs Jenkins Job Builder in a Docker container defined in Jenkins runs Jenkins Job Builder in a Docker container defined in
`job-builder-image`, and triggers it using `update-jobs.sh`. Jenkins Job Builder `job-builder-image`, and triggers it using `update-jobs.sh`. Jenkins Job Builder
......
...@@ -106,7 +106,7 @@ function set_kubernetes_base_path () { ...@@ -106,7 +106,7 @@ function set_kubernetes_base_path () {
function find_version() { function find_version() {
( (
# Where are we? # Where are we?
# This could be set in the global scope at some point if we need to # This could be set in the global scope at some point if we need to
# discover the kubernetes path elsewhere. # discover the kubernetes path elsewhere.
set_kubernetes_base_path set_kubernetes_base_path
......
...@@ -28,7 +28,7 @@ kube::log::errexit() { ...@@ -28,7 +28,7 @@ kube::log::errexit() {
set +o xtrace set +o xtrace
local code="${1:-1}" local code="${1:-1}"
# Print out the stack trace described by $function_stack # Print out the stack trace described by $function_stack
if [ ${#FUNCNAME[@]} -gt 2 ] if [ ${#FUNCNAME[@]} -gt 2 ]
then then
kube::log::error "Call tree:" kube::log::error "Call tree:"
...@@ -36,7 +36,7 @@ kube::log::errexit() { ...@@ -36,7 +36,7 @@ kube::log::errexit() {
do do
kube::log::error " ${i}: ${BASH_SOURCE[${i}+1]}:${BASH_LINENO[${i}]} ${FUNCNAME[${i}]}(...)" kube::log::error " ${i}: ${BASH_SOURCE[${i}+1]}:${BASH_LINENO[${i}]} ${FUNCNAME[${i}]}(...)"
done done
fi fi
kube::log::error_exit "Error in ${BASH_SOURCE[1]}:${BASH_LINENO[0]}. '${BASH_COMMAND}' exited with status ${err}" "${1:-1}" 1 kube::log::error_exit "Error in ${BASH_SOURCE[1]}:${BASH_LINENO[0]}. '${BASH_COMMAND}' exited with status ${err}" "${1:-1}" 1
} }
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
.PHONY: manifest-tool .PHONY: manifest-tool
MANIFEST_TOOL_DIR := $(shell mktemp -d) MANIFEST_TOOL_DIR := $(shell mktemp -d)
export PATH := $(MANIFEST_TOOL_DIR):$(PATH) export PATH := $(MANIFEST_TOOL_DIR):$(PATH)
......
...@@ -2,7 +2,7 @@ apiVersion: apps/v1 ...@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
labels: labels:
foo: boo foo: boo
name: scale-3 name: scale-3
spec: spec:
replicas: 1 replicas: 1
......
...@@ -127,7 +127,7 @@ for f in "${all_shell_scripts[@]}"; do ...@@ -127,7 +127,7 @@ for f in "${all_shell_scripts[@]}"; do
else else
failedLint=$(docker exec -t ${SHELLCHECK_CONTAINER} \ failedLint=$(docker exec -t ${SHELLCHECK_CONTAINER} \
shellcheck --exclude="${SHELLCHECK_DISABLED}" "${f}") shellcheck --exclude="${SHELLCHECK_DISABLED}" "${f}")
fi fi
set -o errexit set -o errexit
kube::util::array_contains "${f}" "${failing_files[@]}" && in_failing=$? || in_failing=$? kube::util::array_contains "${f}" "${failing_files[@]}" && in_failing=$? || in_failing=$?
if [[ -n "${failedLint}" ]] && [[ "${in_failing}" -ne "0" ]]; then if [[ -n "${failedLint}" ]] && [[ "${in_failing}" -ne "0" ]]; then
......
...@@ -23,13 +23,13 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/.. ...@@ -23,13 +23,13 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
cd "${KUBE_ROOT}" cd "${KUBE_ROOT}"
result=0 result=0
# Find mentions of untagged gcr.io images in test/e2e/*.go # Find mentions of untagged gcr.io images in test/e2e/*.go
find_e2e_test_untagged_gcr_images() { find_e2e_test_untagged_gcr_images() {
grep -o -E -e 'gcr.io/[-a-z0-9/_:.]+' test/e2e/*.go | grep -v -E "gcr.io/.*:" | cut -d ":" -f 1 | LC_ALL=C sort -u grep -o -E -e 'gcr.io/[-a-z0-9/_:.]+' test/e2e/*.go | grep -v -E "gcr.io/.*:" | cut -d ":" -f 1 | LC_ALL=C sort -u
} }
# Find mentions of latest gcr.io images in test/e2e/*.go # Find mentions of latest gcr.io images in test/e2e/*.go
find_e2e_test_latest_gcr_images() { find_e2e_test_latest_gcr_images() {
grep -o -E -e 'gcr.io/.*:latest' test/e2e/*.go | cut -d ":" -f 1 | LC_ALL=C sort -u grep -o -E -e 'gcr.io/.*:latest' test/e2e/*.go | cut -d ":" -f 1 | LC_ALL=C sort -u
} }
......
...@@ -7,7 +7,7 @@ follow these basic guidelines. ...@@ -7,7 +7,7 @@ follow these basic guidelines.
You may display, modify, or use the Kubernetes logo only in connection with You may display, modify, or use the Kubernetes logo only in connection with
compliant implementations of Kubernetes and related uses in the following ways. compliant implementations of Kubernetes and related uses in the following ways.
A compliant implementation is an implementation of the unmodified Cloud Native A compliant implementation is an implementation of the unmodified Cloud Native
Compute Foundation (CNCF) Compute Foundation (CNCF)
version of Kubernetes found at https://github.com/kubernetes/kubernetes and version of Kubernetes found at https://github.com/kubernetes/kubernetes and
compatible branches thereof, together with published specifications, APIs and compatible branches thereof, together with published specifications, APIs and
operational patterns.  Acceptable related uses include display, modification, operational patterns.  Acceptable related uses include display, modification,
......
...@@ -61,7 +61,7 @@ var ( ...@@ -61,7 +61,7 @@ var (
Reconciles rules for RBAC Role, RoleBinding, ClusterRole, and ClusterRole binding objects. Reconciles rules for RBAC Role, RoleBinding, ClusterRole, and ClusterRole binding objects.
Missing objects are created, and the containing namespace is created for namespaced objects, if required. Missing objects are created, and the containing namespace is created for namespaced objects, if required.
Existing roles are updated to include the permissions in the input objects, Existing roles are updated to include the permissions in the input objects,
and remove extra permissions if --remove-extra-permissions is specified. and remove extra permissions if --remove-extra-permissions is specified.
......
...@@ -48,7 +48,7 @@ var ( ...@@ -48,7 +48,7 @@ var (
CONTEXT_NAME is the context name that you wish change. CONTEXT_NAME is the context name that you wish change.
NEW_NAME is the new name you wish to set. NEW_NAME is the new name you wish to set.
Note: In case the context being renamed is the 'current-context', this field will also be updated.`) Note: In case the context being renamed is the 'current-context', this field will also be updated.`)
renameContextExample = templates.Examples(` renameContextExample = templates.Examples(`
......
...@@ -47,7 +47,7 @@ var ( ...@@ -47,7 +47,7 @@ var (
PROPERTY_NAME is a dot delimited name where each token represents either an attribute name or a map key. Map keys may not contain dots. PROPERTY_NAME is a dot delimited name where each token represents either an attribute name or a map key. Map keys may not contain dots.
PROPERTY_VALUE is the new value you wish to set. Binary fields such as 'certificate-authority-data' expect a base64 encoded string unless the --set-raw-bytes flag is used. PROPERTY_VALUE is the new value you wish to set. Binary fields such as 'certificate-authority-data' expect a base64 encoded string unless the --set-raw-bytes flag is used.
Specifying a attribute name that already exists will merge new fields on top of existing values.`) Specifying a attribute name that already exists will merge new fields on top of existing values.`)
setExample = templates.Examples(` setExample = templates.Examples(`
......
...@@ -153,7 +153,7 @@ var ( ...@@ -153,7 +153,7 @@ var (
Drain node in preparation for maintenance. Drain node in preparation for maintenance.
The given node will be marked unschedulable to prevent new pods from arriving. The given node will be marked unschedulable to prevent new pods from arriving.
'drain' evicts the pods if the APIServer supports 'drain' evicts the pods if the APIServer supports
[eviction](http://kubernetes.io/docs/admin/disruptions/). Otherwise, it will use normal [eviction](http://kubernetes.io/docs/admin/disruptions/). Otherwise, it will use normal
DELETE to delete the pods. DELETE to delete the pods.
The 'drain' evicts or deletes all pods except mirror pods (which cannot be deleted through The 'drain' evicts or deletes all pods except mirror pods (which cannot be deleted through
......
...@@ -44,7 +44,7 @@ Here are the general rules that Kubelet plugin developers should follow: ...@@ -44,7 +44,7 @@ Here are the general rules that Kubelet plugin developers should follow:
- The socket path needs to be unique within one directory, in normal case, - The socket path needs to be unique within one directory, in normal case,
each plugin type has its own sub directory, but the design does support socket file each plugin type has its own sub directory, but the design does support socket file
under any sub directory of PluginSockDir. under any sub directory of PluginSockDir.
- A plugin should clean up its own socket upon exiting or when a new instance - A plugin should clean up its own socket upon exiting or when a new instance
comes up. A plugin should NOT remove any sockets belonging to other plugins. comes up. A plugin should NOT remove any sockets belonging to other plugins.
......
...@@ -4,5 +4,5 @@ approvers: ...@@ -4,5 +4,5 @@ approvers:
- sig-scheduling-maintainers - sig-scheduling-maintainers
reviewers: reviewers:
- sig-scheduling - sig-scheduling
labels: labels:
- sig/scheduling - sig/scheduling
...@@ -9,4 +9,4 @@ reviewers: ...@@ -9,4 +9,4 @@ reviewers:
- rootfs - rootfs
- jingxu97 - jingxu97
- msau42 - msau42
- mtanino - mtanino
...@@ -12,4 +12,4 @@ reviewers: ...@@ -12,4 +12,4 @@ reviewers:
- humblec - humblec
- jingxu97 - jingxu97
- msau42 - msau42
- mtanino - mtanino
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/api](https://git.k8s.io/kubernetes/staging/src/k8s.io/api) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/api](https://git.k8s.io/kubernetes/staging/src/k8s.io/api) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/apiextensions-apiserver](https://git.k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/apiextensions-apiserver](https://git.k8s.io/kubernetes/staging/src/k8s.io/apiextensions-apiserver) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
...@@ -6,7 +6,7 @@ It provides an API for registering `CustomResourceDefinitions`. ...@@ -6,7 +6,7 @@ It provides an API for registering `CustomResourceDefinitions`.
## Purpose ## Purpose
This API server provides the implementation for `CustomResourceDefinitions` which is included as This API server provides the implementation for `CustomResourceDefinitions` which is included as
delegate server inside of `kube-apiserver`. delegate server inside of `kube-apiserver`.
......
...@@ -34,7 +34,7 @@ These act like most other Resources in Kubernetes, and may be `kubectl apply`'d, ...@@ -34,7 +34,7 @@ These act like most other Resources in Kubernetes, and may be `kubectl apply`'d,
Some example use cases: Some example use cases:
* Provisioning/Management of external datastores/databases (eg. CloudSQL/RDS instances) * Provisioning/Management of external datastores/databases (eg. CloudSQL/RDS instances)
* Higher level abstractions around Kubernetes primitives (eg. a single Resource to define an etcd cluster, backed by a Service and a ReplicationController) * Higher level abstractions around Kubernetes primitives (eg. a single Resource to define an etcd cluster, backed by a Service and a ReplicationController)
## Defining types ## Defining types
......
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/apimachinery](https://git.k8s.io/kubernetes/staging/src/k8s.io/apimachinery) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/apimachinery](https://git.k8s.io/kubernetes/staging/src/k8s.io/apimachinery) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
...@@ -5,7 +5,7 @@ Scheme, typing, encoding, decoding, and conversion packages for Kubernetes and K ...@@ -5,7 +5,7 @@ Scheme, typing, encoding, decoding, and conversion packages for Kubernetes and K
## Purpose ## Purpose
This library is a shared dependency for servers and clients to work with Kubernetes API infrastructure without direct This library is a shared dependency for servers and clients to work with Kubernetes API infrastructure without direct
type dependencies. Its first consumers are `k8s.io/kubernetes`, `k8s.io/client-go`, and `k8s.io/apiserver`. type dependencies. Its first consumers are `k8s.io/kubernetes`, `k8s.io/client-go`, and `k8s.io/apiserver`.
......
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -5,7 +5,7 @@ Generic library for building a Kubernetes aggregated API server. ...@@ -5,7 +5,7 @@ Generic library for building a Kubernetes aggregated API server.
## Purpose ## Purpose
This library contains code to create Kubernetes aggregation server complete with delegated authentication and authorization, This library contains code to create Kubernetes aggregation server complete with delegated authentication and authorization,
`kubectl` compatible discovery information, optional admission chain, and versioned types. It's first consumers are `kubectl` compatible discovery information, optional admission chain, and versioned types. It's first consumers are
`k8s.io/kubernetes`, `k8s.io/kube-aggregator`, and `github.com/kubernetes-incubator/service-catalog`. `k8s.io/kubernetes`, `k8s.io/kube-aggregator`, and `github.com/kubernetes-incubator/service-catalog`.
......
...@@ -21,4 +21,4 @@ cfssl sign -ca root.pem -ca-key root-key.pem -config intermediate.config.json in ...@@ -21,4 +21,4 @@ cfssl sign -ca root.pem -ca-key root-key.pem -config intermediate.config.json in
cfssl gencert -ca intermediate.pem -ca-key intermediate-key.pem -config client.config.json --profile=valid client.csr.json | cfssljson -bare client-valid cfssl gencert -ca intermediate.pem -ca-key intermediate-key.pem -config client.config.json --profile=valid client.csr.json | cfssljson -bare client-valid
cfssl gencert -ca intermediate.pem -ca-key intermediate-key.pem -config client.config.json --profile=expired client.csr.json | cfssljson -bare client-expired cfssl gencert -ca intermediate.pem -ca-key intermediate-key.pem -config client.config.json --profile=expired client.csr.json | cfssljson -bare client-expired
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
set -e set -e
# gencerts.sh generates the certificates for the webhook authz plugin tests. # gencerts.sh generates the certificates for the webhook authz plugin tests.
# #
# It is not expected to be run often (there is no go generate rule), and mainly # It is not expected to be run often (there is no go generate rule), and mainly
# exists for documentation purposes. # exists for documentation purposes.
......
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository, unless the Sorry, we do not accept changes directly against this repository, unless the
change is to the `README.md` itself. Please see change is to the `README.md` itself. Please see
`CONTRIBUTING.md` for information on where and how to contribute instead. `CONTRIBUTING.md` for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/client-go](https://git.k8s.io/kubernetes/staging/src/k8s.io/client-go) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/client-go](https://git.k8s.io/kubernetes/staging/src/k8s.io/client-go) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
...@@ -22,7 +22,7 @@ This plugin provides an integration with Azure Active Directory device flow. If ...@@ -22,7 +22,7 @@ This plugin provides an integration with Azure Active Directory device flow. If
* Replace `TENANT_ID` with your tenant ID. * Replace `TENANT_ID` with your tenant ID.
  * For a list of alternative username claims that are supported by the OIDC issuer check the JSON response at `https://sts.windows.net/TENANT_ID/.well-known/openid-configuration`.   * For a list of alternative username claims that are supported by the OIDC issuer check the JSON response at `https://sts.windows.net/TENANT_ID/.well-known/openid-configuration`.
5. Configure `kubectl` to use the `azure` authentication provider 5. Configure `kubectl` to use the `azure` authentication provider
``` ```
kubectl config set-credentials "USER_NAME" --auth-provider=azure \ kubectl config set-credentials "USER_NAME" --auth-provider=azure \
......
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/code-generator](https://git.k8s.io/kubernetes/staging/src/k8s.io/code-generator) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/code-generator](https://git.k8s.io/kubernetes/staging/src/k8s.io/code-generator) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
...@@ -152,7 +152,7 @@ func NewSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync ...@@ -152,7 +152,7 @@ func NewSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync
// as specified here. // as specified here.
// Deprecated: Please use NewSharedInformerFactoryWithOptions instead // Deprecated: Please use NewSharedInformerFactoryWithOptions instead
func NewFilteredSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}, namespace string, tweakListOptions {{.interfacesTweakListOptionsFunc|raw}}) SharedInformerFactory { func NewFilteredSharedInformerFactory(client {{.clientSetInterface|raw}}, defaultResync {{.timeDuration|raw}}, namespace string, tweakListOptions {{.interfacesTweakListOptionsFunc|raw}}) SharedInformerFactory {
return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions)) return NewSharedInformerFactoryWithOptions(client, defaultResync, WithNamespace(namespace), WithTweakListOptions(tweakListOptions))
} }
// NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options. // NewSharedInformerFactoryWithOptions constructs a new instance of a SharedInformerFactory with additional options.
...@@ -165,7 +165,7 @@ func NewSharedInformerFactoryWithOptions(client {{.clientSetInterface|raw}}, def ...@@ -165,7 +165,7 @@ func NewSharedInformerFactoryWithOptions(client {{.clientSetInterface|raw}}, def
startedInformers: make(map[{{.reflectType|raw}}]bool), startedInformers: make(map[{{.reflectType|raw}}]bool),
customResync: make(map[{{.reflectType|raw}}]{{.timeDuration|raw}}), customResync: make(map[{{.reflectType|raw}}]{{.timeDuration|raw}}),
} }
// Apply all options // Apply all options
for _, opt := range options { for _, opt := range options {
factory = opt(factory) factory = opt(factory)
......
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -6,7 +6,7 @@ reviewers: ...@@ -6,7 +6,7 @@ reviewers:
- msau42 - msau42
- ddebroy - ddebroy
- leakingtapan - leakingtapan
approvers: approvers:
- davidz627 - davidz627
- saad-ali - saad-ali
......
## Purpose ## Purpose
This repository contains functions to be consumed by various Kubernetes and This repository contains functions to be consumed by various Kubernetes and
out-of-tree CSI components like external provisioner to facilitate migration of out-of-tree CSI components like external provisioner to facilitate migration of
code from Kubernetes In-tree plugin code to CSI plugin repositories. code from Kubernetes In-tree plugin code to CSI plugin repositories.
Consumers of this repository can make use of functions like `TranslateToCSI` and Consumers of this repository can make use of functions like `TranslateToCSI` and
`TranslateToInTree` functions to translate PV sources. `TranslateToInTree` functions to translate PV sources.
## Community, discussion, contribution, and support ## Community, discussion, contribution, and support
......
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/kube-aggregator](https://git.k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/kube-aggregator](https://git.k8s.io/kubernetes/staging/src/k8s.io/kube-aggregator) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/metrics](https://git.k8s.io/kubernetes/staging/src/k8s.io/metrics) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/metrics](https://git.k8s.io/kubernetes/staging/src/k8s.io/metrics) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/sample-apiserver](https://git.k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/sample-apiserver](https://git.k8s.io/kubernetes/staging/src/k8s.io/sample-apiserver) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
Sorry, we do not accept changes directly against this repository. Please see Sorry, we do not accept changes directly against this repository. Please see
CONTRIBUTING.md for information on where and how to contribute instead. CONTRIBUTING.md for information on where and how to contribute instead.
...@@ -2,6 +2,6 @@ ...@@ -2,6 +2,6 @@
Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes. Do not open pull requests directly against this repository, they will be ignored. Instead, please open pull requests against [kubernetes/kubernetes](https://git.k8s.io/kubernetes/). Please follow the same [contributing guide](https://git.k8s.io/kubernetes/CONTRIBUTING.md) you would follow for any other pull request made to kubernetes/kubernetes.
This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/sample-controller](https://git.k8s.io/kubernetes/staging/src/k8s.io/sample-controller) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot). This repository is published from [kubernetes/kubernetes/staging/src/k8s.io/sample-controller](https://git.k8s.io/kubernetes/staging/src/k8s.io/sample-controller) by the [kubernetes publishing-bot](https://git.k8s.io/publishing-bot).
Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information Please see [Staging Directory and Publishing](https://git.k8s.io/community/contributors/devel/sig-architecture/staging.md) for more information
# client-go under the hood # client-go under the hood
The [client-go](https://github.com/kubernetes/client-go/) library contains various mechanisms that you can use when The [client-go](https://github.com/kubernetes/client-go/) library contains various mechanisms that you can use when
developing your custom controllers. These mechanisms are defined in the developing your custom controllers. These mechanisms are defined in the
[tools/cache folder](https://github.com/kubernetes/client-go/tree/master/tools/cache) of the library. [tools/cache folder](https://github.com/kubernetes/client-go/tree/master/tools/cache) of the library.
Here is a pictorial representation showing how the various components in Here is a pictorial representation showing how the various components in
the client-go library work and their interaction points with the custom the client-go library work and their interaction points with the custom
controller code that you will write. controller code that you will write.
<p align="center"> <p align="center">
...@@ -19,7 +19,7 @@ watches the Kubernetes API for the specified resource type (kind). ...@@ -19,7 +19,7 @@ watches the Kubernetes API for the specified resource type (kind).
The function in which this is done is *ListAndWatch*. The function in which this is done is *ListAndWatch*.
The watch could be for an in-built resource or it could be for a custom resource. The watch could be for an in-built resource or it could be for a custom resource.
When the reflector receives notification about existence of new When the reflector receives notification about existence of new
resource instance through the watch API, it gets the newly created object resource instance through the watch API, it gets the newly created object
using the corresponding listing API and puts it in the Delta Fifo queue using the corresponding listing API and puts it in the Delta Fifo queue
inside the *watchHandler* function. inside the *watchHandler* function.
...@@ -38,27 +38,27 @@ that generates an object’s key as `<namespace>/<name>` combination for that ob ...@@ -38,27 +38,27 @@ that generates an object’s key as `<namespace>/<name>` combination for that ob
## Custom Controller components ## Custom Controller components
* Informer reference: This is the reference to the Informer instance that knows * Informer reference: This is the reference to the Informer instance that knows
how to work with your custom resource objects. Your custom controller code needs how to work with your custom resource objects. Your custom controller code needs
to create the appropriate Informer. to create the appropriate Informer.
* Indexer reference: This is the reference to the Indexer instance that knows * Indexer reference: This is the reference to the Indexer instance that knows
how to work with your custom resource objects. Your custom controller code needs how to work with your custom resource objects. Your custom controller code needs
to create this. You will be using this reference for retrieving objects for to create this. You will be using this reference for retrieving objects for
later processing. later processing.
The base controller in client-go provides the *NewIndexerInformer* function to create Informer and Indexer. The base controller in client-go provides the *NewIndexerInformer* function to create Informer and Indexer.
In your code you can either [directly invoke this function](https://github.com/kubernetes/client-go/blob/master/examples/workqueue/main.go#L174) or [use factory methods for creating an informer.](https://github.com/kubernetes/sample-controller/blob/master/main.go#L61) In your code you can either [directly invoke this function](https://github.com/kubernetes/client-go/blob/master/examples/workqueue/main.go#L174) or [use factory methods for creating an informer.](https://github.com/kubernetes/sample-controller/blob/master/main.go#L61)
* Resource Event Handlers: These are the callback functions which will be called by * Resource Event Handlers: These are the callback functions which will be called by
the Informer when it wants to deliver an object to your controller. The typical the Informer when it wants to deliver an object to your controller. The typical
pattern to write these functions is to obtain the dispatched object’s key pattern to write these functions is to obtain the dispatched object’s key
and enqueue that key in a work queue for further processing. and enqueue that key in a work queue for further processing.
* Work queue: This is the queue that you create in your controller code to decouple * Work queue: This is the queue that you create in your controller code to decouple
delivery of an object from its processing. Resource event handler functions are written delivery of an object from its processing. Resource event handler functions are written
to extract the delivered object’s key and add that to the work queue. to extract the delivered object’s key and add that to the work queue.
* Process Item: This is the function that you create in your code which processes items * Process Item: This is the function that you create in your code which processes items
from the work queue. There can be one or more other functions that do the actual processing. from the work queue. There can be one or more other functions that do the actual processing.
These functions will typically use the [Indexer reference](https://github.com/kubernetes/client-go/blob/master/examples/workqueue/main.go#L73), or a Listing wrapper to retrieve the object corresponding to the key. These functions will typically use the [Indexer reference](https://github.com/kubernetes/client-go/blob/master/examples/workqueue/main.go#L73), or a Listing wrapper to retrieve the object corresponding to the key.
\ No newline at end of file
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
approvers: approvers:
- saad-ali - saad-ali
- rootfs - rootfs
- gnufied - gnufied
- jingxu97 - jingxu97
- jsafrane - jsafrane
- msau42 - msau42
reviewers: reviewers:
- saad-ali - saad-ali
- rootfs - rootfs
- gnufied - gnufied
- jingxu97 - jingxu97
- jsafrane - jsafrane
- msau42 - msau42
......
...@@ -8,7 +8,7 @@ spec: ...@@ -8,7 +8,7 @@ spec:
minReadySeconds: 60 minReadySeconds: 60
selector: selector:
matchLabels: matchLabels:
run: hostname run: hostname
template: template:
metadata: metadata:
labels: labels:
......
...@@ -7,7 +7,7 @@ metadata: ...@@ -7,7 +7,7 @@ metadata:
spec: spec:
selector: selector:
matchLabels: matchLabels:
run: hostname run: hostname
template: template:
metadata: metadata:
labels: labels:
......
...@@ -8,7 +8,7 @@ spec: ...@@ -8,7 +8,7 @@ spec:
minReadySeconds: 60 minReadySeconds: 60
selector: selector:
matchLabels: matchLabels:
run: hostname run: hostname
template: template:
metadata: metadata:
labels: labels:
......
...@@ -37,7 +37,7 @@ spec: ...@@ -37,7 +37,7 @@ spec:
lifecycle: lifecycle:
preStop: preStop:
exec: exec:
command: command:
- /bin/sh - /bin/sh
- -c - -c
- nodetool drain - nodetool drain
......
...@@ -152,7 +152,7 @@ spec: ...@@ -152,7 +152,7 @@ spec:
apiVersion: policy/v1beta1 apiVersion: policy/v1beta1
kind: PodDisruptionBudget kind: PodDisruptionBudget
metadata: metadata:
name: mysql-pdb name: mysql-pdb
labels: labels:
pdb: mysql pdb: mysql
spec: spec:
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
approvers: approvers:
- saad-ali - saad-ali
- rootfs - rootfs
- gnufied - gnufied
- jingxu97 - jingxu97
- jsafrane - jsafrane
- msau42 - msau42
reviewers: reviewers:
- saad-ali - saad-ali
- rootfs - rootfs
- gnufied - gnufied
- jingxu97 - jingxu97
- jsafrane - jsafrane
- msau42 - msau42
......
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: csi-hostpath-provisioner name: csi-hostpath-provisioner
labels: labels:
app: csi-hostpath-provisioner app: csi-hostpath-provisioner
spec: spec:
selector: selector:
app: csi-hostpath-provisioner app: csi-hostpath-provisioner
ports: ports:
- name: dummy - name: dummy
port: 12345 port: 12345
......
kind: Service kind: Service
apiVersion: v1 apiVersion: v1
metadata: metadata:
name: csi-hostpath-provisioner name: csi-hostpath-provisioner
labels: labels:
app: csi-hostpath-provisioner app: csi-hostpath-provisioner
spec: spec:
selector: selector:
app: csi-hostpath-provisioner app: csi-hostpath-provisioner
ports: ports:
- name: dummy - name: dummy
port: 12345 port: 12345
......
...@@ -15,6 +15,6 @@ export KUBE_TEST_REPO_LIST=$(pwd)/repo_list ...@@ -15,6 +15,6 @@ export KUBE_TEST_REPO_LIST=$(pwd)/repo_list
``` ```
# e2e_node/density_test diff # e2e_node/density_test diff
This test is borrowed from the density test in e2e_node/density_test. All but the first test were omitted as well as some logging. This test is borrowed from the density test in e2e_node/density_test. All but the first test were omitted as well as some logging.
...@@ -100,7 +100,7 @@ if [ $? -ne 0 ]; then ...@@ -100,7 +100,7 @@ if [ $? -ne 0 ]; then
sudo apt-get install lxc -y sudo apt-get install lxc -y
lxc-checkconfig lxc-checkconfig
sudo sed -i 's/GRUB_CMDLINE_LINUX="\(.*\)"/GRUB_CMDLINE_LINUX="\1 cgroup_enable=memory"/' /etc/default/grub sudo sed -i 's/GRUB_CMDLINE_LINUX="\(.*\)"/GRUB_CMDLINE_LINUX="\1 cgroup_enable=memory"/' /etc/default/grub
sudo update-grub sudo update-grub
fi fi
fi fi
......
...@@ -91,7 +91,7 @@ kernelSpec: ...@@ -91,7 +91,7 @@ kernelSpec:
- name: SCSI_PROC_FS - name: SCSI_PROC_FS
# Currently Kubelet supports three docker graph drivers: overlay, aufs, and # Currently Kubelet supports three docker graph drivers: overlay, aufs, and
# devicemapper due to the legacy reason. But for GKE, we plan to only support # devicemapper due to the legacy reason. But for GKE, we plan to only support
# overlayfs. # overlayfs.
- name: OVERLAY_FS - name: OVERLAY_FS
description: 'Enable OverlayFS, which will be the only docker graph driver description: 'Enable OverlayFS, which will be the only docker graph driver
supported on GKE.' supported on GKE.'
......
apiVersion: apps/v1 apiVersion: apps/v1
kind: DaemonSet kind: DaemonSet
metadata: metadata:
name: prometheus-node-exporter name: prometheus-node-exporter
......
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: nginx-deployment name: nginx-deployment
......
# Audit Proxy # Audit Proxy
The audit proxy is used to test dynamic auditing. It listens on port 8080 for incoming audit events and The audit proxy is used to test dynamic auditing. It listens on port 8080 for incoming audit events and
writes them in a uniform manner to stdout. writes them in a uniform manner to stdout.
\ No newline at end of file
...@@ -4,7 +4,7 @@ This is a simple server that responds with the http headers it received. ...@@ -4,7 +4,7 @@ This is a simple server that responds with the http headers it received.
Image Versions >= 1.10 support HTTP2 on :8443. Image Versions >= 1.10 support HTTP2 on :8443.
Image Versions >= 1.9 expose HTTPS endpoint on :8443. Image Versions >= 1.9 expose HTTPS endpoint on :8443.
Image versions >= 1.4 removes the redirect introduced in 1.3. Image versions >= 1.4 removes the redirect introduced in 1.3.
Image versions >= 1.3 redirect requests on :80 with `X-Forwarded-Proto: http` to :443. Image versions >= 1.3 redirect requests on :80 with `X-Forwarded-Proto: http` to :443.
Image versions > 1.0 run an nginx server, and implement the echoserver using lua in the nginx config. Image versions > 1.0 run an nginx server, and implement the echoserver using lua in the nginx config.
Image versions <= 1.0 run a python http server instead of nginx, and don't redirect any requests. Image versions <= 1.0 run a python http server instead of nginx, and don't redirect any requests.
...@@ -58,7 +58,7 @@ Request Headers: ...@@ -58,7 +58,7 @@ Request Headers:
{{key}}={{val[i]}} {{key}}={{val[i]}}
{% end %} {% end %}
{% else %} {% else %}
{{key}}={{val}} {{key}}={{val}}
{% end %} {% end %}
{% end %} {% end %}
......
...@@ -12,7 +12,7 @@ Tool is parametrized with the total number of number that should be generated an ...@@ -12,7 +12,7 @@ Tool is parametrized with the total number of number that should be generated an
the generation process. For example, if you want to create a throughput of 100 lines per second the generation process. For example, if you want to create a throughput of 100 lines per second
for a minute, you set total number of lines to 6000 and duration to 1 minute. for a minute, you set total number of lines to 6000 and duration to 1 minute.
Parameters are passed through environment variables. There are no defaults, you should always Parameters are passed through environment variables. There are no defaults, you should always
set up container parameters. Total number of line is parametrized through env variable set up container parameters. Total number of line is parametrized through env variable
`LOGS_GENERATOR_LINES_TOTAL` and duration in go format is parametrized through env variable `LOGS_GENERATOR_LINES_TOTAL` and duration in go format is parametrized through env variable
`LOGS_GENERATOR_DURATION`. `LOGS_GENERATOR_DURATION`.
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
The container image described here runs the EP benchmark from the The container image described here runs the EP benchmark from the
[NAS parallel benchmark suite.](https://www.nas.nasa.gov/publications/npb.html) [NAS parallel benchmark suite.](https://www.nas.nasa.gov/publications/npb.html)
This image is used as a workload in in node performance testing. This image is used as a workload in in node performance testing.
## How to release: ## How to release:
``` ```
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
The container image described here runs the IS benchmark from the The container image described here runs the IS benchmark from the
[NAS parallel benchmark suite.](https://www.nas.nasa.gov/publications/npb.html) [NAS parallel benchmark suite.](https://www.nas.nasa.gov/publications/npb.html)
This image is used as a workload in in node performance testing. This image is used as a workload in in node performance testing.
## How to release: ## How to release:
``` ```
......
## Tensorflow Official Wide Deep Model ## Tensorflow Official Wide Deep Model
The container image described here predicts the income using the census income dataset in Tensorflow. For more The container image described here predicts the income using the census income dataset in Tensorflow. For more
information, see information, see
[https://github.com/tensorflow/models/tree/master/official/wide_deep](https://github.com/tensorflow/models/tree/master/official/wide_deep). [https://github.com/tensorflow/models/tree/master/official/wide_deep](https://github.com/tensorflow/models/tree/master/official/wide_deep).
This image is used as a workload in in node performance testing. This image is used as a workload in in node performance testing.
## How to release: ## How to release:
``` ```
......
...@@ -42,5 +42,5 @@ so option 1 is a good choice. ...@@ -42,5 +42,5 @@ so option 1 is a good choice.
Unless specified by the `-domain` argument, `peer-finder` will determine the FQDN of the pod by examining the Unless specified by the `-domain` argument, `peer-finder` will determine the FQDN of the pod by examining the
`/etc/resolv.conf` file, looking for a `search` line and looking for the best match. `/etc/resolv.conf` file, looking for a `search` line and looking for the best match.
If your pod is not using the default `dnsPolicy` value which is `ClusterFirst` as the DNS policy, you may need If your pod is not using the default `dnsPolicy` value which is `ClusterFirst` as the DNS policy, you may need
to provide the `-domain` argument. In most common configurations, `-domain=cluster.local` will be the correct setting. to provide the `-domain` argument. In most common configurations, `-domain=cluster.local` will be the correct setting.
...@@ -6,7 +6,7 @@ The included localhost.crt is a PEM-encoded TLS cert with SAN IPs ...@@ -6,7 +6,7 @@ The included localhost.crt is a PEM-encoded TLS cert with SAN IPs
src/crypto/tls: src/crypto/tls:
go run generate_cert.go --rsa-bits 2048 --host 127.0.0.1,::1,example.com --ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h go run generate_cert.go --rsa-bits 2048 --host 127.0.0.1,::1,example.com --ca --start-date "Jan 1 00:00:00 1970" --duration=1000000h
To use a different cert/key, mount them into the pod and set the To use a different cert/key, mount them into the pod and set the
CERT_FILE and KEY_FILE environment variables to the desired paths. CERT_FILE and KEY_FILE environment variables to the desired paths.
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/test/images/porter/README.md?pixel)]() [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/test/images/porter/README.md?pixel)]()
...@@ -13,7 +13,7 @@ Resource Consumer starts an HTTP server and handle sent requests. ...@@ -13,7 +13,7 @@ Resource Consumer starts an HTTP server and handle sent requests.
It listens on port given as a flag (default 8080). It listens on port given as a flag (default 8080).
Action of consuming resources is send to the container by a POST http request. Action of consuming resources is send to the container by a POST http request.
Each http request creates new process. Each http request creates new process.
Http request handler is in file resource_consumer_handler.go Http request handler is in file resource_consumer_handler.go
The container consumes specified amount of resources: The container consumes specified amount of resources:
......
...@@ -39,7 +39,7 @@ function start() ...@@ -39,7 +39,7 @@ function start()
chmod 644 $i/index.html chmod 644 $i/index.html
echo "Serving $i" echo "Serving $i"
done done
# start rpcbind if it is not started yet # start rpcbind if it is not started yet
/usr/sbin/rpcinfo 127.0.0.1 > /dev/null; s=$? /usr/sbin/rpcinfo 127.0.0.1 > /dev/null; s=$?
if [ $s -ne 0 ]; then if [ $s -ne 0 ]; then
......
...@@ -3,14 +3,14 @@ IPAM Performance Test ...@@ -3,14 +3,14 @@ IPAM Performance Test
Motivation Motivation
----- -----
We wanted to be able to test the behavior of the IPAM controller's under various scenarios, We wanted to be able to test the behavior of the IPAM controller's under various scenarios,
by mocking and monitoring the edges that the controller interacts with. This has the following goals: by mocking and monitoring the edges that the controller interacts with. This has the following goals:
- Save time on testing - Save time on testing
- To simulate various behaviors cheaply - To simulate various behaviors cheaply
- To observe and model the ideal behavior of the IPAM controller code - To observe and model the ideal behavior of the IPAM controller code
Currently the test runs through the 4 different IPAM controller modes for cases where the kube API QPS is a) Currently the test runs through the 4 different IPAM controller modes for cases where the kube API QPS is a)
equal to and b) significantly less than the number of nodes being added to observe and quantify behavior. equal to and b) significantly less than the number of nodes being added to observe and quantify behavior.
How to run How to run
...@@ -43,8 +43,8 @@ usage: ./test-performance.sh <options> ...@@ -43,8 +43,8 @@ usage: ./test-performance.sh <options>
-l <num> gce cloud endpoint qps -l <num> gce cloud endpoint qps
``` ```
The tests follow the pattern TestPerformance/{AllocatorType}-KubeQPS{X}-Nodes{Y}, where AllocatorType The tests follow the pattern TestPerformance/{AllocatorType}-KubeQPS{X}-Nodes{Y}, where AllocatorType
is one of is one of
- RangeAllocator - RangeAllocator
- IPAMFromCluster - IPAMFromCluster
...@@ -61,7 +61,7 @@ So to run the test for CloudAllocator with 10 nodes, one can run ...@@ -61,7 +61,7 @@ So to run the test for CloudAllocator with 10 nodes, one can run
./test-performance.sh -r /CloudAllocator.*Nodes10$ ./test-performance.sh -r /CloudAllocator.*Nodes10$
``` ```
At the end of the test, a JSON format of the results for all the tests run is printed. Passing the -o option At the end of the test, a JSON format of the results for all the tests run is printed. Passing the -o option
allows for also saving this JSON to a named file. allows for also saving this JSON to a named file.
### Profiling the code ### Profiling the code
...@@ -72,8 +72,8 @@ of nodes being simulated as the id, or 'all' in case running the full suite. ...@@ -72,8 +72,8 @@ of nodes being simulated as the id, or 'all' in case running the full suite.
### Custom Test Configuration ### Custom Test Configuration
It's also possible to run a custom test configuration by passing the -c option. With this option, it then It's also possible to run a custom test configuration by passing the -c option. With this option, it then
possible to specify the number of nodes to simulate and the API server qps values for creation, possible to specify the number of nodes to simulate and the API server qps values for creation,
IPAM allocation and cloud endpoint, along with the allocator name to run. The defaults values for the IPAM allocation and cloud endpoint, along with the allocator name to run. The defaults values for the
qps parmeters are 30 for IPAM allocation, 100 for node creation and 30 for the cloud endpoint, and the qps parmeters are 30 for IPAM allocation, 100 for node creation and 30 for the cloud endpoint, and the
default allocator is the RangeAllocator. default allocator is the RangeAllocator.
......
...@@ -59,7 +59,7 @@ function create-master-instance-with-resources { ...@@ -59,7 +59,7 @@ function create-master-instance-with-resources {
${GCLOUD_COMMON_ARGS} \ ${GCLOUD_COMMON_ARGS} \
--type "${MASTER_DISK_TYPE}" \ --type "${MASTER_DISK_TYPE}" \
--size "${MASTER_DISK_SIZE}" & --size "${MASTER_DISK_SIZE}" &
if [ "${EVENT_PD:-}" == "true" ]; then if [ "${EVENT_PD:-}" == "true" ]; then
run-gcloud-compute-with-retries disks create "${MASTER_NAME}-event-pd" \ run-gcloud-compute-with-retries disks create "${MASTER_NAME}-event-pd" \
${GCLOUD_COMMON_ARGS} \ ${GCLOUD_COMMON_ARGS} \
...@@ -86,7 +86,7 @@ function create-master-instance-with-resources { ...@@ -86,7 +86,7 @@ function create-master-instance-with-resources {
run-gcloud-compute-with-retries instances add-metadata "${MASTER_NAME}" \ run-gcloud-compute-with-retries instances add-metadata "${MASTER_NAME}" \
${GCLOUD_COMMON_ARGS} \ ${GCLOUD_COMMON_ARGS} \
--metadata-from-file startup-script="${KUBE_ROOT}/test/kubemark/resources/start-kubemark-master.sh" & --metadata-from-file startup-script="${KUBE_ROOT}/test/kubemark/resources/start-kubemark-master.sh" &
if [ "${EVENT_PD:-}" == "true" ]; then if [ "${EVENT_PD:-}" == "true" ]; then
echo "Attaching ${MASTER_NAME}-event-pd to ${MASTER_NAME}" echo "Attaching ${MASTER_NAME}-event-pd to ${MASTER_NAME}"
run-gcloud-compute-with-retries instances attach-disk "${MASTER_NAME}" \ run-gcloud-compute-with-retries instances attach-disk "${MASTER_NAME}" \
...@@ -94,7 +94,7 @@ function create-master-instance-with-resources { ...@@ -94,7 +94,7 @@ function create-master-instance-with-resources {
--disk "${MASTER_NAME}-event-pd" \ --disk "${MASTER_NAME}-event-pd" \
--device-name="master-event-pd" & --device-name="master-event-pd" &
fi fi
run-gcloud-compute-with-retries firewall-rules create "${MASTER_NAME}-https" \ run-gcloud-compute-with-retries firewall-rules create "${MASTER_NAME}-https" \
--project "${PROJECT}" \ --project "${PROJECT}" \
--network "${NETWORK}" \ --network "${NETWORK}" \
...@@ -120,26 +120,26 @@ function delete-master-instance-and-resources { ...@@ -120,26 +120,26 @@ function delete-master-instance-and-resources {
gcloud compute instances delete "${MASTER_NAME}" \ gcloud compute instances delete "${MASTER_NAME}" \
${GCLOUD_COMMON_ARGS} || true ${GCLOUD_COMMON_ARGS} || true
gcloud compute disks delete "${MASTER_NAME}-pd" \ gcloud compute disks delete "${MASTER_NAME}-pd" \
${GCLOUD_COMMON_ARGS} || true ${GCLOUD_COMMON_ARGS} || true
gcloud compute disks delete "${MASTER_NAME}-event-pd" \ gcloud compute disks delete "${MASTER_NAME}-event-pd" \
${GCLOUD_COMMON_ARGS} &> /dev/null || true ${GCLOUD_COMMON_ARGS} &> /dev/null || true
gcloud compute addresses delete "${MASTER_NAME}-ip" \ gcloud compute addresses delete "${MASTER_NAME}-ip" \
--project "${PROJECT}" \ --project "${PROJECT}" \
--region "${REGION}" \ --region "${REGION}" \
--quiet || true --quiet || true
gcloud compute firewall-rules delete "${MASTER_NAME}-https" \ gcloud compute firewall-rules delete "${MASTER_NAME}-https" \
--project "${PROJECT}" \ --project "${PROJECT}" \
--quiet || true --quiet || true
if [ "${SEPARATE_EVENT_MACHINE:-false}" == "true" ]; then if [ "${SEPARATE_EVENT_MACHINE:-false}" == "true" ]; then
gcloud compute instances delete "${EVENT_STORE_NAME}" \ gcloud compute instances delete "${EVENT_STORE_NAME}" \
${GCLOUD_COMMON_ARGS} || true ${GCLOUD_COMMON_ARGS} || true
gcloud compute disks delete "${EVENT_STORE_NAME}-pd" \ gcloud compute disks delete "${EVENT_STORE_NAME}-pd" \
${GCLOUD_COMMON_ARGS} || true ${GCLOUD_COMMON_ARGS} || true
fi fi
......
...@@ -29,7 +29,7 @@ spawn-config ...@@ -29,7 +29,7 @@ spawn-config
"${KUBECTL}" delete -f "${RESOURCE_DIRECTORY}/addons" &> /dev/null || true "${KUBECTL}" delete -f "${RESOURCE_DIRECTORY}/addons" &> /dev/null || true
"${KUBECTL}" delete -f "${RESOURCE_DIRECTORY}/hollow-node.yaml" &> /dev/null || true "${KUBECTL}" delete -f "${RESOURCE_DIRECTORY}/hollow-node.yaml" &> /dev/null || true
"${KUBECTL}" delete -f "${RESOURCE_DIRECTORY}/kubemark-ns.json" &> /dev/null || true "${KUBECTL}" delete -f "${RESOURCE_DIRECTORY}/kubemark-ns.json" &> /dev/null || true
rm -rf "${RESOURCE_DIRECTORY}/addons" rm -rf "${RESOURCE_DIRECTORY}/addons"
"${RESOURCE_DIRECTORY}/hollow-node.yaml" &> /dev/null || true "${RESOURCE_DIRECTORY}/hollow-node.yaml" &> /dev/null || true
# Remove clusters, namespaces, and deployments # Remove clusters, namespaces, and deployments
......
...@@ -237,7 +237,7 @@ function wait-for-hollow-nodes-to-run-or-timeout { ...@@ -237,7 +237,7 @@ function wait-for-hollow-nodes-to-run-or-timeout {
start=$(date +%s) start=$(date +%s)
nodes=$("${KUBECTL}" --kubeconfig="${KUBECONFIG}" get node 2> /dev/null) || true nodes=$("${KUBECTL}" --kubeconfig="${KUBECONFIG}" get node 2> /dev/null) || true
ready=$(($(echo "${nodes}" | grep -v "NotReady" | wc -l) - 1)) ready=$(($(echo "${nodes}" | grep -v "NotReady" | wc -l) - 1))
until [[ "${ready}" -ge "${NUM_REPLICAS}" ]]; do until [[ "${ready}" -ge "${NUM_REPLICAS}" ]]; do
echo -n "." echo -n "."
sleep 1 sleep 1
......
...@@ -45,7 +45,7 @@ function create-clusters { ...@@ -45,7 +45,7 @@ function create-clusters {
echo -e "${color_cyan}Warning: new clusters may take up to 60 minutes to be ready${color_norm}" echo -e "${color_cyan}Warning: new clusters may take up to 60 minutes to be ready${color_norm}"
echo -n "Clusters loading" echo -n "Clusters loading"
fi fi
while ! bx cs clusters | grep 'kubeSpawnTester' | grep -Fq 'normal' while ! bx cs clusters | grep 'kubeSpawnTester' | grep -Fq 'normal'
do do
echo -n "." echo -n "."
sleep 5 sleep 5
......
...@@ -435,7 +435,7 @@ function wait-for-hollow-nodes-to-run-or-timeout { ...@@ -435,7 +435,7 @@ function wait-for-hollow-nodes-to-run-or-timeout {
start=$(date +%s) start=$(date +%s)
nodes=$("${KUBECTL}" --kubeconfig="${LOCAL_KUBECONFIG}" get node 2> /dev/null) || true nodes=$("${KUBECTL}" --kubeconfig="${LOCAL_KUBECONFIG}" get node 2> /dev/null) || true
ready=$(($(echo "${nodes}" | grep -v "NotReady" | wc -l) - 1)) ready=$(($(echo "${nodes}" | grep -v "NotReady" | wc -l) - 1))
until [[ "${ready}" -ge "${NUM_REPLICAS}" ]]; do until [[ "${ready}" -ge "${NUM_REPLICAS}" ]]; do
echo -n "." echo -n "."
sleep 1 sleep 1
......
...@@ -12,8 +12,8 @@ ...@@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
all: all:
go build serve_hostnames.go go build serve_hostnames.go
clean: clean:
rm -rf serve_hostnames rm -rf serve_hostnames
...@@ -7,12 +7,12 @@ This directory contains the source for a soak test `serve_hostnames` which perfo ...@@ -7,12 +7,12 @@ This directory contains the source for a soak test `serve_hostnames` which perfo
The pods are created individually (i.e. not with a replication controller). The pods are created individually (i.e. not with a replication controller).
* A service is created which maps to these pods. * A service is created which maps to these pods.
* The program makes *I* iterations (default 1) where it issues *QxNxM* queries (*Q* default is 10) via the service proxy interface at the master. * The program makes *I* iterations (default 1) where it issues *QxNxM* queries (*Q* default is 10) via the service proxy interface at the master.
* The program verifies that every pod (and thus every node) responded to at least one query (the average should be about *Q*). * The program verifies that every pod (and thus every node) responded to at least one query (the average should be about *Q*).
* The time taken to perform various operations is reported and some operations are re-tried if they failed. * The time taken to perform various operations is reported and some operations are re-tried if they failed.
Here is some representative output. Here is some representative output.
``` ```
$ ./serve_hostnames $ ./serve_hostnames
I0326 14:21:04.179893 11434 serve_hostnames.go:60] Starting serve_hostnames soak test with queries=10 and podsPerNode=1 upTo=1 I0326 14:21:04.179893 11434 serve_hostnames.go:60] Starting serve_hostnames soak test with queries=10 and podsPerNode=1 upTo=1
I0326 14:21:04.507252 11434 serve_hostnames.go:85] Nodes found on this cluster: I0326 14:21:04.507252 11434 serve_hostnames.go:85] Nodes found on this cluster:
I0326 14:21:04.507282 11434 serve_hostnames.go:87] 0: kubernetes-node-5h4m.c.kubernetes-satnam.internal I0326 14:21:04.507282 11434 serve_hostnames.go:87] 0: kubernetes-node-5h4m.c.kubernetes-satnam.internal
...@@ -158,9 +158,9 @@ I0326 14:35:05.475834 12099 serve_hostnames.go:249] Proxy call in namespace se ...@@ -158,9 +158,9 @@ I0326 14:35:05.475834 12099 serve_hostnames.go:249] Proxy call in namespace se
I0326 14:35:05.519373 12099 serve_hostnames.go:249] Proxy call in namespace serve-hostnames-1631 took 43.501574ms I0326 14:35:05.519373 12099 serve_hostnames.go:249] Proxy call in namespace serve-hostnames-1631 took 43.501574ms
I0326 14:35:05.563584 12099 serve_hostnames.go:249] Proxy call in namespace serve-hostnames-1631 took 44.162687ms I0326 14:35:05.563584 12099 serve_hostnames.go:249] Proxy call in namespace serve-hostnames-1631 took 44.162687ms
I0326 14:35:05.607126 12099 serve_hostnames.go:249] Proxy call in namespace serve-hostnames-1631 took 43.478674ms I0326 14:35:05.607126 12099 serve_hostnames.go:249] Proxy call in namespace serve-hostnames-1631 took 43.478674ms
I0326 14:35:05.607164 12099 serve_hostnames.go:258] serve-hostname-3-0: 12 I0326 14:35:05.607164 12099 serve_hostnames.go:258] serve-hostname-3-0: 12
I0326 14:35:05.607176 12099 serve_hostnames.go:258] serve-hostname-1-0: 10 I0326 14:35:05.607176 12099 serve_hostnames.go:258] serve-hostname-1-0: 10
I0326 14:35:05.607186 12099 serve_hostnames.go:258] serve-hostname-0-0: 18 I0326 14:35:05.607186 12099 serve_hostnames.go:258] serve-hostname-0-0: 18
W0326 14:35:05.607199 12099 serve_hostnames.go:265] No response from pod serve-hostname-2-0 on node kubernetes-node-d0yo.c.kubernetes-satnam.internal at iteration 0 W0326 14:35:05.607199 12099 serve_hostnames.go:265] No response from pod serve-hostname-2-0 on node kubernetes-node-d0yo.c.kubernetes-satnam.internal at iteration 0
I0326 14:35:05.607211 12099 serve_hostnames.go:269] Iteration 0 took 1.774856469s for 40 queries (22.54 QPS) I0326 14:35:05.607211 12099 serve_hostnames.go:269] Iteration 0 took 1.774856469s for 40 queries (22.54 QPS)
I0326 14:35:05.607236 12099 serve_hostnames.go:182] Cleaning up pods I0326 14:35:05.607236 12099 serve_hostnames.go:182] Cleaning up pods
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment