Merge pull request #16747 from Luap99/ipvlan-parent

network create: support "-o parent=XXX" for ipvlan
This commit is contained in:
OpenShift Merge Robot 2022-12-06 10:54:11 -05:00 committed by GitHub
commit 7cdf37624e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 1 deletions

View file

@ -125,7 +125,7 @@ func networkCreate(cmd *cobra.Command, args []string) error {
logrus.Warn("The --macvlan option is deprecated, use `--driver macvlan --opt parent=<device>` instead")
network.Driver = types.MacVLANNetworkDriver
network.NetworkInterface = networkCreateOptions.MacVLAN
} else if networkCreateOptions.Driver == types.MacVLANNetworkDriver {
} else if networkCreateOptions.Driver == types.MacVLANNetworkDriver || networkCreateOptions.Driver == types.IPVLANNetworkDriver {
// new -d macvlan --opt parent=... syntax
if parent, ok := network.Options["parent"]; ok {
network.NetworkInterface = parent

View file

@ -658,6 +658,35 @@ var _ = Describe("Podman network", func() {
Expect(nc).Should(Exit(0))
})
It("podman network create/remove ipvlan as driver (-d) with device name", func() {
// Netavark currently does not support ipvlan
SkipIfNetavark(podmanTest)
net := "ipvlan" + stringid.GenerateRandomID()
nc := podmanTest.Podman([]string{"network", "create", "-d", "ipvlan", "-o", "parent=lo", net})
nc.WaitWithDefaultTimeout()
defer podmanTest.removeNetwork(net)
Expect(nc).Should(Exit(0))
inspect := podmanTest.Podman([]string{"network", "inspect", net})
inspect.WaitWithDefaultTimeout()
Expect(inspect).Should(Exit(0))
var results []types.Network
err := json.Unmarshal([]byte(inspect.OutputToString()), &results)
Expect(err).ToNot(HaveOccurred())
Expect(results).To(HaveLen(1))
result := results[0]
Expect(result).To(HaveField("Driver", "ipvlan"))
Expect(result).To(HaveField("NetworkInterface", "lo"))
Expect(result.IPAMOptions).To(HaveKeyWithValue("driver", "dhcp"))
Expect(result.Subnets).To(HaveLen(0))
nc = podmanTest.Podman([]string{"network", "rm", net})
nc.WaitWithDefaultTimeout()
Expect(nc).Should(Exit(0))
})
It("podman network exists", func() {
net := "net" + stringid.GenerateRandomID()
session := podmanTest.Podman([]string{"network", "create", net})