mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +00:00
Don't allow --csr-only for CA certs or all
This commit is contained in:
parent
859ab7450d
commit
440a5ad7cb
@ -91,7 +91,6 @@ func newCertSubPhases() []workflow.Phase {
|
|||||||
Short: "Generates all certificates",
|
Short: "Generates all certificates",
|
||||||
InheritFlags: getCertPhaseFlags("all"),
|
InheritFlags: getCertPhaseFlags("all"),
|
||||||
RunAllSiblings: true,
|
RunAllSiblings: true,
|
||||||
LocalFlags: localFlags(),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
subPhases = append(subPhases, allPhase)
|
subPhases = append(subPhases, allPhase)
|
||||||
@ -104,6 +103,7 @@ func newCertSubPhases() []workflow.Phase {
|
|||||||
|
|
||||||
for _, cert := range certList {
|
for _, cert := range certList {
|
||||||
certPhase := newCertSubPhase(cert, runCertPhase(cert, ca))
|
certPhase := newCertSubPhase(cert, runCertPhase(cert, ca))
|
||||||
|
certPhase.LocalFlags = localFlags()
|
||||||
subPhases = append(subPhases, certPhase)
|
subPhases = append(subPhases, certPhase)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -133,7 +133,6 @@ func newCertSubPhase(certSpec *certsphase.KubeadmCert, run func(c workflow.RunDa
|
|||||||
),
|
),
|
||||||
Run: run,
|
Run: run,
|
||||||
InheritFlags: getCertPhaseFlags(certSpec.Name),
|
InheritFlags: getCertPhaseFlags(certSpec.Name),
|
||||||
LocalFlags: localFlags(),
|
|
||||||
}
|
}
|
||||||
return phase
|
return phase
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ go_test(
|
|||||||
"//cmd/kubeadm/app/phases/certs:go_default_library",
|
"//cmd/kubeadm/app/phases/certs:go_default_library",
|
||||||
"//cmd/kubeadm/app/util/pkiutil:go_default_library",
|
"//cmd/kubeadm/app/util/pkiutil:go_default_library",
|
||||||
"//cmd/kubeadm/test:go_default_library",
|
"//cmd/kubeadm/test:go_default_library",
|
||||||
|
"//vendor/github.com/pkg/errors:go_default_library",
|
||||||
"//vendor/github.com/renstrom/dedent:go_default_library",
|
"//vendor/github.com/renstrom/dedent:go_default_library",
|
||||||
"//vendor/sigs.k8s.io/yaml:go_default_library",
|
"//vendor/sigs.k8s.io/yaml:go_default_library",
|
||||||
],
|
],
|
||||||
|
@ -17,8 +17,11 @@ limitations under the License.
|
|||||||
package kubeadm
|
package kubeadm
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os/exec"
|
||||||
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
"github.com/renstrom/dedent"
|
"github.com/renstrom/dedent"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
|
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil"
|
"k8s.io/kubernetes/cmd/kubeadm/app/util/pkiutil"
|
||||||
@ -200,18 +203,54 @@ func TestCmdInitCertPhaseCSR(t *testing.T) {
|
|||||||
t.Skip()
|
t.Skip()
|
||||||
}
|
}
|
||||||
|
|
||||||
csrDir := testutil.SetupTempDir(t)
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
baseName string
|
||||||
|
expectedError string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "generate CSR",
|
||||||
|
baseName: certs.KubeadmCertKubeletClient.BaseName,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "fails on CSR",
|
||||||
|
baseName: certs.KubeadmCertRootCA.BaseName,
|
||||||
|
expectedError: "unknown flag: --csr-only",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "fails on all",
|
||||||
|
baseName: "all",
|
||||||
|
expectedError: "unknown flag: --csr-only",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, test := range tests {
|
||||||
|
t.Run(test.name, func(t *testing.T) {
|
||||||
|
csrDir := testutil.SetupTempDir(t)
|
||||||
cert := &certs.KubeadmCertKubeletClient
|
cert := &certs.KubeadmCertKubeletClient
|
||||||
kubeadmPath := getKubeadmPath()
|
kubeadmPath := getKubeadmPath()
|
||||||
_, _, err := RunCmd(kubeadmPath,
|
_, stderr, err := RunCmd(kubeadmPath,
|
||||||
"init",
|
"init",
|
||||||
"phase",
|
"phase",
|
||||||
"certs",
|
"certs",
|
||||||
cert.BaseName,
|
test.baseName,
|
||||||
"--csr-only",
|
"--csr-only",
|
||||||
"--csr-dir="+csrDir,
|
"--csr-dir="+csrDir,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if test.expectedError != "" {
|
||||||
|
cause := errors.Cause(err)
|
||||||
|
_, ok := cause.(*exec.ExitError)
|
||||||
|
if !ok {
|
||||||
|
t.Fatalf("expected exitErr: got %T (%v)", cause, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(stderr, test.expectedError) {
|
||||||
|
t.Errorf("expected %q to contain %q", stderr, test.expectedError)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("couldn't run kubeadm: %v", err)
|
t.Fatalf("couldn't run kubeadm: %v", err)
|
||||||
}
|
}
|
||||||
@ -219,6 +258,8 @@ func TestCmdInitCertPhaseCSR(t *testing.T) {
|
|||||||
if _, _, err := pkiutil.TryLoadCSRAndKeyFromDisk(csrDir, cert.BaseName); err != nil {
|
if _, _, err := pkiutil.TryLoadCSRAndKeyFromDisk(csrDir, cert.BaseName); err != nil {
|
||||||
t.Fatalf("couldn't load certificate %q: %v", cert.BaseName, err)
|
t.Fatalf("couldn't load certificate %q: %v", cert.BaseName, err)
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCmdInitAPIPort(t *testing.T) {
|
func TestCmdInitAPIPort(t *testing.T) {
|
||||||
|
@ -43,7 +43,7 @@ func runCmdNoWrap(command string, args ...string) (string, string, error) {
|
|||||||
func RunCmd(command string, args ...string) (string, string, error) {
|
func RunCmd(command string, args ...string) (string, string, error) {
|
||||||
stdout, stderr, err := runCmdNoWrap(command, args...)
|
stdout, stderr, err := runCmdNoWrap(command, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", errors.Wrapf(err, "error running %s %v; \nstdout %q, \nstderr %q, \ngot error",
|
return stdout, stderr, errors.Wrapf(err, "error running %s %v; \nstdout %q, \nstderr %q, \ngot error",
|
||||||
command, args, stdout, stderr)
|
command, args, stdout, stderr)
|
||||||
}
|
}
|
||||||
return stdout, stderr, nil
|
return stdout, stderr, nil
|
||||||
|
Loading…
Reference in New Issue
Block a user