Skip to content
Open
Changes from 1 commit
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
137 changes: 89 additions & 48 deletions tests/system-tests/rdscore/internal/rdscorecommon/ipvlan-validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,33 +158,53 @@ func VerifyIPVlanOnDifferentNodes() {
// VerifyIPVLANConnectivityBetweenDifferentNodes verifies connectivity between workloads,
// using IPVLAN interfaces and running on different nodes.
func VerifyIPVLANConnectivityBetweenDifferentNodes() {
verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy10Label,
ipvlanDeploy11Label,
RDSCoreConfig.IPVlanDeploy1TargetAddress)
Expect(RDSCoreConfig.IPVlanDeploy1TargetAddress != "" ||
RDSCoreConfig.IPVlanDeploy1TargetAddressIPv6 != "").To(BeTrue(),
"At least one target address (IPv4 or IPv6) must be configured for IPVlan Deploy1")

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy11Label,
ipvlanDeploy10Label,
RDSCoreConfig.IPVlanDeploy2TargetAddress)
addressesList := []string{RDSCoreConfig.IPVlanDeploy1TargetAddress,
RDSCoreConfig.IPVlanDeploy1TargetAddressIPv6}

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy10Label,
ipvlanDeploy11Label,
RDSCoreConfig.IPVlanDeploy1TargetAddressIPv6)
for _, targetAddress := range addressesList {
if targetAddress == "" {
klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Skipping empty address %q", targetAddress)

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy11Label,
ipvlanDeploy10Label,
RDSCoreConfig.IPVlanDeploy2TargetAddressIPv6)
continue
}

klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Access workload via %q", targetAddress)

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy10Label,
ipvlanDeploy11Label,
targetAddress)
}

Expect(RDSCoreConfig.IPVlanDeploy2TargetAddress != "" ||
RDSCoreConfig.IPVlanDeploy2TargetAddressIPv6 != "").To(BeTrue(),
"At least one target address (IPv4 or IPv6) must be configured for IPVlan Deploy2")

addressesList = []string{RDSCoreConfig.IPVlanDeploy2TargetAddress,
RDSCoreConfig.IPVlanDeploy2TargetAddressIPv6}

for _, targetAddress := range addressesList {
if targetAddress == "" {
klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Skipping empty address %q", targetAddress)

continue
}

klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Access workload via %q", targetAddress)

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy11Label,
ipvlanDeploy10Label,
targetAddress)
}
}

// VerifyIPVlanOnSameNode verifies connectivity between freshly deployed workloads that use
Expand Down Expand Up @@ -291,35 +311,56 @@ func VerifyIPVlanOnSameNode() {

// VerifyIPVLANConnectivityOnSameNode verifies connectivity between workloads that use IPVLAN net.
func VerifyIPVLANConnectivityOnSameNode() {
verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy20Label,
ipvlanDeploy21Label,
RDSCoreConfig.IPVlanDeploy3TargetAddress)
Expect(RDSCoreConfig.IPVlanDeploy3TargetAddress != "" ||
RDSCoreConfig.IPVlanDeploy3TargetAddressIPv6 != "").To(BeTrue(),
"At least one target address (IPv4 or IPv6) must be configured for IPVlan Deploy3")

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy21Label,
ipvlanDeploy20Label,
RDSCoreConfig.IPVlanDeploy4TargetAddress)
addressesList := []string{RDSCoreConfig.IPVlanDeploy3TargetAddress,
RDSCoreConfig.IPVlanDeploy3TargetAddressIPv6}

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy20Label,
ipvlanDeploy21Label,
RDSCoreConfig.IPVlanDeploy3TargetAddressIPv6)
for _, targetAddress := range addressesList {
if targetAddress == "" {
klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Skipping empty address %q", targetAddress)

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy21Label,
ipvlanDeploy20Label,
RDSCoreConfig.IPVlanDeploy4TargetAddressIPv6)
continue
}

klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Access workload via %q", targetAddress)

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy20Label,
ipvlanDeploy21Label,
targetAddress)
}

Expect(RDSCoreConfig.IPVlanDeploy4TargetAddress != "" ||
RDSCoreConfig.IPVlanDeploy4TargetAddressIPv6 != "").To(BeTrue(),
"At least one target address (IPv4 or IPv6) must be configured for IPVlan Deploy4")

addressesList = []string{RDSCoreConfig.IPVlanDeploy4TargetAddress,
RDSCoreConfig.IPVlanDeploy4TargetAddressIPv6}

for _, targetAddress := range addressesList {
if targetAddress == "" {
klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Skipping empty address %q", targetAddress)

continue
}

klog.V(rdscoreparams.RDSCoreLogLevel).Infof("Access workload via %q", targetAddress)

verifySRIOVConnectivity(
RDSCoreConfig.IPVlanNSOne,
RDSCoreConfig.IPVlanNSOne,
ipvlanDeploy21Label,
ipvlanDeploy20Label,
targetAddress)
}
}

// defineIPVlanDeployment creates an IPVLAN deployment builder with the specified configuration.
func defineIPVlanDeployment(dName, nsName, dLabels, netDefName, volName string,
dContainer *corev1.Container,
nodeSelector map[string]string) *deployment.Builder {
Expand Down