mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
Merge pull request #110712 from chendave/ignore_args
kubeadm: certs renew doesn't support positional args
This commit is contained in:
commit
035f22d781
@ -257,6 +257,7 @@ func getRenewSubCommands(out io.Writer, kdir string) []*cobra.Command {
|
|||||||
}(handler)
|
}(handler)
|
||||||
// install the implementation into the command
|
// install the implementation into the command
|
||||||
cmd.RunE = func(*cobra.Command, []string) error { return renewalFunc() }
|
cmd.RunE = func(*cobra.Command, []string) error { return renewalFunc() }
|
||||||
|
cmd.Args = cobra.NoArgs
|
||||||
cmdList = append(cmdList, cmd)
|
cmdList = append(cmdList, cmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +143,8 @@ func TestRunRenewCommands(t *testing.T) {
|
|||||||
command string
|
command string
|
||||||
Certs []*certsphase.KubeadmCert
|
Certs []*certsphase.KubeadmCert
|
||||||
KubeconfigFiles []string
|
KubeconfigFiles []string
|
||||||
|
Args string
|
||||||
|
expectedError bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
command: "all",
|
command: "all",
|
||||||
@ -221,6 +223,14 @@ func TestRunRenewCommands(t *testing.T) {
|
|||||||
kubeadmconstants.ControllerManagerKubeConfigFileName,
|
kubeadmconstants.ControllerManagerKubeConfigFileName,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
command: "apiserver",
|
||||||
|
Certs: []*certsphase.KubeadmCert{
|
||||||
|
certsphase.KubeadmCertAPIServer(),
|
||||||
|
},
|
||||||
|
Args: "args",
|
||||||
|
expectedError: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
@ -244,25 +254,34 @@ func TestRunRenewCommands(t *testing.T) {
|
|||||||
|
|
||||||
// exec renew
|
// exec renew
|
||||||
renewCmds := getRenewSubCommands(os.Stdout, tmpDir)
|
renewCmds := getRenewSubCommands(os.Stdout, tmpDir)
|
||||||
cmdtestutil.RunSubCommand(t, renewCmds, test.command, fmt.Sprintf("--cert-dir=%s", tmpDir))
|
args := fmt.Sprintf("--cert-dir=%s", tmpDir)
|
||||||
|
if len(test.Args) > 0 {
|
||||||
// check the file is modified
|
args = test.Args + " " + args
|
||||||
for _, cert := range test.Certs {
|
|
||||||
file, err := os.Stat(filepath.Join(tmpDir, fmt.Sprintf("%s.crt", cert.BaseName)))
|
|
||||||
if err != nil {
|
|
||||||
t.Fatalf("couldn't get certificate %s: %v", cert.Name, err)
|
|
||||||
}
|
|
||||||
if ModTime[cert.Name] == file.ModTime() {
|
|
||||||
t.Errorf("certificate %s was not renewed as expected", cert.Name)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for _, kubeConfig := range test.KubeconfigFiles {
|
err := cmdtestutil.RunSubCommand(t, renewCmds, test.command, args)
|
||||||
file, err := os.Stat(filepath.Join(tmpDir, kubeConfig))
|
// certs renew doesn't support positional Args
|
||||||
if err != nil {
|
if (err != nil) != test.expectedError {
|
||||||
t.Fatalf("couldn't get kubeconfig %s: %v", kubeConfig, err)
|
t.Errorf("failed to run renew commands, expected error: %t, actual error: %v", test.expectedError, err)
|
||||||
|
}
|
||||||
|
if !test.expectedError {
|
||||||
|
// check the file is modified
|
||||||
|
for _, cert := range test.Certs {
|
||||||
|
file, err := os.Stat(filepath.Join(tmpDir, fmt.Sprintf("%s.crt", cert.BaseName)))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("couldn't get certificate %s: %v", cert.Name, err)
|
||||||
|
}
|
||||||
|
if ModTime[cert.Name] == file.ModTime() {
|
||||||
|
t.Errorf("certificate %s was not renewed as expected", cert.Name)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ModTime[kubeConfig] == file.ModTime() {
|
for _, kubeConfig := range test.KubeconfigFiles {
|
||||||
t.Errorf("kubeconfig %s was not renewed as expected", kubeConfig)
|
file, err := os.Stat(filepath.Join(tmpDir, kubeConfig))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("couldn't get kubeconfig %s: %v", kubeConfig, err)
|
||||||
|
}
|
||||||
|
if ModTime[kubeConfig] == file.ModTime() {
|
||||||
|
t.Errorf("kubeconfig %s was not renewed as expected", kubeConfig)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -50,12 +50,13 @@ func RunCmd(command string, args ...string) (string, string, int, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RunSubCommand is a utility function for kubeadm testing that executes a Cobra sub command
|
// RunSubCommand is a utility function for kubeadm testing that executes a Cobra sub command
|
||||||
func RunSubCommand(t *testing.T, subCmds []*cobra.Command, command string, args ...string) {
|
func RunSubCommand(t *testing.T, subCmds []*cobra.Command, command string, args ...string) error {
|
||||||
subCmd := getSubCommand(t, subCmds, command)
|
subCmd := getSubCommand(t, subCmds, command)
|
||||||
subCmd.SetArgs(args)
|
subCmd.SetArgs(args)
|
||||||
if err := subCmd.Execute(); err != nil {
|
if err := subCmd.Execute(); err != nil {
|
||||||
t.Fatalf("Could not execute subcommand: %s", command)
|
return err
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func getSubCommand(t *testing.T, subCmds []*cobra.Command, name string) *cobra.Command {
|
func getSubCommand(t *testing.T, subCmds []*cobra.Command, name string) *cobra.Command {
|
||||||
|
Loading…
Reference in New Issue
Block a user