diff options
author | Doug Rabson <dfr@rabson.org> | 2022-08-19 11:30:39 +0100 |
---|---|---|
committer | Doug Rabson <dfr@rabson.org> | 2022-08-23 15:31:00 +0100 |
commit | 8f797ab66166ec99d0eff0bb0aed997bb1876c5d (patch) | |
tree | 689e0b6441b838f21e3a72077276000a557c1027 /libpod | |
parent | 498fe67ef7050f4cf7849a5c5545cbe5a9dd9cd8 (diff) | |
download | podman-8f797ab66166ec99d0eff0bb0aed997bb1876c5d.tar.gz podman-8f797ab66166ec99d0eff0bb0aed997bb1876c5d.tar.bz2 podman-8f797ab66166ec99d0eff0bb0aed997bb1876c5d.zip |
libpod: Add definition of containerPlatformState for FreeBSD
For FreeBSD, we need the name of the 'network jail' which is the parent
of all containers in a pod. Having a separate jail for the network
configuration also simplifies the implementation of CNI plugins so we
use this pattern for solitary containers as well as pods.
[NO NEW TESTS NEEDED]
Signed-off-by: Doug Rabson <dfr@rabson.org>
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/boltdb_state_freebsd.go | 17 | ||||
-rw-r--r-- | libpod/boltdb_state_unsupported.go | 4 | ||||
-rw-r--r-- | libpod/container_freebsd.go | 12 | ||||
-rw-r--r-- | libpod/container_unsupported.go | 4 |
4 files changed, 33 insertions, 4 deletions
diff --git a/libpod/boltdb_state_freebsd.go b/libpod/boltdb_state_freebsd.go new file mode 100644 index 000000000..d7f2736fc --- /dev/null +++ b/libpod/boltdb_state_freebsd.go @@ -0,0 +1,17 @@ +//go:build freebsd +// +build freebsd + +package libpod + +// replaceNetNS handle network namespace transitions after updating a +// container's state. +func replaceNetNS(netNSPath string, ctr *Container, newState *ContainerState) error { + // On FreeBSD, we just record the network jail's name in our state. + newState.NetworkJail = netNSPath + return nil +} + +// getNetNSPath retrieves the netns path to be stored in the database +func getNetNSPath(ctr *Container) string { + return ctr.state.NetworkJail +} diff --git a/libpod/boltdb_state_unsupported.go b/libpod/boltdb_state_unsupported.go index 97d59614e..9db1e3c4b 100644 --- a/libpod/boltdb_state_unsupported.go +++ b/libpod/boltdb_state_unsupported.go @@ -1,5 +1,5 @@ -//go:build !linux -// +build !linux +//go:build !linux && !freebsd +// +build !linux,!freebsd package libpod diff --git a/libpod/container_freebsd.go b/libpod/container_freebsd.go new file mode 100644 index 000000000..f9fbc4daa --- /dev/null +++ b/libpod/container_freebsd.go @@ -0,0 +1,12 @@ +//go:build freebsd +// +build freebsd + +package libpod + +type containerPlatformState struct { + // NetworkJail is the name of the container's network VNET + // jail. Will only be set if config.CreateNetNS is true, or + // the container was told to join another container's network + // namespace. + NetworkJail string `json:"-"` +} diff --git a/libpod/container_unsupported.go b/libpod/container_unsupported.go index 5a46c163c..16bf11622 100644 --- a/libpod/container_unsupported.go +++ b/libpod/container_unsupported.go @@ -1,5 +1,5 @@ -//go:build !linux -// +build !linux +//go:build !linux && !freebsd +// +build !linux,!freebsd package libpod |