Skip to content

Commit 3dea4f5

Browse files
committed
e2e: add RuntimeArgs to container infra provider API
Signed-off-by: Jaime Caamaño Ruiz <[email protected]>
1 parent 90e56b9 commit 3dea4f5

File tree

13 files changed

+43
-41
lines changed

13 files changed

+43
-41
lines changed

test/e2e/e2e.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -712,7 +712,7 @@ var _ = ginkgo.Describe("e2e control plane", func() {
712712
}
713713
secondaryExternalContainerPort := infraprovider.Get().GetExternalContainerPort()
714714
secondaryExternalContainerSpec := infraapi.ExternalContainer{Name: "e2e-ovn-k", Image: images.AgnHost(),
715-
Network: secondaryProviderNetwork, Args: getAgnHostHTTPPortBindCMDArgs(secondaryExternalContainerPort), ExtPort: secondaryExternalContainerPort}
715+
Network: secondaryProviderNetwork, CmdArgs: getAgnHostHTTPPortBindCMDArgs(secondaryExternalContainerPort), ExtPort: secondaryExternalContainerPort}
716716
ginkgo.By("creating container on secondary provider network")
717717
secondaryExternalContainer, err = providerCtx.CreateExternalContainer(secondaryExternalContainerSpec)
718718
framework.ExpectNoError(err, "failed to create external container")
@@ -1275,7 +1275,7 @@ var _ = ginkgo.Describe("e2e ingress traffic validation", func() {
12751275
framework.ExpectNoError(err, "failed to get primary network")
12761276
externalContainerPort := infraprovider.Get().GetExternalContainerPort()
12771277
externalContainer = infraapi.ExternalContainer{Name: "e2e-ingress", Image: images.AgnHost(), Network: primaryProviderNetwork,
1278-
Args: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
1278+
CmdArgs: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
12791279
externalContainer, err = providerCtx.CreateExternalContainer(externalContainer)
12801280
framework.ExpectNoError(err, "failed to create external service", externalContainer.String())
12811281
})
@@ -1672,7 +1672,7 @@ var _ = ginkgo.Describe("e2e ingress traffic validation", func() {
16721672
framework.ExpectNoError(err, "failed to get primary network")
16731673
externalContainerPort := infraprovider.Get().GetExternalContainerPort()
16741674
externalContainer = infraapi.ExternalContainer{Name: "e2e-ingress-add-more", Image: images.AgnHost(), Network: primaryProviderNetwork,
1675-
Args: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
1675+
CmdArgs: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
16761676
externalContainer, err = providerCtx.CreateExternalContainer(externalContainer)
16771677
framework.ExpectNoError(err, "external container %s must be created successfully", externalContainer.Name)
16781678

@@ -1834,7 +1834,7 @@ var _ = ginkgo.Describe("e2e ingress to host-networked pods traffic validation",
18341834
framework.ExpectNoError(err, "failed to get primary network")
18351835
externalContainerPort := infraprovider.Get().GetExternalContainerPort()
18361836
externalContainer = infraapi.ExternalContainer{Name: clientContainerName, Image: images.AgnHost(), Network: primaryProviderNetwork,
1837-
Args: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
1837+
CmdArgs: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
18381838
externalContainer, err = providerCtx.CreateExternalContainer(externalContainer)
18391839
framework.ExpectNoError(err, "external container %s must be created successfully", externalContainer.Name)
18401840
})
@@ -1943,7 +1943,7 @@ var _ = ginkgo.Describe("e2e br-int flow monitoring export validation", func() {
19431943
primaryProviderNetwork, err := infraprovider.Get().PrimaryNetwork()
19441944
framework.ExpectNoError(err, "failed to get primary network")
19451945
collectorExternalContainer := infraapi.ExternalContainer{Name: getContainerName(collectorPort), Image: "cloudflare/goflow",
1946-
Network: primaryProviderNetwork, Args: []string{"-kafka=false"}, ExtPort: collectorPort}
1946+
Network: primaryProviderNetwork, CmdArgs: []string{"-kafka=false"}, ExtPort: collectorPort}
19471947
collectorExternalContainer, err = providerCtx.CreateExternalContainer(collectorExternalContainer)
19481948
if err != nil {
19491949
framework.Failf("failed to start flow collector container %s: %v", getContainerName(collectorPort), err)

test/e2e/egress_firewall.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ var _ = ginkgo.Describe("e2e egress firewall policy validation", feature.EgressF
197197
Name: externalContainerName1,
198198
Image: images.AgnHost(),
199199
Network: primaryProviderNetwork,
200-
Args: []string{"netexec", fmt.Sprintf("--http-port=%d", externalContainer1Port)},
200+
CmdArgs: []string{"netexec", fmt.Sprintf("--http-port=%d", externalContainer1Port)},
201201
ExtPort: externalContainer1Port,
202202
}
203203
externalContainer1, err = providerCtx.CreateExternalContainer(externalContainer1Spec)
@@ -210,7 +210,7 @@ var _ = ginkgo.Describe("e2e egress firewall policy validation", feature.EgressF
210210
Name: externalContainerName2,
211211
Image: images.AgnHost(),
212212
Network: primaryProviderNetwork,
213-
Args: []string{"netexec", fmt.Sprintf("--http-port=%d", externalContainer2Port)},
213+
CmdArgs: []string{"netexec", fmt.Sprintf("--http-port=%d", externalContainer2Port)},
214214
ExtPort: externalContainer2Port,
215215
}
216216
externalContainer2, err = providerCtx.CreateExternalContainer(externalContainer2Spec)

test/e2e/egress_services.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ var _ = ginkgo.Describe("EgressService", feature.EgressService, func() {
8585
framework.ExpectNoError(err, "failed to get primary provider network")
8686
externalContainer = infraapi.ExternalContainer{Name: externalContainerName, Image: images.AgnHost(),
8787
Network: primaryProviderNetwork, ExtPort: 8080,
88-
Args: getAgnHostHTTPPortBindCMDArgs(8080)}
88+
CmdArgs: getAgnHostHTTPPortBindCMDArgs(8080)}
8989
externalContainer, err = providerCtx.CreateExternalContainer(externalContainer)
9090
framework.ExpectNoError(err, "failed to create external container")
9191
})
@@ -1239,7 +1239,7 @@ metadata:
12391239
ginkgo.By(fmt.Sprintf("Creating container %s", net.containerName))
12401240
// Setting the --hostname here is important since later we poke the container's /hostname endpoint
12411241
extContainerSecondaryNet := infraapi.ExternalContainer{Name: net.containerName, Image: images.AgnHost(), Network: network,
1242-
Args: []string{"netexec", "--http-port=8080"}, ExtPort: 8080}
1242+
CmdArgs: []string{"netexec", "--http-port=8080"}, ExtPort: 8080}
12431243
extContainerSecondaryNet, err = providerCtx.CreateExternalContainer(extContainerSecondaryNet)
12441244
ginkgo.By(fmt.Sprintf("Adding a listener for the shared IPv4 %s on %s", sharedIPv4, net.containerName))
12451245
out, err := infraprovider.Get().ExecExternalContainerCommand(extContainerSecondaryNet, []string{"ip", "address", "add", sharedIPv4 + "/32", "dev", "lo"})

test/e2e/egressip.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ func isSupportedAgnhostForEIP(externalContainer infraapi.ExternalContainer) bool
219219
if externalContainer.Image != images.AgnHost() {
220220
return false
221221
}
222-
if !util.SliceHasStringItem(externalContainer.Args, "netexec") {
222+
if !util.SliceHasStringItem(externalContainer.CmdArgs, "netexec") {
223223
return false
224224
}
225225
return true
@@ -754,13 +754,13 @@ var _ = ginkgo.DescribeTableSubtree("e2e egress IP validation", feature.EgressIP
754754
// attach containers to the primary network
755755
primaryTargetExternalContainerPort := infraprovider.Get().GetExternalContainerPort()
756756
primaryTargetExternalContainerSpec := infraapi.ExternalContainer{Name: targetNodeName, Image: images.AgnHost(),
757-
Network: primaryProviderNetwork, Args: getAgnHostHTTPPortBindCMDArgs(primaryTargetExternalContainerPort), ExtPort: primaryTargetExternalContainerPort}
757+
Network: primaryProviderNetwork, CmdArgs: getAgnHostHTTPPortBindCMDArgs(primaryTargetExternalContainerPort), ExtPort: primaryTargetExternalContainerPort}
758758
primaryTargetExternalContainer, err = providerCtx.CreateExternalContainer(primaryTargetExternalContainerSpec)
759759
framework.ExpectNoError(err, "failed to create external target container on primary network", primaryTargetExternalContainerSpec.String())
760760

761761
primaryDeniedExternalContainerPort := infraprovider.Get().GetExternalContainerPort()
762762
primaryDeniedExternalContainerSpec := infraapi.ExternalContainer{Name: deniedTargetNodeName, Image: images.AgnHost(),
763-
Network: primaryProviderNetwork, Args: getAgnHostHTTPPortBindCMDArgs(primaryDeniedExternalContainerPort), ExtPort: primaryDeniedExternalContainerPort}
763+
Network: primaryProviderNetwork, CmdArgs: getAgnHostHTTPPortBindCMDArgs(primaryDeniedExternalContainerPort), ExtPort: primaryDeniedExternalContainerPort}
764764
primaryDeniedExternalContainer, err = providerCtx.CreateExternalContainer(primaryDeniedExternalContainerSpec)
765765
framework.ExpectNoError(err, "failed to create external denied container on primary network", primaryDeniedExternalContainer.String())
766766

@@ -791,7 +791,7 @@ var _ = ginkgo.DescribeTableSubtree("e2e egress IP validation", feature.EgressIP
791791
Name: targetSecondaryNodeName,
792792
Image: images.AgnHost(),
793793
Network: secondaryProviderNetwork,
794-
Args: getAgnHostHTTPPortBindCMDArgs(secondaryTargetExternalContainerPort),
794+
CmdArgs: getAgnHostHTTPPortBindCMDArgs(secondaryTargetExternalContainerPort),
795795
ExtPort: secondaryTargetExternalContainerPort,
796796
}
797797
secondaryTargetExternalContainer, err = providerCtx.CreateExternalContainer(secondaryTargetExternalContainerSpec)
@@ -2125,7 +2125,7 @@ spec:
21252125
providerPrimaryNetwork, err := infraprovider.Get().PrimaryNetwork()
21262126
framework.ExpectNoError(err, "failed to get providers primary network")
21272127
externalContainerPrimary := infraapi.ExternalContainer{Name: "external-container-for-egressip-mtu-test", Image: images.AgnHost(),
2128-
Network: providerPrimaryNetwork, Args: []string{"pause"}, ExtPort: externalContainerPrimaryPort}
2128+
Network: providerPrimaryNetwork, CmdArgs: []string{"pause"}, ExtPort: externalContainerPrimaryPort}
21292129
externalContainerPrimary, err = providerCtx.CreateExternalContainer(externalContainerPrimary)
21302130
framework.ExpectNoError(err, "failed to create external container: %s", externalContainerPrimary.String())
21312131

test/e2e/external_gateways.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ var _ = ginkgo.Describe("External Gateway", feature.ExternalGateway, func() {
144144
}
145145
externalContainerPort := infraprovider.Get().GetExternalContainerPort()
146146
externalContainer := infraapi.ExternalContainer{Name: getContainerName(gwContainerNameTemplate, externalContainerPort),
147-
Image: images.AgnHost(), Network: network, ExtPort: externalContainerPort, Args: []string{"pause"}}
147+
Image: images.AgnHost(), Network: network, ExtPort: externalContainerPort, CmdArgs: []string{"pause"}}
148148
externalContainer, err = providerCtx.CreateExternalContainer(externalContainer)
149149
framework.ExpectNoError(err, "failed to start external gateway test container")
150150
if network.Name() == "host" {
@@ -238,7 +238,7 @@ var _ = ginkgo.Describe("External Gateway", feature.ExternalGateway, func() {
238238
// start the container that will act as a new external gateway that the tests will be updated to use
239239
externalContainer2Port := infraprovider.Get().GetExternalContainerPort()
240240
externalContainer2 := infraapi.ExternalContainer{Name: getContainerName(gwContainerNameTemplate2, externalContainerPort),
241-
Image: images.AgnHost(), Network: network, ExtPort: externalContainer2Port, Args: []string{"pause"}}
241+
Image: images.AgnHost(), Network: network, ExtPort: externalContainer2Port, CmdArgs: []string{"pause"}}
242242
externalContainer2, err = providerCtx.CreateExternalContainer(externalContainer2)
243243
framework.ExpectNoError(err, "failed to start external gateway test container %s", getContainerName(gwContainerNameTemplate2, externalContainerPort))
244244
if network.Name() == "host" {
@@ -365,7 +365,7 @@ var _ = ginkgo.Describe("External Gateway", feature.ExternalGateway, func() {
365365
}
366366
externalContainerPort := infraprovider.Get().GetExternalContainerPort()
367367
externalContainer := infraapi.ExternalContainer{Name: getContainerName(gwContainerTemplate, externalContainerPort), Image: images.AgnHost(), Network: network,
368-
Args: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
368+
CmdArgs: getAgnHostHTTPPortBindCMDArgs(externalContainerPort), ExtPort: externalContainerPort}
369369
externalContainer, err = providerCtx.CreateExternalContainer(externalContainer)
370370
framework.ExpectNoError(err, "failed to start external gateway test container %s", getContainerName(gwContainerTemplate, externalContainerPort))
371371
if network.Name() == "host" {
@@ -2922,9 +2922,9 @@ func setupGatewayContainers(f *framework.Framework, providerCtx infraapi.Context
29222922

29232923
var err error
29242924
externalContainer1 := infraapi.ExternalContainer{Name: getContainerName(container1Template, uint16(gwTCPPort)),
2925-
Image: externalContainerImage, Network: network, Args: []string{}, ExtPort: uint16(gwTCPPort)}
2925+
Image: externalContainerImage, Network: network, CmdArgs: []string{}, ExtPort: uint16(gwTCPPort)}
29262926
externalContainer2 := infraapi.ExternalContainer{Name: getContainerName(container2Template, uint16(gwTCPPort)),
2927-
Image: externalContainerImage, Network: network, Args: []string{}, ExtPort: uint16(gwTCPPort)}
2927+
Image: externalContainerImage, Network: network, CmdArgs: []string{}, ExtPort: uint16(gwTCPPort)}
29282928

29292929
gwContainers := []infraapi.ExternalContainer{externalContainer1, externalContainer2}
29302930
addressesv4 := gatewayTestIPs{targetIPs: make([]string, 0)}
@@ -3175,12 +3175,12 @@ func setupGatewayContainersForConntrackTest(f *framework.Framework, providerCtx
31753175
addressesv6 := gatewayTestIPs{gatewayIPs: make([]string, 2)}
31763176
ginkgo.By("Creating the gateway containers for the UDP test")
31773177
gwExternalContainer1 := infraapi.ExternalContainer{Name: getContainerName(gwContainer1Template, 12345),
3178-
Image: images.IPerf3(), Network: network, Args: []string{}, ExtPort: 12345}
3178+
Image: images.IPerf3(), Network: network, CmdArgs: []string{}, ExtPort: 12345}
31793179
gwExternalContainer1, err = providerCtx.CreateExternalContainer(gwExternalContainer1)
31803180
framework.ExpectNoError(err, "failed to create external container (%s)", gwExternalContainer1)
31813181

31823182
gwExternalContainer2 := infraapi.ExternalContainer{Name: getContainerName(gwContainer2Template, 12345),
3183-
Image: images.IPerf3(), Network: network, Args: []string{}, ExtPort: 12345}
3183+
Image: images.IPerf3(), Network: network, CmdArgs: []string{}, ExtPort: 12345}
31843184
gwExternalContainer2, err = providerCtx.CreateExternalContainer(gwExternalContainer2)
31853185
framework.ExpectNoError(err, "failed to create external container (%s)", gwExternalContainer2)
31863186
if network.Name() == "host" {

test/e2e/infraprovider/api/api.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,15 @@ func (n NetworkInterface) GetMAC() string {
182182
}
183183

184184
type ExternalContainer struct {
185-
Name string
186-
Image string
187-
Network Network
188-
Entrypoint string
189-
Args []string
190-
ExtPort uint16
191-
IPv4 string
192-
IPv6 string
185+
Name string
186+
Image string
187+
Network Network
188+
Entrypoint string
189+
CmdArgs []string
190+
ExtPort uint16
191+
IPv4 string
192+
IPv6 string
193+
RuntimeArgs []string
193194
}
194195

195196
func (ec ExternalContainer) GetName() string {
@@ -227,7 +228,7 @@ func (ec ExternalContainer) IsIPv6() bool {
227228
}
228229

229230
func (ec ExternalContainer) String() string {
230-
str := fmt.Sprintf("Name: %q, Image: %q, Network: %q, Command: %q", ec.Name, ec.Image, ec.Network, strings.Join(ec.Args, " "))
231+
str := fmt.Sprintf("Name: %q, Image: %q, Network: %q, RuntimeArgs: %q, Command: %q", ec.Name, ec.Image, ec.Network, strings.Join(ec.RuntimeArgs, " "), strings.Join(ec.CmdArgs, " "))
231232
if ec.IsIPv4() {
232233
str = fmt.Sprintf("%s, IPv4 address: %q", str, ec.GetIPv4())
233234
}

test/e2e/infraprovider/providers/kind/kind.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,10 @@ func (c *contextKind) createExternalContainer(container api.ExternalContainer) (
150150
if container.Entrypoint != "" {
151151
cmd = append(cmd, "--entrypoint", container.Entrypoint)
152152
}
153+
cmd = append(cmd, container.RuntimeArgs...)
153154
cmd = append(cmd, container.Image)
154-
if len(container.Args) > 0 {
155-
cmd = append(cmd, container.Args...)
155+
if len(container.CmdArgs) > 0 {
156+
cmd = append(cmd, container.CmdArgs...)
156157
} else {
157158
if images.AgnHost() == container.Image {
158159
cmd = append(cmd, "pause")

test/e2e/kubevirt.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1762,7 +1762,7 @@ write_files:
17621762
Name: externalContainerName,
17631763
Image: images.IPerf3(),
17641764
Network: providerNetwork,
1765-
Args: []string{"sleep infinity"},
1765+
CmdArgs: []string{"sleep infinity"},
17661766
ExtPort: externalContainerPort,
17671767
}
17681768
externalContainer, err = providerCtx.CreateExternalContainer(externalContainerSpec)

test/e2e/multihoming.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -941,7 +941,7 @@ var _ = Describe("Multi Homing", feature.MultiHoming, func() {
941941
Image: images.AgnHost(),
942942
Network: underlayNetwork,
943943
Entrypoint: "bash",
944-
Args: []string{"-c", fmt.Sprintf("ip a add %s/24 dev eth0 && ./agnhost netexec --http-port=%d", underlayServiceIP, servicePort)},
944+
CmdArgs: []string{"-c", fmt.Sprintf("ip a add %s/24 dev eth0 && ./agnhost netexec --http-port=%d", underlayServiceIP, servicePort)},
945945
ExtPort: servicePort,
946946
}
947947
_, err = providerCtx.CreateExternalContainer(serviceContainerSpec)
@@ -1310,7 +1310,7 @@ var _ = Describe("Multi Homing", feature.MultiHoming, func() {
13101310
Network: underlayNetwork,
13111311
Entrypoint: "bash",
13121312
ExtPort: servicePort,
1313-
Args: []string{"-c", fmt.Sprintf(`
1313+
CmdArgs: []string{"-c", fmt.Sprintf(`
13141314
ip link add link %[1]s name %[2]s type vlan id %[3]d
13151315
ip link set dev %[2]s up
13161316
ip a add %[4]s/24 dev %[2]s

test/e2e/network_segmentation.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1478,7 +1478,7 @@ spec:
14781478
Name: externalContainerName,
14791479
Image: images.AgnHost(),
14801480
Network: providerPrimaryNetwork,
1481-
Args: httpServerContainerCmd(uint16(externalContainerPort)),
1481+
CmdArgs: httpServerContainerCmd(uint16(externalContainerPort)),
14821482
ExtPort: externalContainerPort,
14831483
}
14841484
externalContainer, err = providerCtx.CreateExternalContainer(externalContainerSpec)

0 commit comments

Comments
 (0)