diff options
| author | deads2k <deads@redhat.com> | 2016-12-15 13:15:18 -0500 |
|---|---|---|
| committer | deads2k <deads@redhat.com> | 2016-12-19 11:56:56 -0500 |
| commit | 15d8d13f08cd0f3d0ebc7d1a8a707c7cac8a25a9 (patch) | |
| tree | f21985560c778aba5c3f102ecb89ff65cb74a505 | |
| parent | 52e237a093d40100b4fa53ac28ebddd21e8f98a8 (diff) | |
add kubectl factory conventions
| -rw-r--r-- | contributors/devel/kubectl-conventions.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/contributors/devel/kubectl-conventions.md b/contributors/devel/kubectl-conventions.md index 1e94b3ba..2bb5f49d 100644 --- a/contributors/devel/kubectl-conventions.md +++ b/contributors/devel/kubectl-conventions.md @@ -13,6 +13,7 @@ Updated: 8/27/2015 - [Flag conventions](#flag-conventions) - [Output conventions](#output-conventions) - [Documentation conventions](#documentation-conventions) + - [kubectl Factory conventions](#kubectl-Factory-conventions) - [Command implementation conventions](#command-implementation-conventions) - [Generators](#generators) @@ -245,6 +246,21 @@ rather than "RESOURCE" or "KIND" * Use "NAME" for resource names +## kubectl Factory conventions + +The kubectl `Factory` is a large interface which is used to provide access to clients, +polymorphic inspection, and polymorphic mutation. The `Factory` is layered in +"rings" in which one ring may reference inner rings, but not peers or outer rings. +This is done to allow composition by extenders. + +In order for composers to be able to provide alternative factory implementations +they need to provide low level pieces of *certain* functions so that when the factory +calls back into itself it uses the custom version of the function. Rather than try +to enumerate everything that someone would want to override we split the factory into +rings, where each ring can depend on methods an earlier ring, but cannot depend upon +peer methods in its own ring. + + ## Command implementation conventions For every command there should be a `NewCmd<CommandName>` function that creates |
