kubeadm: init must validate or generate token before anything else.

Fixes kubernetes/kubeadm#112
pull/6/head
Paulo Pires 2017-01-17 10:29:15 +00:00
parent 9d2fce7c22
commit 2e8df3b569
No known key found for this signature in database
GPG Key ID: F3F6ED5C522EAA71
1 changed files with 17 additions and 10 deletions

View File

@ -200,17 +200,18 @@ func (i *Init) Validate() error {
// Run executes master node provisioning, including certificates, needed static pod manifests, etc.
func (i *Init) Run(out io.Writer) error {
// PHASE 1: Generate certificates
caCert, err := certphase.CreatePKIAssets(i.cfg, kubeadmapi.GlobalEnvParams.HostPKIPath)
if err != nil {
return err
}
// Exception:
// Validate token if any, otherwise generate
if i.cfg.Discovery.Token != nil {
// Validate token
if valid, err := kubeadmutil.ValidateToken(i.cfg.Discovery.Token); valid == false {
return err
if i.cfg.Discovery.Token.ID != "" && i.cfg.Discovery.Token.Secret != "" {
fmt.Printf("[token-discovery] A token has been provided, validating [%+v]\n", i.cfg.Discovery.Token)
if valid, err := kubeadmutil.ValidateToken(i.cfg.Discovery.Token); valid == false {
return err
}
} else {
fmt.Printf("[token-discovery] A token has not been provided, generating one\n")
if err := kubeadmutil.GenerateToken(i.cfg.Discovery.Token); err != nil {
return err
}
}
// Make sure there is at least one address
@ -227,6 +228,12 @@ func (i *Init) Run(out io.Writer) error {
}
}
// PHASE 1: Generate certificates
caCert, err := certphase.CreatePKIAssets(i.cfg, kubeadmapi.GlobalEnvParams.HostPKIPath)
if err != nil {
return err
}
// PHASE 2: Generate kubeconfig files for the admin and the kubelet
// TODO this is not great, but there is only one address we can use here