summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2021-12-13 20:36:25 +0100
committerPaul Holzinger <pholzing@redhat.com>2021-12-14 15:23:40 +0100
commitef325bc8c4824537e4bfb21aa7e6114a6e5a8c09 (patch)
tree9c74760b6d93f83534e8f0deb400f0af2c579474
parent094e1d70dee1f5cc04987169615898bd6a4af499 (diff)
downloadpodman-ef325bc8c4824537e4bfb21aa7e6114a6e5a8c09.tar.gz
podman-ef325bc8c4824537e4bfb21aa7e6114a6e5a8c09.tar.bz2
podman-ef325bc8c4824537e4bfb21aa7e6114a6e5a8c09.zip
specgen: check that networks are only set with bridge
Because we cannot reqad the networking mode in the frontent because we should always use the server default we have to parse the mac and ip address to the server via a default network. Now when the server reads the default nsmode it has to reject the provided networks when the mode is not set to bridge. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
-rw-r--r--pkg/specgen/container_validate.go5
-rw-r--r--pkg/specgen/pod_validate.go4
2 files changed, 6 insertions, 3 deletions
diff --git a/pkg/specgen/container_validate.go b/pkg/specgen/container_validate.go
index cae231f0e..d06a047c1 100644
--- a/pkg/specgen/container_validate.go
+++ b/pkg/specgen/container_validate.go
@@ -189,5 +189,10 @@ func (s *SpecGenerator) Validate() error {
if err := validateNetNS(&s.NetNS); err != nil {
return err
}
+ if s.NetNS.NSMode != Bridge && len(s.Networks) > 0 {
+ // Note that we also get the ip and mac in the networks map
+ return errors.New("Networks and static ip/mac address can only be used with Bridge mode networking")
+ }
+
return nil
}
diff --git a/pkg/specgen/pod_validate.go b/pkg/specgen/pod_validate.go
index 224a5b12d..c5a66189c 100644
--- a/pkg/specgen/pod_validate.go
+++ b/pkg/specgen/pod_validate.go
@@ -67,10 +67,8 @@ func (p *PodSpecGenerator) Validate() error {
if len(p.PortMappings) > 0 {
return errors.New("PortMappings can only be used with Bridge or slirp4netns networking")
}
- if len(p.Networks) > 0 {
- return errors.New("Networks can only be used with Bridge mode networking")
- }
}
+
if p.NoManageResolvConf {
if len(p.DNSServer) > 0 {
return exclusivePodOptions("NoManageResolvConf", "DNSServer")