Added documentation of how client-go interfaces with custom controller code

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

The sample-controller makes extensive use of various mechanisms
available in the client-go library. For writing custom controllers/operators
it will be helpful if there is precise description of how the
client-go library works and how/where it interfaces with
custom controller code.

This patch adds documentation that sheds light on how (parts) of the
client-go library work and its interaction-points with
controller code. The documentation and the diagram comes from [1],
(link included here for reference purpose).

[1] https://medium.com/@cloudark/kubernetes-custom-controllers-b6c7d0668fdf

Contributing the diagram and the writeup was recommended by
by @sttts and @nikhita on https://github.com/kubernetes/sample-controller/issues/13

**Release note**:

```release-note
NONE
```

Kubernetes-commit: 3e22383a8a14eb3bd02630f3f11c0ad7a806e027
This commit is contained in:
Devdatta Kulkarni
2018-04-13 14:32:47 -05:00
committed by Kubernetes Publisher
parent 8a66ce0ffe
commit 220ca987ad
3 changed files with 71 additions and 0 deletions
+7
View File
@@ -23,6 +23,13 @@ Changes should not be made to these files manually, and when creating your own
controller based off of this implementation you should not copy these files and
instead run the `update-codegen` script to generate your own.
## Details
The sample controller uses [client-go library](https://github.com/kubernetes/client-go/tree/master/tools/cache) extensively.
The details of interaction points of the sample controller with various mechanisms from this library are
explained [here](docs/controller-client-go.md).
## Purpose
This is an example of how to build a kube-like controller with a single type.