Commit Graph

69292 Commits

Author SHA1 Message Date
Clayton Coleman
3a81391153
Tests that use CheckTestingNSDeletedExcept must be [Serial]
Otherwise, another e2e test could be running at the same time and cause
a namespace to get created, which fails this test.
2018-08-24 12:29:58 -04:00
Kubernetes Submit Queue
5ed26a348b
Merge pull request #67543 from sttts/sttts-auth-skip-paths
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

delegated authz: add AlwaysAllowPaths to option struct (defaulting to /healthz)

Add `AlwaysAllowPaths` field to delegated authz. These http paths are excluded from the authz chain.

Prerequisite for https://github.com/kubernetes/kubernetes/pull/64149 and https://github.com/kubernetes/kubernetes/pull/67069.

```release-note
Added --authorization-always-allow-paths to components doing delegated authorization to exclude certain HTTP paths like /healthz from authorization.
```
2018-08-24 07:56:47 -07:00
hchiramm
5fff5226cd Remove provisioner config from log message.
Signed-off-by: hchiramm <hchiramm@redhat.com>
2018-08-24 19:40:37 +05:30
Jordan Liggitt
3bd1824ed6
Add verify script for staging repo metadata files 2018-08-24 09:14:33 -04:00
David Eads
a2ee93b531 controller expectations for deletion can be met by 404 2018-08-24 09:03:51 -04:00
Kubernetes Submit Queue
963adda7f9
Merge pull request #67762 from nikhita/remove-area-customresources-label
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

apiextensions: remove area/custom-resources label from OWNERS

Sometimes changes in apiextensions-apiserver are not really related to custom resources but just general api-machinery (or worse godep updates). Adding the label `area/custom-resources` to such PRs makes triaging using the label hard.

Adding the label manually is much cleaner.

See https://github.com/kubernetes/kubernetes/pull/67753 for an example.

/assign sttts 


**Release note**:

```release-note
NONE
```
2018-08-24 04:50:39 -07:00
Kubernetes Submit Queue
5103bd6a53
Merge pull request #67801 from mborsz/revert-67712-parallelize-density-test-deletion
Automatic merge from submit-queue (batch tested with PRs 67377, 67801). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Revert "Parallelize RC deletion in density test"

Reverts kubernetes/kubernetes#67712

2k test has failed because of this: even if we trigger removal in parallel, controller manager is deleting replicacontrollers sequentially:
```
I0823 13:35:41.906] Aug 23 13:35:41.906: INFO: Terminating { ReplicationController} density43650-0-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 1m0.00118401s
I0823 13:36:42.021] Aug 23 13:36:42.020: INFO: Terminating { ReplicationController} density43650-14-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 2m0.00202238s
I0823 13:37:42.056] Aug 23 13:37:42.055: INFO: Terminating { ReplicationController} density43650-8-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 3m0.004624139s
I0823 13:38:42.092] Aug 23 13:38:42.092: INFO: Terminating { ReplicationController} density43650-5-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 4m0.000797258s
I0823 13:39:32.095] Aug 23 13:39:32.095: INFO: Terminating { ReplicationController} density43650-4-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 4m50.000689353s
I0823 13:40:32.206] Aug 23 13:40:32.206: INFO: Terminating { ReplicationController} density43650-11-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 5m50.000731007s
I0823 13:41:32.206] Aug 23 13:41:32.206: INFO: Terminating { ReplicationController} density43650-7-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 6m50.000648956s
I0823 13:42:32.194] Aug 23 13:42:32.194: INFO: Terminating { ReplicationController} density43650-12-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 7m50.001155426s
I0823 13:43:32.282] Aug 23 13:43:32.282: INFO: Terminating { ReplicationController} density43650-10-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 8m50.000739417s
I0823 13:44:16.434] W0823 13:44:16.433780    7517 reflector.go:270] k8s.io/kubernetes/test/utils/pod_store.go:56: watch of *v1.Pod ended with: too old resource version: 624915 (659380)
I0823 13:44:32.282] Aug 23 13:44:32.282: INFO: Terminating { ReplicationController} density43650-9-584f5bb0-a6d6-11e8-b145-0a580a3c6f08 pods took: 9m50.000486689s
I0823 13:44:42.283] Aug 23 13:44:42.282: INFO: Unexpected error occurred: error while waiting for pods to become inactive density43650-2-584f5bb0-a6d6-11e8-b145-0a580a3c6f08: timed out waiting for the condition
I0823 13:44:42.331] Aug 23 13:44:42.331: INFO: Unexpected error occurred: error while waiting for pods to become inactive density43650-1-584f5bb0-a6d6-11e8-b145-0a580a3c6f08: timed out waiting for the condition
I0823 13:44:42.333] Aug 23 13:44:42.332: INFO: Unexpected error occurred: error while waiting for pods to become inactive density43650-6-584f5bb0-a6d6-11e8-b145-0a580a3c6f08: timed out waiting for the condition
I0823 13:44:42.334] Aug 23 13:44:42.333: INFO: Unexpected error occurred: error while waiting for pods to become inactive density43650-13-584f5bb0-a6d6-11e8-b145-0a580a3c6f08: timed out waiting for the condition
I0823 13:44:42.437] Aug 23 13:44:42.436: INFO: Unexpected error occurred: error while waiting for pods to become inactive density43650-3-584f5bb0-a6d6-11e8-b145-0a580a3c6f08: timed out waiting for the condition
```
2018-08-24 04:50:03 -07:00
Kubernetes Submit Queue
64de381a34
Merge pull request #67377 from shyamjvs/add-mig-startup-timeout
Automatic merge from submit-queue (batch tested with PRs 67377, 67801). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add timeout to MIG wait-until-stable operation

Fixes https://github.com/kubernetes/kubernetes/issues/67374

/cc @wojtek-t @mborsz 
/sig cluster-lifecycle

```release-note
NONE
```
2018-08-24 04:50:00 -07:00
fabriziopandini
689417c806 kubeadm - deprecate feature-gates HighAvailability, SelfHosting, CertsInSecrets 2018-08-24 13:19:13 +02:00
Joachim Bartosik
4fd6a1684d Make HPA more configurable
Duration of initialization taint on CPU and window of initial readiness
setting controlled by flags.

Adding API violation exceptions following example of e50340ee23
2018-08-24 13:13:02 +02:00
junxu
49574c68c9 Fix the "dirname: missing operand" error of "make test" 2018-08-24 06:25:07 -04:00
Pingan2017
655271f89b del unused func DefaultEventFilterFunc 2018-08-24 17:26:17 +08:00
linyouchong
075f37f853 Fix error link in comment 2018-08-24 17:07:43 +08:00
Kubernetes Submit Queue
9c4cf0a18e
Merge pull request #66336 from CallMeFoxie/https-readme
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Change README links to https

**What this PR does / why we need it**:
Changes links referenced in README.md to https. No visual changes to people, just more safety.

```release-note
NONE
```
2018-08-24 01:34:04 -07:00
Kubernetes Submit Queue
0c9308cc96
Merge pull request #67706 from shyamjvs/speed-up-kubemark-setup
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Parallelize kubemark cluster creation

To help with https://github.com/kubernetes/test-infra/issues/8348 (should hopefully cut down ~3mins - we're already down to 1h15m from earlier)

/cc @wojtek-t 

```release-note
NONE
```
2018-08-24 01:33:42 -07:00
Maciej Borsz
422917b30b
Revert "Parallelize RC deletion in density test" 2018-08-24 09:47:09 +02:00
fabriziopandini
960ef7bf67 autogenerated 2018-08-24 09:42:33 +02:00
fabriziopandini
5e21c14b76 kubeadm config move ControlPlaneEndpoint to ClusterConfiguration 2018-08-24 09:42:23 +02:00
Nikhita Raghunath
ea2c83153e api: change owners from apimachinery to architecture 2018-08-24 12:49:39 +05:30
Kubernetes Submit Queue
48b0cb7810
Merge pull request #65858 from etiennecoutaud/typo-changelog-1.11
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Typo in changelog 1.11

There is no small PR 😄 !
2018-08-24 00:09:14 -07:00
Kubernetes Submit Queue
dce8351cce
Merge pull request #65571 from max8899/patch-1
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

fix typo

**What this PR does / why we need it**:

fix typo:
transfering -> transferring

**Release note**:
```release-note
NONE
```
2018-08-24 00:08:49 -07:00
Yecheng Fu
798838a6a0 Using a fixed set of locks, then we don't need to free unused locks
anymore.
See kubernetes/kubernetes/pull/66442 for discussions.
2018-08-24 12:24:09 +08:00
Jordan Liggitt
7078bfed58
Report cloudstack hostname address 2018-08-24 00:10:38 -04:00
Kubernetes Submit Queue
5b2a7c7347
Merge pull request #67758 from tizhou86/newPR2
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix golint error under scheduler/algorithm/priorities.

**What this PR does / why we need it**:
Fix golint error under scheduler/algorithm/priorities.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
NONE

**Special notes for your reviewer**:
NONE

**Release note**:

```release-note
NONE
```
2018-08-23 20:46:13 -07:00
Di Xu
7f8a59162b auto-generated 2018-08-24 10:58:09 +08:00
Di Xu
7c68c585f4 use external KubeSchedulerConfiguration 2018-08-24 10:58:09 +08:00
Di Xu
8a1c7ba428 golint failure 2018-08-24 10:58:09 +08:00
Di Xu
9f506da2d4 add new GVK kubescheduler.config.k8s.io/v1alpha1.KubeSchedulerConfiguration 2018-08-24 10:58:09 +08:00
Wilfried Teiken
73c522f79c Allow ImageReview backend to add audit annotations.
This can be used to create annotations that will allow auditing of the created
pods.

The change also introduces "fail open" audit annotations in addition to the
previously existing pod annotation for fail open.  The pod annotations for
fail open will be deprecated soon.
2018-08-23 22:53:06 -04:00
Kubernetes Submit Queue
47ea5eac71
Merge pull request #66983 from mortent/BetterRolloutStatusMsgForStatefulSet
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Better error message when checking rollout status for StatefulSet wit…

…h OnDelete strategy type



**What this PR does / why we need it**: The error message when checking the rollout status for a StatefulSet with the OnDelete strategy type can be confusing (ref #64500). It gives the impression that something has gone wrong when the issue is simply that there is no rollout status. The error message is updated to use similar language as for DaemonSet in the same situation.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:

**Special notes for your reviewer**:

**Release note**:

```release-note
Improved error message when checking the rollout status of StatefulSet with OnDelete strategy type
```
2018-08-23 18:05:49 -07:00
Kubernetes Submit Queue
40063e8810
Merge pull request #67737 from tallclair/runtimeclass-podapi
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Runtimeclass podapi

Adds (but doesn't implement) the RuntimeClass Pod API proposed in https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md

Based on the result (lazy consensus) of the alpha fields discussion on sig-architecture: https://groups.google.com/forum/#!topic/kubernetes-sig-architecture/y9FulL9Uq6A

For https://github.com/kubernetes/features/issues/585

**Special notes for your reviewer**:

**Release note**:
```release-note
RuntimeClass is a new API resource for defining different classes of runtimes that may be used to run containers in the cluster. Pods can select a RunitmeClass to use via the RuntimeClassName field. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it.
```

/sig node
/kind api-change
/priority important-soon
/milestone v1.12
2018-08-23 16:53:29 -07:00
Kubernetes Submit Queue
166a1356e8
Merge pull request #62420 from mikedanese/jose-bump
Automatic merge from submit-queue (batch tested with PRs 67707, 62420). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

svcacct: support jose.OpaqueSigner and push errors to token generator creation

```release-note
NONE
```
2018-08-23 15:39:59 -07:00
Kubernetes Submit Queue
501e3f7e7d
Merge pull request #67707 from apelisse/fix-diff-404
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

diff: Fix crash when remote object doesn't exist

Since we're saving nil in an interface rather than the implementation,
we can't compare to nil to check if the remote object exists or
not. Change the struct to save in the implementation.



**What this PR does / why we need it**:

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-08-23 15:32:14 -07:00
Doug MacEachern
ec732d8aab vsphere: support zone tags at any level in the hierarchy
Rather than just looking for zone tags at the VM's Host level, traverse up the hierarchy.
This allows zone tags to be attached at host level, along with cluster, datacenter, root folder
and any inventory folders in between.

Issue #64021
2018-08-23 14:57:21 -07:00
Kubernetes Submit Queue
83030032ad
Merge pull request #67425 from Lion-Wei/kubelet-ipv6
Automatic merge from submit-queue (batch tested with PRs 65247, 63633, 67425). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

fix kubelet iptclient in ipv6 cluster

**What this PR does / why we need it**:
Kubelet uses "iptables" instead of "ip6tables" in an ipv6-only cluster. This causes failed traffic for type: LoadBalancer services (and probably a lot of other problems).

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #67398 

**Special notes for your reviewer**:


**Release note**:
```release-note
NONE
```
2018-08-23 14:15:12 -07:00
Kubernetes Submit Queue
bcd220d898
Merge pull request #63633 from misterikkit/hacktest
Automatic merge from submit-queue (batch tested with PRs 65247, 63633, 67425). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

test: allow etcd to run on other ports.

running `make test-integration` with the `ETCD_PORT` option set should
work. Numerous integration test expect the correct URL to be populated
in the `KUBE_INTEGRATION_ETCD_URL` environment variable.



**What this PR does / why we need it**:
This makes the ETCD_PORT option work correctly.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:

**Special notes for your reviewer**:
I expect nobody is using the ETCD_PORT option, but I noticed that it is broken.

**Release note**:

```release-note
NONE
```
/sig testing
2018-08-23 14:15:08 -07:00
Kubernetes Submit Queue
93accdb2bb
Merge pull request #65247 from gambol99/typo_fixup
Automatic merge from submit-queue (batch tested with PRs 65247, 63633, 67425). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Typo Fix

- nothing much here just a typo fix found when copying and pasting into a kops [#PR5349](https://github.com/kubernetes/kops/pull/5349)
2018-08-23 14:15:01 -07:00
Tim Allclair
f5cc053901 regenerate files 2018-08-23 13:32:10 -07:00
Tim Allclair
4b8050e3fc Address @thockin feedback 2018-08-23 13:14:49 -07:00
Kubernetes Submit Queue
f2328e7b9f
Merge pull request #67548 from neolit123/owners-kubectl
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add labels to kubectl OWNERS files

**What this PR does / why we need it**:

This change makes it possible to automatically add the two labels: `area/kubectl` and `sig/cli` to PRs that touch the paths in question.

this already exists for kubeadm:
https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/OWNERS#L17-L19

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
refs https://github.com/kubernetes/community/issues/1808

**Special notes for your reviewer**:
none

**Release note**:

```release-note
NONE
```
/area kubectl
@kubernetes/sig-cli-pr-reviews 
/cc @cblecker @tpepper
2018-08-23 12:32:40 -07:00
Kubernetes Submit Queue
d67a03183a
Merge pull request #67687 from Lion-Wei/remote-reschrduler
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

remove rescheduler since scheduling DS pods by default scheduler is moving to beta

**What this PR does / why we need it**:

remove rescheduler since scheduling DS pods by default scheduler is moving to beta

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #64725

**Special notes for your reviewer**:

**Release note**:
```release-note
Remove rescheduler since scheduling DS pods by default scheduler is moving to beta.
```
2018-08-23 12:32:17 -07:00
Mike Danese
e68f14a249 jwt: support opaque signer and push errors to token generator creation 2018-08-23 12:21:56 -07:00
Kubernetes Submit Queue
a1c3e4796e
Merge pull request #67406 from freehan/pod-ready
Automatic merge from submit-queue (batch tested with PRs 67031, 67406). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Pod Ready++ cont

```release-note
Turn on PodReadinessGate by default
```

ref: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
2018-08-23 11:13:58 -07:00
Kubernetes Submit Queue
e46203c40d
Merge pull request #67031 from krzysztof-jastrzebski/node_startup
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Reduce latency to node ready after CIDR is assigned.

This adds code to execute an immediate runtime and node status update when the Kubelet sees that it has a CIDR, which significantly decreases the latency to node ready.

```release-note
Speed up kubelet start time by executing an immediate runtime and node status update when the Kubelet sees that it has a CIDR.
```
2018-08-23 10:37:30 -07:00
Shyam Jeedigunta
be20deaf96 Parallelize kubemark cluster creation 2018-08-23 18:33:38 +02:00
Kubernetes Submit Queue
f61040d0e1
Merge pull request #67769 from shyamjvs/remove-second-scaling-round-in-load-test
Automatic merge from submit-queue (batch tested with PRs 67748, 67769). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Remove second round of scaling in load test

As it seems redundant to do this twice, not really adding much value. This should cut down ~1.5h in our 5k-node load tests, and helps a bit with https://github.com/kubernetes/test-infra/issues/8348.

/cc @wojtek-t 

```release-note
NONE
```
2018-08-23 09:20:04 -07:00
Kubernetes Submit Queue
d68e1fc9d6
Merge pull request #67748 from FengyunPan2/report-hostname
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Make OpenStack cloud provider report a node hostname address

Related to: #67714
Cloud-provider-reported addresses are authoritative in 1.12, this
preserves default behavior that used the internal dns name as
the "Hostname" address on Node status.

**Release note**:

```release-note
The OpenStack cloud provider now reports a `Hostname` address type for nodes
```
2018-08-23 09:15:41 -07:00
Shyam Jeedigunta
2f7f6deef7 Re-calibrate load test throughputs 2018-08-23 17:37:06 +02:00
Rostislav M. Georgiev
de39f49949 kubeadm: use ClusterConfiguration in images.go
Replace the unnecessary use of InitConfiguration in images.go with
ClusterConfiguration. This changes the interfaces of the following functions:

- GetKubeControlPlaneImage
- GetEtcdImage
- GetAllImages

Signed-off-by: Rostislav M. Georgiev <rostislavg@vmware.com>
2018-08-23 17:36:33 +03:00
Kubernetes Submit Queue
c4f355a2ad
Merge pull request #66971 from tnozicka/informer-watcher
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

#50102 Task 2: Add UntilWithSync

**What this PR does / why we need it**:
This is a split off from https://github.com/kubernetes/kubernetes/pull/50102 to go in smaller pieces.

Introduces UntilWithSync based on informer.

**Needs https://github.com/kubernetes/kubernetes/pull/66906 first**
/hold

**Release note**:
```release-note
NONE
```

/priority important-soon
/kind bug
(bug after the main PR which is this split from)
2018-08-23 07:26:25 -07:00