Skip to content

Commit bae6b93

Browse files
committed
kubeadm: add some output to the generate-csr command
Currently the "generate-csr" command does not have any output. Pass an io.Writer (bound to os.Stdout from /cmd) to the functions responsible for generating the kubeconfig / certs keys and CSRs. If nil is passed these functions don't output anything.
1 parent 57a4653 commit bae6b93

File tree

4 files changed

+23
-9
lines changed

4 files changed

+23
-9
lines changed

cmd/kubeadm/app/cmd/alpha/certs.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ func NewCmdCertsUtility(out io.Writer) *cobra.Command {
101101
cmd.AddCommand(newCmdCertsRenewal(out))
102102
cmd.AddCommand(newCmdCertsExpiration(out, constants.KubernetesDir))
103103
cmd.AddCommand(newCmdCertificateKey())
104-
cmd.AddCommand(newCmdGenCSR())
104+
cmd.AddCommand(newCmdGenCSR(out))
105105
return cmd
106106
}
107107

@@ -147,7 +147,7 @@ func (o *genCSRConfig) load() (err error) {
147147
}
148148

149149
// newCmdGenCSR returns cobra.Command for generating keys and CSRs
150-
func newCmdGenCSR() *cobra.Command {
150+
func newCmdGenCSR(out io.Writer) *cobra.Command {
151151
config := newGenCSRConfig()
152152

153153
cmd := &cobra.Command{
@@ -160,19 +160,19 @@ func newCmdGenCSR() *cobra.Command {
160160
if err := config.load(); err != nil {
161161
return err
162162
}
163-
return runGenCSR(config)
163+
return runGenCSR(out, config)
164164
},
165165
}
166166
config.addFlagSet(cmd.Flags())
167167
return cmd
168168
}
169169

170170
// runGenCSR contains the logic of the generate-csr sub-command.
171-
func runGenCSR(config *genCSRConfig) error {
172-
if err := certsphase.CreateDefaultKeysAndCSRFiles(config.kubeadmConfig); err != nil {
171+
func runGenCSR(out io.Writer, config *genCSRConfig) error {
172+
if err := certsphase.CreateDefaultKeysAndCSRFiles(out, config.kubeadmConfig); err != nil {
173173
return err
174174
}
175-
if err := kubeconfigphase.CreateDefaultKubeConfigsAndCSRFiles(config.kubeConfigDir, config.kubeadmConfig); err != nil {
175+
if err := kubeconfigphase.CreateDefaultKubeConfigsAndCSRFiles(out, config.kubeConfigDir, config.kubeadmConfig); err != nil {
176176
return err
177177
}
178178
return nil

cmd/kubeadm/app/cmd/alpha/certs_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ func TestRunGenCSR(t *testing.T) {
334334
},
335335
}
336336

337-
err := runGenCSR(&config)
337+
err := runGenCSR(nil, &config)
338338
require.NoError(t, err, "expected runGenCSR to not fail")
339339

340340
t.Log("The command generates key and CSR files in the configured --cert-dir")

cmd/kubeadm/app/phases/certs/certlist.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ package certs
1919
import (
2020
"crypto"
2121
"crypto/x509"
22+
"fmt"
23+
"io"
2224

2325
"github.com/pkg/errors"
2426

@@ -477,15 +479,21 @@ func createKeyAndCSR(kubeadmConfig *kubeadmapi.InitConfiguration, cert *KubeadmC
477479

478480
// CreateDefaultKeysAndCSRFiles is used in ExternalCA mode to create key files
479481
// and adjacent CSR files.
480-
func CreateDefaultKeysAndCSRFiles(config *kubeadmapi.InitConfiguration) error {
482+
func CreateDefaultKeysAndCSRFiles(out io.Writer, config *kubeadmapi.InitConfiguration) error {
481483
certificates, err := leafCertificates(GetDefaultCertList())
482484
if err != nil {
483485
return err
484486
}
487+
if out != nil {
488+
fmt.Fprintf(out, "generating keys and CSRs in %s\n", config.CertificatesDir)
489+
}
485490
for _, cert := range certificates {
486491
if err := createKeyAndCSR(config, cert); err != nil {
487492
return err
488493
}
494+
if out != nil {
495+
fmt.Fprintf(out, " %s\n", cert.BaseName)
496+
}
489497
}
490498
return nil
491499
}

cmd/kubeadm/app/phases/kubeconfig/kubeconfig.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,15 +508,21 @@ func createKubeConfigAndCSR(kubeConfigDir string, kubeadmConfig *kubeadmapi.Init
508508

509509
// CreateDefaultKubeConfigsAndCSRFiles is used in ExternalCA mode to create
510510
// kubeconfig files and adjacent CSR files.
511-
func CreateDefaultKubeConfigsAndCSRFiles(kubeConfigDir string, kubeadmConfig *kubeadmapi.InitConfiguration) error {
511+
func CreateDefaultKubeConfigsAndCSRFiles(out io.Writer, kubeConfigDir string, kubeadmConfig *kubeadmapi.InitConfiguration) error {
512512
kubeConfigs, err := getKubeConfigSpecsBase(kubeadmConfig)
513513
if err != nil {
514514
return err
515515
}
516+
if out != nil {
517+
fmt.Fprintf(out, "generating keys and CSRs in %s\n", kubeConfigDir)
518+
}
516519
for name, spec := range kubeConfigs {
517520
if err := createKubeConfigAndCSR(kubeConfigDir, kubeadmConfig, name, spec); err != nil {
518521
return err
519522
}
523+
if out != nil {
524+
fmt.Fprintf(out, " %s\n", name)
525+
}
520526
}
521527
return nil
522528
}

0 commit comments

Comments
 (0)