Refactor kube auth

Partially resolves #2302 
We should do fatalf less - it's not testable.  I'm going to go through kubectl soon and tear it out.


> On Nov 13, 2014, at 10:28 AM, David Eads <notifications@github.com> wrote:
> 
> In pkg/kubectl/cmd/cmd.go:
> 
> > @@ -177,7 +177,7 @@ func GetKubeConfig(cmd *cobra.Command) *client.Config {
> >  		// command line). Override them with the command line parameters, if
> >  		// provided.
> >  		authPath := GetFlagString(cmd, "auth-path")
> > -		authInfo, err := kubectl.LoadAuthInfo(authPath, os.Stdin)
> > +		authInfo, err := kubectl.LoadClientAuthInfoOrPrompt(authPath, os.Stdin)
> >  		if err != nil {
> >  			glog.Fatalf("Error loading auth: %v", err)
> If you prompted the user, got valid auth information, and then failed to write the auth file, it is still possible to continue running correctly. I would have a test that looks more like this:
> 
> if (err != nil) && (authInfo == nil){
> fatal
> }
> if (err != nil){
> glog.Errorf
> }
> 
> —
> Reply to this email directly or view it on GitHub.
>