Test for ability to switch from single to multi-master

This commit is contained in:
Ole Markus With 2020-04-25 17:49:40 +02:00
parent 73a93f7d44
commit 33eea2639f
2 changed files with 98 additions and 0 deletions

View File

@ -38,6 +38,7 @@ go_test(
name = "go_default_test",
srcs = [
"aws_test.go",
"cluster_test.go",
"instancegroup_test.go",
"validation_test.go",
],

View File

@ -0,0 +1,97 @@
package validation
import (
"testing"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/pkg/apis/kops"
)
func TestValidEtcdChanges(t *testing.T) {
grid := []struct {
OldSpec *kops.EtcdClusterSpec
NewSpec *kops.EtcdClusterSpec
Status *kops.ClusterStatus
Details string
}{
{
OldSpec: &kops.EtcdClusterSpec{
Name: "main",
Members: []*kops.EtcdMemberSpec{
&kops.EtcdMemberSpec{
Name: "a",
InstanceGroup: fi.String("eu-central-1a"),
},
},
},
NewSpec: &kops.EtcdClusterSpec{
Name: "main",
Members: []*kops.EtcdMemberSpec{
&kops.EtcdMemberSpec{
Name: "a",
InstanceGroup: fi.String("eu-central-1a"),
},
&kops.EtcdMemberSpec{
Name: "b",
InstanceGroup: fi.String("eu-central-1b"),
},
&kops.EtcdMemberSpec{
Name: "c",
InstanceGroup: fi.String("eu-central-1c"),
},
},
},
Status: &kops.ClusterStatus{
EtcdClusters: []kops.EtcdClusterStatus{
kops.EtcdClusterStatus{
Name: "main",
},
},
},
Details: "Could not update from single to multi-master",
},
{
OldSpec: &kops.EtcdClusterSpec{
Name: "main",
Members: []*kops.EtcdMemberSpec{
&kops.EtcdMemberSpec{
Name: "a",
InstanceGroup: fi.String("eu-central-1a"),
},
},
},
NewSpec: &kops.EtcdClusterSpec{
Name: "main",
Members: []*kops.EtcdMemberSpec{
&kops.EtcdMemberSpec{
Name: "a",
InstanceGroup: fi.String("eu-central-1a"),
},
},
},
Status: &kops.ClusterStatus{
EtcdClusters: []kops.EtcdClusterStatus{
kops.EtcdClusterStatus{
Name: "main",
},
},
},
Details: "Could not update identical specs",
},
}
for _, g := range grid {
errorList := validateEtcdClusterUpdate(nil, g.NewSpec, g.Status, g.OldSpec)
if len(errorList) != 0 {
t.Error(g.Details)
}
}
}