Refactor the client (again) to better support auth

Allows consumers to provide their own transports for common cases.

Fixes #1499
Adds basic support for #1473
Shows up (although currently it's sorted, so the fields are separate).  In kubecfg2 we could benefit from distinct flag sets that are displayed in an order.


> On Sep 29, 2014, at 11:38 PM, Brendan Burns <notifications@github.com> wrote:
> 
> In cmd/controller-manager/controller-manager.go:
> 
> > @@ -38,11 +37,15 @@ import (
> >  )
> >  
> >  var (
> > -	master  = flag.String("master", "", "The address of the Kubernetes API server")
> > -	port    = flag.Int("port", masterPkg.ControllerManagerPort, "The port that the controller-manager's http service runs on")
> > -	address = flag.String("address", "127.0.0.1", "The address to serve from")
> > +	port         = flag.Int("port", masterPkg.ControllerManagerPort, "The port that the controller-manager's http service runs on")
> > +	address      = flag.String("address", "127.0.0.1", "The address to serve from")
> > +	clientConfig = &client.Config{}
> How well does this approach play with the --help logic, I assume that it all just works, but I wanted to check.
> 
> —
> Reply to this email directly or view it on GitHub.