Skip to content
Closed
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
5 changes: 3 additions & 2 deletions pkg/asset/machines/master.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta1" //nolint:staticcheck //CORS-3563
ipamv2 "sigs.k8s.io/cluster-api/api/ipam/v1beta2"
"sigs.k8s.io/yaml"

configv1 "github.com/openshift/api/config/v1"
Expand Down Expand Up @@ -184,8 +185,8 @@ func (m *Master) Generate(ctx context.Context, dependencies asset.Parents) error
pool := *ic.ControlPlane
var err error
machines := []machinev1beta1.Machine{}
var ipClaims []ipamv1.IPAddressClaim
var ipAddrs []ipamv1.IPAddress
var ipClaims []ipamv2.IPAddressClaim
var ipAddrs []ipamv2.IPAddress
var controlPlaneMachineSet *machinev1.ControlPlaneMachineSet

// Check if SNO topology is supported on this platform
Expand Down
48 changes: 26 additions & 22 deletions pkg/asset/machines/vsphere/machines.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ import (
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta1" //nolint:staticcheck //CORS-3563
//nolint:staticcheck //CORS-3563
ipamv2 "sigs.k8s.io/cluster-api/api/ipam/v1beta2"

//nolint:staticcheck //CORS-3563

v1 "github.com/openshift/api/config/v1"
machinev1 "github.com/openshift/api/machine/v1"
Expand All @@ -26,8 +29,8 @@ import (
type MachineData struct {
Machines []machineapi.Machine
ControlPlaneMachineSet *machinev1.ControlPlaneMachineSet
IPClaims []ipamv1.IPAddressClaim
IPAddresses []ipamv1.IPAddress
IPClaims []ipamv2.IPAddressClaim
IPAddresses []ipamv2.IPAddress

MachineFailureDomain map[string]string
}
Expand Down Expand Up @@ -230,9 +233,9 @@ func Machines(clusterID string, config *types.InstallConfig, pool *types.Machine
// applyNetworkConfig this function will apply the static ip configuration to the networkDevice
// field in the provider spec. The function will use the desired zone to determine which config
// to apply and then remove that host config from the hosts array.
func applyNetworkConfig(host *vsphere.Host, provider *machineapi.VSphereMachineProviderSpec, machine machineapi.Machine) ([]ipamv1.IPAddressClaim, []ipamv1.IPAddress, error) {
var ipClaims []ipamv1.IPAddressClaim
var ipAddrs []ipamv1.IPAddress
func applyNetworkConfig(host *vsphere.Host, provider *machineapi.VSphereMachineProviderSpec, machine machineapi.Machine) ([]ipamv2.IPAddressClaim, []ipamv2.IPAddress, error) {
var ipClaims []ipamv2.IPAddressClaim
var ipAddrs []ipamv2.IPAddress
if host != nil {
networkDevice := host.NetworkDevice
if networkDevice != nil {
Expand All @@ -248,11 +251,13 @@ func applyNetworkConfig(host *vsphere.Host, provider *machineapi.VSphereMachineP
// Generate the capi networking objects
slashIndex := strings.Index(address, "/")
ipAddress := address[0:slashIndex]
prefix, err := strconv.Atoi(address[slashIndex+1:])

prefix, err := strconv.ParseInt(address[slashIndex+1:], 10, 32)
if err != nil {
return nil, nil, errors.Wrap(err, "unable to determine address prefix")
}
ipClaim, ipAddr := generateCapiNetwork(machine.Name, ipAddress, networkDevice.Gateway, prefix, 0, idx)
prefix32 := int32(prefix)
ipClaim, ipAddr := generateCapiNetwork(machine.Name, ipAddress, networkDevice.Gateway, &prefix32, 0, idx)
ipClaims = append(ipClaims, *ipClaim)
ipAddrs = append(ipAddrs, *ipAddr)
}
Expand All @@ -263,19 +268,18 @@ func applyNetworkConfig(host *vsphere.Host, provider *machineapi.VSphereMachineP
}

// generateCapiNetwork this function will create IPAddressClaim and IPAddress for the specified information.
func generateCapiNetwork(machineName, ipAddress, gateway string, prefix, deviceIndex, ipIndex int) (*ipamv1.IPAddressClaim, *ipamv1.IPAddress) {
// Generate PoolRef
func generateCapiNetwork(machineName, ipAddress, gateway string, prefix *int32, deviceIndex, ipIndex int) (*ipamv2.IPAddressClaim, *ipamv2.IPAddress) {
apigroup := "installer.openshift.io"
poolRef := corev1.TypedLocalObjectReference{
APIGroup: &apigroup,
Kind: "IPPool",
poolRef := ipamv2.IPPoolReference{
Name: fmt.Sprintf("default-%d", ipIndex),
Kind: "IPPool",
APIGroup: apigroup,
}

// Generate IPAddressClaim
ipclaim := &ipamv1.IPAddressClaim{
ipclaim := &ipamv2.IPAddressClaim{
TypeMeta: metav1.TypeMeta{
APIVersion: "ipam.cluster.x-k8s.io/v1beta1",
APIVersion: ipamv2.GroupVersion.String(),
Kind: "IPAddressClaim",
},
ObjectMeta: metav1.ObjectMeta{
Expand All @@ -285,24 +289,24 @@ func generateCapiNetwork(machineName, ipAddress, gateway string, prefix, deviceI
Name: fmt.Sprintf("%s-claim-%d-%d", machineName, deviceIndex, ipIndex),
Namespace: "openshift-machine-api",
},
Spec: ipamv1.IPAddressClaimSpec{
Spec: ipamv2.IPAddressClaimSpec{
PoolRef: poolRef,
},
}

// Populate IPAddress info
ipaddr := &ipamv1.IPAddress{
ipaddr := &ipamv2.IPAddress{
TypeMeta: metav1.TypeMeta{
APIVersion: "ipam.cluster.x-k8s.io/v1beta1",
APIVersion: ipamv2.GroupVersion.String(),
Kind: "IPAddress",
},
ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("%s-claim-%d-%d", machineName, deviceIndex, ipIndex),
Namespace: "openshift-machine-api",
},
Spec: ipamv1.IPAddressSpec{
Spec: ipamv2.IPAddressSpec{
Address: ipAddress,
ClaimRef: corev1.LocalObjectReference{
ClaimRef: ipamv2.IPAddressClaimReference{
Name: ipclaim.Name,
},
Gateway: gateway,
Expand All @@ -311,8 +315,8 @@ func generateCapiNetwork(machineName, ipAddress, gateway string, prefix, deviceI
},
}

ipclaim.Status = ipamv1.IPAddressClaimStatus{
AddressRef: corev1.LocalObjectReference{
ipclaim.Status = ipamv2.IPAddressClaimStatus{
AddressRef: ipamv2.IPAddressReference{
Name: ipaddr.Name,
},
}
Expand Down
7 changes: 4 additions & 3 deletions pkg/asset/machines/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ import (
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/utils/pointer"
capz "sigs.k8s.io/cluster-api-provider-azure/api/v1beta1"
ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta1" //nolint:staticcheck //CORS-3563
//nolint:staticcheck //CORS-3563
ipamv2 "sigs.k8s.io/cluster-api/api/ipam/v1beta2"
"sigs.k8s.io/yaml"

configv1 "github.com/openshift/api/config/v1"
Expand Down Expand Up @@ -329,8 +330,8 @@ func (w *Worker) Generate(ctx context.Context, dependencies asset.Parents) error
machines := []machinev1beta1.Machine{}
machineConfigs := []*mcfgv1.MachineConfig{}
machineSets := []runtime.Object{}
var ipClaims []ipamv1.IPAddressClaim
var ipAddrs []ipamv1.IPAddress
var ipClaims []ipamv2.IPAddressClaim
var ipAddrs []ipamv2.IPAddress
var err error
ic := installConfig.Config
for _, pool := range ic.Compute {
Expand Down
7 changes: 4 additions & 3 deletions pkg/utils/vmware.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,22 @@ import (
"strings"

"github.com/sirupsen/logrus"
ipamv1 "sigs.k8s.io/cluster-api/api/ipam/v1beta1" //nolint:staticcheck //CORS-3563
//nolint:staticcheck //CORS-3563
ipamv2 "sigs.k8s.io/cluster-api/api/ipam/v1beta2"

machinev1beta1 "github.com/openshift/api/machine/v1beta1"
"github.com/openshift/installer/pkg/types"
)

// ConstructNetworkKargsFromMachine does something.
func ConstructNetworkKargsFromMachine(claims []ipamv1.IPAddressClaim, addresses []ipamv1.IPAddress, machine *machinev1beta1.Machine, network machinev1beta1.NetworkDeviceSpec) (string, error) {
func ConstructNetworkKargsFromMachine(claims []ipamv2.IPAddressClaim, addresses []ipamv2.IPAddress, machine *machinev1beta1.Machine, network machinev1beta1.NetworkDeviceSpec) (string, error) {
var ipAddresses []string
var gateways []string
for idx := range network.AddressesFromPools {
for _, address := range addresses {
logrus.Debugf("Checking IPAdress %v. Does it match? %v", address.Name, fmt.Sprintf("%s-claim-%d-%d", machine.Name, 0, idx))
if address.Name == fmt.Sprintf("%s-claim-%d-%d", machine.Name, 0, idx) {
ipAddresses = append(ipAddresses, fmt.Sprintf("%v/%v", address.Spec.Address, address.Spec.Prefix))
ipAddresses = append(ipAddresses, fmt.Sprintf("%v/%v", address.Spec.Address, *address.Spec.Prefix))
gateways = append(gateways, address.Spec.Gateway)
break
}
Expand Down