Merge pull request #16688 from ygalblum/quadlet_network_file

Quadlet: add network support
This commit is contained in:
OpenShift Merge Robot
2022-12-19 14:16:53 -05:00
committed by GitHub
25 changed files with 427 additions and 38 deletions

View File

@@ -0,0 +1,7 @@
## assert-key-is Unit RequiresMountsFor "%t/containers"
## assert-key-is Service Type oneshot
## assert-key-is Service RemainAfterExit yes
## assert-key-is-regex Service ExecStart ".*/podman network create --ignore systemd-basic"
## assert-key-is Service SyslogIdentifier "%N"
[Network]

View File

@@ -0,0 +1,5 @@
## assert-podman-final-args systemd-disable-dns
## assert-podman-args "--disable-dns"
[Network]
DisableDNS=yes

View File

@@ -0,0 +1,5 @@
## assert-podman-final-args systemd-driver
## assert-podman-args "--driver=macvlan"
[Network]
Driver=macvlan

View File

@@ -0,0 +1,7 @@
## assert-failed
## assert-stderr-contains "cannot set more gateways than subnets"
[Network]
Subnet=192.168.1.0/24
Gateway=192.168.1.1
Gateway=192.168.2.1

View File

@@ -0,0 +1,6 @@
## assert-podman-final-args systemd-gateway
## assert-podman-args "--subnet=192.168.1.0/24" "--gateway=192.168.1.1"
[Network]
Subnet=192.168.1.0/24
Gateway=192.168.1.1

View File

@@ -0,0 +1,5 @@
## assert-failed
## assert-stderr-contains "cannot set gateway or range without subnet"
[Network]
Gateway=192.168.1.1

View File

@@ -0,0 +1,5 @@
## assert-podman-final-args systemd-internal
## assert-podman-args "--internal"
[Network]
Internal=yes

View File

@@ -0,0 +1,5 @@
## assert-podman-final-args systemd-ipam-driver
## assert-podman-args "--ipam-driver=dhcp"
[Network]
IPAMDriver=dhcp

View File

@@ -0,0 +1,5 @@
## assert-podman-final-args systemd-ipv6
## assert-podman-args "--ipv6"
[Network]
IPv6=yes

View File

@@ -0,0 +1,11 @@
## assert-podman-final-args systemd-label
## assert-podman-args "--label" "org.foo.Arg0=arg0"
## assert-podman-args "--label" "org.foo.Arg1=arg1"
## assert-podman-args "--label" "org.foo.Arg2=arg 2"
## assert-podman-args "--label" "org.foo.Arg3=arg3"
[Network]
Label=org.foo.Arg1=arg1 "org.foo.Arg2=arg 2" \
org.foo.Arg3=arg3
Label=org.foo.Arg0=arg0

View File

@@ -0,0 +1,5 @@
## assert-podman-args "--network=basic"
[Kube]
Yaml=deployment.yml
Network=basic

View File

@@ -0,0 +1,7 @@
## assert-podman-args "--network=systemd-basic"
## assert-key-is "Unit" "Requires" "systemd-basic-network.service"
## assert-key-is "Unit" "After" "systemd-basic-network.service"
[Container]
Image=localhost/imagename
Network=basic.network

View File

@@ -0,0 +1,8 @@
## assert-podman-args "--network=systemd-basic"
## assert-key-is "Unit" "Requires" "systemd-basic-network.service"
## assert-key-is "Unit" "After" "systemd-basic-network.service"
[Kube]
Yaml=deployment.yml
Network=basic.network

View File

@@ -0,0 +1,7 @@
## assert-podman-final-args systemd-options.multiple
## assert-podman-args "--opt" "mtu=1504"
## assert-podman-args "--opt" "isolate=true"
[Network]
Options=mtu=1504
Options=isolate=true

View File

@@ -0,0 +1,5 @@
## assert-podman-final-args systemd-options
## assert-podman-args "--opt" "mtu=1504"
[Network]
Options=mtu=1504

View File

@@ -0,0 +1,7 @@
## assert-failed
## assert-stderr-contains "cannot set more ranges than subnets"
[Network]
Subnet=192.168.1.0/24
IPRange=192.168.1.0/32
IPRange=192.168.1.127/32

View File

@@ -0,0 +1,6 @@
## assert-podman-final-args systemd-range
## assert-podman-args "--subnet=192.168.1.0/24" "--ip-range=192.168.1.0/32"
[Network]
Subnet=192.168.1.0/24
IPRange=192.168.1.0/32

View File

@@ -0,0 +1,5 @@
## assert-failed
## assert-stderr-contains "cannot set gateway or range without subnet"
[Network]
IPRange=192.168.1.0/32

View File

@@ -0,0 +1,11 @@
## assert-podman-final-args systemd-subnet-trio.multiple
## assert-podman-args "--subnet=192.168.1.0/24" "--gateway=192.168.1.1" "--ip-range=192.168.1.0/32"
## assert-podman-args "--subnet=192.168.2.0/24" "--gateway=192.168.2.1" "--ip-range=192.168.2.0/32"
[Network]
Subnet=192.168.1.0/24
Subnet=192.168.2.0/24
Gateway=192.168.1.1
Gateway=192.168.2.1
IPRange=192.168.1.0/32
IPRange=192.168.2.0/32

View File

@@ -0,0 +1,7 @@
## assert-podman-final-args systemd-subnet-trio
## assert-podman-args "--subnet=192.168.1.0/24" "--gateway=192.168.1.1" "--ip-range=192.168.1.0/32"
[Network]
Subnet=192.168.1.0/24
Gateway=192.168.1.1
IPRange=192.168.1.0/32

View File

@@ -0,0 +1,7 @@
## assert-podman-final-args systemd-subnets
## assert-podman-args "--subnet=192.168.0.0/24"
## assert-podman-args "--subnet=192.168.1.0/24"
[Network]
Subnet=192.168.0.0/24
Subnet=192.168.1.0/24

View File

@@ -30,8 +30,11 @@ func loadQuadletTestcase(path string) *quadletTestcase {
base := filepath.Base(path)
ext := filepath.Ext(base)
service := base[:len(base)-len(ext)]
if ext == ".volume" {
switch ext {
case ".volume":
service += "-volume"
case ".network":
service += "-network"
}
service += ".service"
@@ -360,6 +363,7 @@ var _ = Describe("quadlet system generator", func() {
Entry("label.container", "label.container"),
Entry("name.container", "name.container"),
Entry("network.container", "network.container"),
Entry("network.quadlet.container", "network.quadlet.container"),
Entry("noimage.container", "noimage.container"),
Entry("notify.container", "notify.container"),
Entry("other-sections.container", "other-sections.container"),
@@ -388,6 +392,27 @@ var _ = Describe("quadlet system generator", func() {
Entry("Kube - User Remap Manual", "remap-manual.kube"),
Entry("Kube - User Remap Auto", "remap-auto.kube"),
Entry("Kube - User Remap Auto with IDs", "remap-auto2.kube"),
Entry("Kube - Network", "network.kube"),
Entry("Kube - Quadlet Network", "network.quadlet.kube"),
Entry("Network - Basic", "basic.network"),
Entry("Network - Label", "label.network"),
Entry("Network - Disable DNS", "disable-dns.network"),
Entry("Network - Driver", "driver.network"),
Entry("Network - Subnets", "subnets.network"),
Entry("Network - Gateway", "gateway.network"),
Entry("Network - Gateway without Subnet", "gateway.no-subnet.network"),
Entry("Network - Gateway not enough Subnet", "gateway.less-subnet.network"),
Entry("Network - Range", "range.network"),
Entry("Network - Range without Subnet", "range.no-subnet.network"),
Entry("Network - Range not enough Subnet", "range.less-subnet.network"),
Entry("Network - subnet, gateway and range", "subnet-trio.network"),
Entry("Network - multiple subnet, gateway and range", "subnet-trio.multiple.network"),
Entry("Network - Internal network", "internal.network"),
Entry("Network - IPAM Driver", "ipam-driver.network"),
Entry("Network - IPv6", "ipv6.network"),
Entry("Network - Options", "options.network"),
Entry("Network - Multiple Options", "options.multiple.network"),
)
})