mirror of
https://github.com/containers/podman.git
synced 2025-10-20 12:43:58 +08:00
Add ability to set system wide options for slirp4netns
Wire in containers.conf options for slirp Signed-off-by: Ashley Cui <acui@redhat.com>
This commit is contained in:
@ -245,7 +245,7 @@ func (r *Runtime) setupRootlessNetNS(ctr *Container) error {
|
|||||||
// setupSlirp4netns can be called in rootful as well as in rootless
|
// setupSlirp4netns can be called in rootful as well as in rootless
|
||||||
func (r *Runtime) setupSlirp4netns(ctr *Container) error {
|
func (r *Runtime) setupSlirp4netns(ctr *Container) error {
|
||||||
path := r.config.Engine.NetworkCmdPath
|
path := r.config.Engine.NetworkCmdPath
|
||||||
|
slirpOptions := r.config.Engine.NetworkCmdOptions
|
||||||
if path == "" {
|
if path == "" {
|
||||||
var err error
|
var err error
|
||||||
path, err = exec.LookPath("slirp4netns")
|
path, err = exec.LookPath("slirp4netns")
|
||||||
@ -273,7 +273,9 @@ func (r *Runtime) setupSlirp4netns(ctr *Container) error {
|
|||||||
outboundAddr6 := ""
|
outboundAddr6 := ""
|
||||||
|
|
||||||
if ctr.config.NetworkOptions != nil {
|
if ctr.config.NetworkOptions != nil {
|
||||||
slirpOptions := ctr.config.NetworkOptions["slirp4netns"]
|
slirpOptions = append(slirpOptions, ctr.config.NetworkOptions["slirp4netns"]...)
|
||||||
|
}
|
||||||
|
|
||||||
for _, o := range slirpOptions {
|
for _, o := range slirpOptions {
|
||||||
parts := strings.SplitN(o, "=", 2)
|
parts := strings.SplitN(o, "=", 2)
|
||||||
if len(parts) < 2 {
|
if len(parts) < 2 {
|
||||||
@ -336,7 +338,6 @@ func (r *Runtime) setupSlirp4netns(ctr *Container) error {
|
|||||||
return errors.Errorf("unknown option for slirp4netns: %q", o)
|
return errors.Errorf("unknown option for slirp4netns: %q", o)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
cmdArgs := []string{}
|
cmdArgs := []string{}
|
||||||
slirpFeatures, err := checkSlirpFlags(path)
|
slirpFeatures, err := checkSlirpFlags(path)
|
||||||
|
@ -52,3 +52,7 @@ dns_options=[ "debug", ]
|
|||||||
tz = "Pacific/Honolulu"
|
tz = "Pacific/Honolulu"
|
||||||
|
|
||||||
umask = "0002"
|
umask = "0002"
|
||||||
|
|
||||||
|
[engine]
|
||||||
|
|
||||||
|
network_cmd_options=["allow_host_loopback=true"]
|
||||||
|
@ -258,6 +258,12 @@ var _ = Describe("Podman run", func() {
|
|||||||
Expect(session.OutputToString()).To(Equal("0002"))
|
Expect(session.OutputToString()).To(Equal("0002"))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
It("podman set network cmd options slirp options to allow host loopback", func() {
|
||||||
|
session := podmanTest.Podman([]string{"run", "--network", "slirp4netns", ALPINE, "ping", "-c1", "10.0.2.2"})
|
||||||
|
session.Wait(30)
|
||||||
|
Expect(session.ExitCode()).To(Equal(0))
|
||||||
|
})
|
||||||
|
|
||||||
It("podman-remote test localcontainers.conf versus remote containers.conf", func() {
|
It("podman-remote test localcontainers.conf versus remote containers.conf", func() {
|
||||||
if !IsRemote() {
|
if !IsRemote() {
|
||||||
Skip("this test is only for remote")
|
Skip("this test is only for remote")
|
||||||
@ -311,4 +317,5 @@ var _ = Describe("Podman run", func() {
|
|||||||
Expect(session.ExitCode()).To(Equal(0))
|
Expect(session.ExitCode()).To(Equal(0))
|
||||||
Expect(session.OutputToString()).To(Equal("0022"))
|
Expect(session.OutputToString()).To(Equal("0022"))
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
Reference in New Issue
Block a user