libpod: Move rootless network setup details to container_internal_linux.go
This removes a use of state.NetNS which is a linux-specific field defined in container_linux.go from the generic container_internal.go, allowing that to build on non-linux platforms. [NO NEW TESTS NEEDED] Signed-off-by: Doug Rabson <dfr@rabson.org>
This commit is contained in:
parent
1b88927c2c
commit
5d7778411a
|
@ -293,20 +293,8 @@ func (c *Container) handleRestartPolicy(ctx context.Context) (_ bool, retErr err
|
||||||
}
|
}
|
||||||
|
|
||||||
// set up slirp4netns again because slirp4netns will die when conmon exits
|
// set up slirp4netns again because slirp4netns will die when conmon exits
|
||||||
if c.config.NetMode.IsSlirp4netns() {
|
if err := c.setupRootlessNetwork(); err != nil {
|
||||||
err := c.runtime.setupSlirp4netns(c, c.state.NetNS)
|
return false, err
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// set up rootlesskit port forwarder again since it dies when conmon exits
|
|
||||||
// we use rootlesskit port forwarder only as rootless and when bridge network is used
|
|
||||||
if rootless.IsRootless() && c.config.NetMode.IsBridge() && len(c.config.PortMappings) > 0 {
|
|
||||||
err := c.runtime.setupRootlessPortMappingViaRLK(c, c.state.NetNS.Path(), c.state.NetworkStatus)
|
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.state.State == define.ContainerStateStopped {
|
if c.state.State == define.ContainerStateStopped {
|
||||||
|
|
|
@ -3228,3 +3228,24 @@ func (c *Container) ChangeHostPathOwnership(src string, recurse bool, uid, gid i
|
||||||
}
|
}
|
||||||
return chown.ChangeHostPathOwnership(src, recurse, uid, gid)
|
return chown.ChangeHostPathOwnership(src, recurse, uid, gid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the container is rootless, set up the slirp4netns network
|
||||||
|
func (c *Container) setupRootlessNetwork() error {
|
||||||
|
// set up slirp4netns again because slirp4netns will die when conmon exits
|
||||||
|
if c.config.NetMode.IsSlirp4netns() {
|
||||||
|
err := c.runtime.setupSlirp4netns(c, c.state.NetNS)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// set up rootlesskit port forwarder again since it dies when conmon exits
|
||||||
|
// we use rootlesskit port forwarder only as rootless and when bridge network is used
|
||||||
|
if rootless.IsRootless() && c.config.NetMode.IsBridge() && len(c.config.PortMappings) > 0 {
|
||||||
|
err := c.runtime.setupRootlessPortMappingViaRLK(c, c.state.NetNS.Path(), c.state.NetworkStatus)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue