kubernetes/pkg/controller/service
Kubernetes Submit Queue 408a316b1d
Merge pull request #56370 from oracle/for/upstream/master/55528
Automatic merge from submit-queue (batch tested with PRs 57868, 58284, 56370, 58400, 58439). 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>.

Refactor service controller to common controller pattern

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

The service controller currently uses a non-standard controller pattern that adds unneeded complexity. This PR moves the service controller to use common tools like the rate limited queue with exponential backoff versus tracking retry backoff in the cachedService object. 

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

**Special notes for your reviewer**:

This does change the retry backoff from a linear backoff to an exponential backoff. The min and max retry delay stays the same. 

There was only one case where we didn't want to retry, which was when we updated the service status since that handled retries itself. In that case I moved to the common pattern of using `runtime.HandleError`.

**Release note**:

```release-note
NONE
```

/cc @luxas @wlan0 @andrewsykim @thockin 
@prydie 

/sig cluster-lifecycle
/sig networking
/kind cleanup
2018-01-18 13:11:34 -08:00
..
BUILD use sets.String to replace slice when sort []string 2018-01-06 16:16:37 +08:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
OWNERS Missed approvers for controller/service 2017-10-23 11:34:49 -07:00
service_controller_test.go Refactor service controller to common controller pattern 2017-12-19 23:08:48 -05:00
service_controller.go Merge pull request #56370 from oracle/for/upstream/master/55528 2018-01-18 13:11:34 -08:00