mirror of https://github.com/k3s-io/k3s
Merge pull request #70795 from yuexiao-wang/print-join-command
kubeadm: print the join commandpull/58/head
commit
bfb95290b9
|
@ -150,6 +150,9 @@ func NewCmdInit(out io.Writer) *cobra.Command {
|
||||||
// via the subcommands automatically created by initRunner.BindToCommand
|
// via the subcommands automatically created by initRunner.BindToCommand
|
||||||
err = runInit(&data, out)
|
err = runInit(&data, out)
|
||||||
kubeadmutil.CheckErr(err)
|
kubeadmutil.CheckErr(err)
|
||||||
|
|
||||||
|
err = showJoinCommand(&data, out)
|
||||||
|
kubeadmutil.CheckErr(err)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -395,6 +398,9 @@ func (d initData) KubeConfigDir() string {
|
||||||
|
|
||||||
// KubeConfigPath returns the path to the kubeconfig file to use for connecting to Kubernetes
|
// KubeConfigPath returns the path to the kubeconfig file to use for connecting to Kubernetes
|
||||||
func (d initData) KubeConfigPath() string {
|
func (d initData) KubeConfigPath() string {
|
||||||
|
if d.dryRun {
|
||||||
|
d.kubeconfigPath = filepath.Join(d.dryRunDir, kubeadmconstants.AdminKubeConfigFileName)
|
||||||
|
}
|
||||||
return d.kubeconfigPath
|
return d.kubeconfigPath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -456,10 +462,9 @@ func (d initData) Tokens() []string {
|
||||||
|
|
||||||
// runInit executes master node provisioning
|
// runInit executes master node provisioning
|
||||||
func runInit(i *initData, out io.Writer) error {
|
func runInit(i *initData, out io.Writer) error {
|
||||||
|
|
||||||
// Get directories to write files to; can be faked if we're dry-running
|
// Get directories to write files to; can be faked if we're dry-running
|
||||||
klog.V(1).Infof("[init] Getting certificates directory from configuration")
|
klog.V(1).Infof("[init] Getting certificates directory from configuration")
|
||||||
certsDirToWriteTo, kubeConfigDir, _, _, err := getDirectoriesToUse(i.dryRun, i.dryRunDir, i.cfg.CertificatesDir)
|
certsDirToWriteTo, _, _, _, err := getDirectoriesToUse(i.dryRun, i.dryRunDir, i.cfg.CertificatesDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "error getting directories to use")
|
return errors.Wrap(err, "error getting directories to use")
|
||||||
}
|
}
|
||||||
|
@ -467,8 +472,6 @@ func runInit(i *initData, out io.Writer) error {
|
||||||
// certsDirToWriteTo is gonna equal cfg.CertificatesDir in the normal case, but gonna be a temp directory if dryrunning
|
// certsDirToWriteTo is gonna equal cfg.CertificatesDir in the normal case, but gonna be a temp directory if dryrunning
|
||||||
i.cfg.CertificatesDir = certsDirToWriteTo
|
i.cfg.CertificatesDir = certsDirToWriteTo
|
||||||
|
|
||||||
adminKubeConfigPath := filepath.Join(kubeConfigDir, kubeadmconstants.AdminKubeConfigFileName)
|
|
||||||
|
|
||||||
// TODO: client and waiter are temporary until the rest of the phases that use them
|
// TODO: client and waiter are temporary until the rest of the phases that use them
|
||||||
// are removed from this function.
|
// are removed from this function.
|
||||||
client, err := i.Client()
|
client, err := i.Client()
|
||||||
|
@ -505,12 +508,6 @@ func runInit(i *initData, out io.Writer) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prints the join command, multiple times in case the user has multiple tokens
|
|
||||||
for _, token := range i.Tokens() {
|
|
||||||
if err := printJoinCommand(out, adminKubeConfigPath, token, i.skipTokenPrint); err != nil {
|
|
||||||
return errors.Wrap(err, "failed to print join command")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -538,3 +535,17 @@ func getDirectoriesToUse(dryRun bool, dryRunDir string, defaultPkiDir string) (s
|
||||||
|
|
||||||
return defaultPkiDir, kubeadmconstants.KubernetesDir, kubeadmconstants.GetStaticPodDirectory(), kubeadmconstants.KubeletRunDirectory, nil
|
return defaultPkiDir, kubeadmconstants.KubernetesDir, kubeadmconstants.GetStaticPodDirectory(), kubeadmconstants.KubeletRunDirectory, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// showJoinCommand prints the join command after all the phases in init have finished
|
||||||
|
func showJoinCommand(i *initData, out io.Writer) error {
|
||||||
|
adminKubeConfigPath := i.KubeConfigPath()
|
||||||
|
|
||||||
|
// Prints the join command, multiple times in case the user has multiple tokens
|
||||||
|
for _, token := range i.Tokens() {
|
||||||
|
if err := printJoinCommand(out, adminKubeConfigPath, token, i.skipTokenPrint); err != nil {
|
||||||
|
return errors.Wrap(err, "failed to print join command")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue