mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
kubeadm: increase ut coverage fo phases/kubeconfig
Signed-off-by: xin.li <xin.li@daocloud.io>
This commit is contained in:
parent
3be9a8cc73
commit
a2f397a4b8
@ -944,3 +944,202 @@ func TestEnsureAdminClusterRoleBindingImpl(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateKubeConfigAndCSR(t *testing.T) {
|
||||
tmpDir := testutil.SetupTempDir(t)
|
||||
testutil.SetupEmptyFiles(t, tmpDir, "testfile", "bar.csr", "bar.key")
|
||||
defer func() {
|
||||
if err := os.RemoveAll(tmpDir); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}()
|
||||
caCert, caKey := certstestutil.SetupCertificateAuthority(t)
|
||||
|
||||
type args struct {
|
||||
kubeConfigDir string
|
||||
kubeadmConfig *kubeadmapi.InitConfiguration
|
||||
name string
|
||||
spec *kubeConfigSpec
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
expectedError bool
|
||||
}{
|
||||
{
|
||||
name: "kubeadmConfig is nil",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: nil,
|
||||
name: "foo",
|
||||
spec: &kubeConfigSpec{
|
||||
CACert: caCert,
|
||||
APIServer: "10.0.0.1",
|
||||
ClientName: "foo",
|
||||
TokenAuth: &tokenAuth{Token: "test"},
|
||||
ClientCertAuth: &clientCertAuth{CAKey: caKey},
|
||||
},
|
||||
},
|
||||
expectedError: true,
|
||||
},
|
||||
{
|
||||
name: "The kubeConfigDir is empty",
|
||||
args: args{
|
||||
kubeConfigDir: "",
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{},
|
||||
name: "foo",
|
||||
spec: &kubeConfigSpec{
|
||||
CACert: caCert,
|
||||
APIServer: "10.0.0.1",
|
||||
ClientName: "foo",
|
||||
TokenAuth: &tokenAuth{Token: "test"},
|
||||
ClientCertAuth: &clientCertAuth{CAKey: caKey},
|
||||
},
|
||||
},
|
||||
expectedError: true,
|
||||
},
|
||||
{
|
||||
name: "The name is empty",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{},
|
||||
name: "",
|
||||
spec: &kubeConfigSpec{
|
||||
CACert: caCert,
|
||||
APIServer: "10.0.0.1",
|
||||
ClientName: "foo",
|
||||
TokenAuth: &tokenAuth{Token: "test"},
|
||||
ClientCertAuth: &clientCertAuth{CAKey: caKey},
|
||||
},
|
||||
},
|
||||
expectedError: true,
|
||||
},
|
||||
{
|
||||
name: "The spec is empty",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{},
|
||||
name: "foo",
|
||||
spec: nil,
|
||||
},
|
||||
expectedError: true,
|
||||
},
|
||||
{
|
||||
name: "The kubeconfig file already exists",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{},
|
||||
name: "testfile",
|
||||
spec: &kubeConfigSpec{
|
||||
CACert: caCert,
|
||||
APIServer: "10.0.0.1",
|
||||
ClientName: "foo",
|
||||
TokenAuth: &tokenAuth{Token: "test"},
|
||||
ClientCertAuth: &clientCertAuth{CAKey: caKey},
|
||||
},
|
||||
},
|
||||
expectedError: true,
|
||||
},
|
||||
{
|
||||
name: "The CSR or key files already exists",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{},
|
||||
name: "bar",
|
||||
spec: &kubeConfigSpec{
|
||||
CACert: caCert,
|
||||
APIServer: "10.0.0.1",
|
||||
ClientName: "foo",
|
||||
TokenAuth: &tokenAuth{Token: "test"},
|
||||
ClientCertAuth: &clientCertAuth{CAKey: caKey},
|
||||
},
|
||||
},
|
||||
expectedError: true,
|
||||
},
|
||||
{
|
||||
name: "configuration is valid, expect no errors",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{},
|
||||
name: "test",
|
||||
spec: &kubeConfigSpec{
|
||||
CACert: caCert,
|
||||
APIServer: "10.0.0.1",
|
||||
ClientName: "foo",
|
||||
TokenAuth: &tokenAuth{Token: "test"},
|
||||
ClientCertAuth: &clientCertAuth{CAKey: caKey},
|
||||
},
|
||||
},
|
||||
expectedError: false,
|
||||
},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
if err := createKubeConfigAndCSR(tc.args.kubeConfigDir, tc.args.kubeadmConfig, tc.args.name, tc.args.spec); (err != nil) != tc.expectedError {
|
||||
t.Errorf("createKubeConfigAndCSR() error = %v, wantErr %v", err, tc.expectedError)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestCreateDefaultKubeConfigsAndCSRFiles(t *testing.T) {
|
||||
tmpDir := testutil.SetupTempDir(t)
|
||||
defer func() {
|
||||
if err := os.RemoveAll(tmpDir); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}()
|
||||
type args struct {
|
||||
kubeConfigDir string
|
||||
kubeadmConfig *kubeadmapi.InitConfiguration
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "kubeadmConfig is empty",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{},
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "The APIEndpoint is invalid",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{
|
||||
LocalAPIEndpoint: kubeadmapi.APIEndpoint{
|
||||
AdvertiseAddress: "x.12.FOo.1",
|
||||
BindPort: 6443,
|
||||
},
|
||||
},
|
||||
},
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "The APIEndpoint is valid",
|
||||
args: args{
|
||||
kubeConfigDir: tmpDir,
|
||||
kubeadmConfig: &kubeadmapi.InitConfiguration{
|
||||
LocalAPIEndpoint: kubeadmapi.APIEndpoint{
|
||||
AdvertiseAddress: "127.0.0.1",
|
||||
BindPort: 6443,
|
||||
},
|
||||
},
|
||||
},
|
||||
wantErr: false,
|
||||
},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
out := &bytes.Buffer{}
|
||||
if err := CreateDefaultKubeConfigsAndCSRFiles(out, tc.args.kubeConfigDir, tc.args.kubeadmConfig); (err != nil) != tc.wantErr {
|
||||
t.Errorf("CreateDefaultKubeConfigsAndCSRFiles() error = %v, wantErr %v", err, tc.wantErr)
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user