Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions pkg/asset/manifests/infrastructure.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,13 +158,18 @@ func (i *Infrastructure) Generate(dependencies asset.Parents) error {
}
case baremetal.Name:
config.Spec.PlatformSpec.Type = configv1.BareMetalPlatformType
config.Spec.PlatformSpec.BareMetal = &configv1.BareMetalPlatformSpec{}
config.Status.PlatformStatus.BareMetal = &configv1.BareMetalPlatformStatus{
APIServerInternalIP: installConfig.Config.Platform.BareMetal.APIVIPs[0],
IngressIP: installConfig.Config.Platform.BareMetal.IngressVIPs[0],
APIServerInternalIPs: installConfig.Config.Platform.BareMetal.APIVIPs,
IngressIPs: installConfig.Config.Platform.BareMetal.IngressVIPs,
LoadBalancer: installConfig.Config.Platform.BareMetal.LoadBalancer,
}
config.Spec.PlatformSpec.BareMetal.APIServerInternalIPs = types.StringsToIPs(installConfig.Config.Platform.BareMetal.APIVIPs)
config.Spec.PlatformSpec.BareMetal.IngressIPs = types.StringsToIPs(installConfig.Config.Platform.BareMetal.IngressVIPs)
config.Spec.PlatformSpec.BareMetal.MachineNetworks = types.MachineNetworksToCIDRs(installConfig.Config.MachineNetwork)
config.Status.PlatformStatus.BareMetal.MachineNetworks = types.MachineNetworksToCIDRs(installConfig.Config.MachineNetwork)
case gcp.Name:
config.Spec.PlatformSpec.Type = configv1.GCPPlatformType
config.Status.PlatformStatus.GCP = &configv1.GCPPlatformStatus{
Expand Down Expand Up @@ -228,15 +233,21 @@ func (i *Infrastructure) Generate(dependencies asset.Parents) error {
config.Spec.PlatformSpec.Type = configv1.NonePlatformType
case openstack.Name:
config.Spec.PlatformSpec.Type = configv1.OpenStackPlatformType
config.Spec.PlatformSpec.OpenStack = &configv1.OpenStackPlatformSpec{}
config.Status.PlatformStatus.OpenStack = &configv1.OpenStackPlatformStatus{
APIServerInternalIP: installConfig.Config.OpenStack.APIVIPs[0],
IngressIP: installConfig.Config.OpenStack.IngressVIPs[0],
APIServerInternalIPs: installConfig.Config.OpenStack.APIVIPs,
IngressIPs: installConfig.Config.OpenStack.IngressVIPs,
LoadBalancer: installConfig.Config.OpenStack.LoadBalancer,
}
config.Spec.PlatformSpec.OpenStack.APIServerInternalIPs = types.StringsToIPs(installConfig.Config.Platform.OpenStack.APIVIPs)
config.Spec.PlatformSpec.OpenStack.IngressIPs = types.StringsToIPs(installConfig.Config.Platform.OpenStack.IngressVIPs)
config.Spec.PlatformSpec.OpenStack.MachineNetworks = types.MachineNetworksToCIDRs(installConfig.Config.MachineNetwork)
config.Status.PlatformStatus.OpenStack.MachineNetworks = types.MachineNetworksToCIDRs(installConfig.Config.MachineNetwork)
case vsphere.Name:
config.Spec.PlatformSpec.Type = configv1.VSpherePlatformType
config.Spec.PlatformSpec.VSphere = &configv1.VSpherePlatformSpec{}
if len(installConfig.Config.VSphere.APIVIPs) > 0 {
config.Status.PlatformStatus.VSphere = &configv1.VSpherePlatformStatus{
APIServerInternalIP: installConfig.Config.VSphere.APIVIPs[0],
Expand All @@ -245,6 +256,8 @@ func (i *Infrastructure) Generate(dependencies asset.Parents) error {
IngressIPs: installConfig.Config.VSphere.IngressVIPs,
LoadBalancer: installConfig.Config.VSphere.LoadBalancer,
}
} else {
config.Status.PlatformStatus.VSphere = &configv1.VSpherePlatformStatus{}
}

config.Spec.PlatformSpec.VSphere = vsphereinfra.GetInfraPlatformSpec(installConfig)
Expand All @@ -253,6 +266,7 @@ func (i *Infrastructure) Generate(dependencies asset.Parents) error {
cloudProviderConfigMapKey = "vsphere.conf"
}

config.Status.PlatformStatus.VSphere.MachineNetworks = types.MachineNetworksToCIDRs(installConfig.Config.MachineNetwork)
case ovirt.Name:
config.Spec.PlatformSpec.Type = configv1.OvirtPlatformType
config.Status.PlatformStatus.Ovirt = &configv1.OvirtPlatformStatus{
Expand Down
6 changes: 6 additions & 0 deletions pkg/asset/manifests/vsphere/infrastructure.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package vsphere
import (
configv1 "github.com/openshift/api/config/v1"
"github.com/openshift/installer/pkg/asset/installconfig"
"github.com/openshift/installer/pkg/types"
)

// GetInfraPlatformSpec constructs VSpherePlatformSpec for the infrastructure spec
Expand Down Expand Up @@ -37,5 +38,10 @@ func GetInfraPlatformSpec(ic *installconfig.InstallConfig) *configv1.VSpherePlat
})
}
}

platformSpec.APIServerInternalIPs = types.StringsToIPs(icPlatformSpec.APIVIPs)
platformSpec.IngressIPs = types.StringsToIPs(icPlatformSpec.IngressVIPs)
platformSpec.MachineNetworks = types.MachineNetworksToCIDRs(ic.Config.MachineNetwork)

return &platformSpec
}
34 changes: 34 additions & 0 deletions pkg/types/utils.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package types

import configv1 "github.com/openshift/api/config/v1"

// StringsToIPs is used to convert list of strings to list of IP addresses.
func StringsToIPs(ips []string) []configv1.IP {
res := []configv1.IP{}

if ips == nil {
return res
}

for _, ip := range ips {
res = append(res, configv1.IP(ip))
}

return res
}

// MachineNetworksToCIDRs is used to convert list of Machine Network Entries to
// list of CIDRs.
func MachineNetworksToCIDRs(nets []MachineNetworkEntry) []configv1.CIDR {
res := []configv1.CIDR{}

if nets == nil {
return res
}

for _, net := range nets {
res = append(res, configv1.CIDR(net.CIDR.String()))
}

return res
}
67 changes: 67 additions & 0 deletions pkg/types/utils_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package types

import (
"testing"

"github.com/stretchr/testify/assert"

configv1 "github.com/openshift/api/config/v1"
"github.com/openshift/installer/pkg/ipnet"
)

// TestStringsToIPs tests the StringsToIPs function.
func TestStringsToIPs(t *testing.T) {
testcases := []struct {
ips []string
expected []configv1.IP
}{
{
[]string{"10.0.0.1", "10.0.0.2"},
[]configv1.IP{"10.0.0.1", "10.0.0.2"},
},
{
[]string{},
[]configv1.IP{},
},
{
[]string{"fe80:1:2:3::"},
[]configv1.IP{"fe80:1:2:3::"},
},
}

for _, tc := range testcases {
res := StringsToIPs(tc.ips)
assert.Equal(t, tc.expected, res, "conversion failed")
}
}

// TestMachineNetworksToCIDRs tests the MachineNetworksToCIDRs function.
func TestMachineNetworksToCIDRs(t *testing.T) {
testcases := []struct {
networks []MachineNetworkEntry
expected []configv1.CIDR
}{
{
[]MachineNetworkEntry{
{CIDR: *ipnet.MustParseCIDR("10.0.0.1/32")},
{CIDR: *ipnet.MustParseCIDR("10.0.0.2/32")},
},
[]configv1.CIDR{"10.0.0.1/32", "10.0.0.2/32"},
},
{
[]MachineNetworkEntry{},
[]configv1.CIDR{},
},
{
[]MachineNetworkEntry{
{CIDR: *ipnet.MustParseCIDR("fe80:1:2:3::/128")},
},
[]configv1.CIDR{"fe80:1:2:3::/128"},
},
}

for _, tc := range testcases {
res := MachineNetworksToCIDRs(tc.networks)
assert.Equal(t, tc.expected, res, "conversion failed")
}
}