diff --git a/upup/pkg/api/componentconfig.go b/upup/pkg/api/componentconfig.go index 1620b98cd0..7a49fc50e6 100644 --- a/upup/pkg/api/componentconfig.go +++ b/upup/pkg/api/componentconfig.go @@ -337,11 +337,13 @@ type KubeProxyConfig struct { } type DockerConfig struct { - Bridge string `json:"bridge,omitempty" flag:"bridge"` - LogLevel string `json:"logLevel,omitempty" flag:"log-level"` - IPTables bool `json:"ipTables,omitempty" flag:"iptables"` - IPMasq bool `json:"ipMasq,omitempty" flag:"ip-masq"` - Storage string `json:"storage,omitempty" flag:"s"` + Bridge string `json:"bridge,omitempty" flag:"bridge"` + LogLevel string `json:"logLevel,omitempty" flag:"log-level"` + IPTables bool `json:"ipTables,omitempty" flag:"iptables"` + IPMasq bool `json:"ipMasq,omitempty" flag:"ip-masq"` + Storage string `json:"storage,omitempty" flag:"storage-driver"` + InsecureRegistry string `json:"insecureRegistry,omitempty" flag:"insecure-registry"` + MTU int `json:"mtu,omitempty" flag:"mtu"` } type KubeAPIServerConfig struct { diff --git a/upup/pkg/fi/cloudup/populatecluster_test.go b/upup/pkg/fi/cloudup/populatecluster_test.go index 510846b3a5..d7526dff58 100644 --- a/upup/pkg/fi/cloudup/populatecluster_test.go +++ b/upup/pkg/fi/cloudup/populatecluster_test.go @@ -28,6 +28,26 @@ func buildMinimalCluster() *api.Cluster { return c } +func addEtcdClusters(c *api.Cluster) { + zones := sets.NewString() + for _, z := range c.Spec.Zones { + zones.Insert(z.Name) + } + etcdZones := zones.List() + + for _, etcdCluster := range EtcdClusters { + etcd := &api.EtcdClusterSpec{} + etcd.Name = etcdCluster + for _, zone := range etcdZones { + m := &api.EtcdMemberSpec{} + m.Name = zone + m.Zone = zone + etcd.Members = append(etcd.Members, m) + } + c.Spec.EtcdClusters = append(c.Spec.EtcdClusters, etcd) + } +} + func TestPopulateCluster_Default_NoError(t *testing.T) { c := buildMinimalCluster() @@ -36,25 +56,7 @@ func TestPopulateCluster_Default_NoError(t *testing.T) { t.Fatalf("error from PerformAssignments: %v", err) } - if len(c.Spec.EtcdClusters) == 0 { - zones := sets.NewString() - for _, z := range c.Spec.Zones { - zones.Insert(z.Name) - } - etcdZones := zones.List() - - for _, etcdCluster := range EtcdClusters { - etcd := &api.EtcdClusterSpec{} - etcd.Name = etcdCluster - for _, zone := range etcdZones { - m := &api.EtcdMemberSpec{} - m.Name = zone - m.Zone = zone - etcd.Members = append(etcd.Members, m) - } - c.Spec.EtcdClusters = append(c.Spec.EtcdClusters, etcd) - } - } + addEtcdClusters(c) registry := buildInmemoryClusterRegistry() _, err = PopulateClusterSpec(c, registry) @@ -63,6 +65,40 @@ func TestPopulateCluster_Default_NoError(t *testing.T) { } } +func TestPopulateCluster_Docker_Spec(t *testing.T) { + c := buildMinimalCluster() + c.Spec.Docker = &api.DockerConfig{ + MTU: 5678, + InsecureRegistry: "myregistry.com:1234", + } + + err := c.PerformAssignments() + if err != nil { + t.Fatalf("error from PerformAssignments: %v", err) + } + + addEtcdClusters(c) + + registry := buildInmemoryClusterRegistry() + full, err := PopulateClusterSpec(c, registry) + if err != nil { + t.Fatalf("Unexpected error from PopulateCluster: %v", err) + } + + if full.Spec.Docker.MTU != 5678 { + t.Fatalf("Unexpected Docker MTU: %v", full.Spec.Docker.MTU) + } + + if full.Spec.Docker.InsecureRegistry != "myregistry.com:1234" { + t.Fatalf("Unexpected Docker InsecureRegistry: %v", full.Spec.Docker.InsecureRegistry) + } + + // Check default values not changed + if full.Spec.Docker.Bridge != "cbr0" { + t.Fatalf("Unexpected Docker Bridge: %v", full.Spec.Docker.Bridge) + } +} + func TestPopulateCluster_Custom_CIDR(t *testing.T) { c := buildMinimalCluster() c.Spec.NetworkCIDR = "172.20.2.0/24" @@ -77,25 +113,7 @@ func TestPopulateCluster_Custom_CIDR(t *testing.T) { t.Fatalf("error from PerformAssignments: %v", err) } - if len(c.Spec.EtcdClusters) == 0 { - zones := sets.NewString() - for _, z := range c.Spec.Zones { - zones.Insert(z.Name) - } - etcdZones := zones.List() - - for _, etcdCluster := range EtcdClusters { - etcd := &api.EtcdClusterSpec{} - etcd.Name = etcdCluster - for _, zone := range etcdZones { - m := &api.EtcdMemberSpec{} - m.Name = zone - m.Zone = zone - etcd.Members = append(etcd.Members, m) - } - c.Spec.EtcdClusters = append(c.Spec.EtcdClusters, etcd) - } - } + addEtcdClusters(c) registry := buildInmemoryClusterRegistry() full, err := PopulateClusterSpec(c, registry) @@ -116,25 +134,7 @@ func TestPopulateCluster_IsolateMasters(t *testing.T) { t.Fatalf("error from PerformAssignments: %v", err) } - if len(c.Spec.EtcdClusters) == 0 { - zones := sets.NewString() - for _, z := range c.Spec.Zones { - zones.Insert(z.Name) - } - etcdZones := zones.List() - - for _, etcdCluster := range EtcdClusters { - etcd := &api.EtcdClusterSpec{} - etcd.Name = etcdCluster - for _, zone := range etcdZones { - m := &api.EtcdMemberSpec{} - m.Name = zone - m.Zone = zone - etcd.Members = append(etcd.Members, m) - } - c.Spec.EtcdClusters = append(c.Spec.EtcdClusters, etcd) - } - } + addEtcdClusters(c) registry := buildInmemoryClusterRegistry() full, err := PopulateClusterSpec(c, registry) @@ -158,25 +158,7 @@ func TestPopulateCluster_IsolateMastersFalse(t *testing.T) { t.Fatalf("error from PerformAssignments: %v", err) } - if len(c.Spec.EtcdClusters) == 0 { - zones := sets.NewString() - for _, z := range c.Spec.Zones { - zones.Insert(z.Name) - } - etcdZones := zones.List() - - for _, etcdCluster := range EtcdClusters { - etcd := &api.EtcdClusterSpec{} - etcd.Name = etcdCluster - for _, zone := range etcdZones { - m := &api.EtcdMemberSpec{} - m.Name = zone - m.Zone = zone - etcd.Members = append(etcd.Members, m) - } - c.Spec.EtcdClusters = append(c.Spec.EtcdClusters, etcd) - } - } + addEtcdClusters(c) registry := buildInmemoryClusterRegistry() full, err := PopulateClusterSpec(c, registry)