mirror of
https://github.com/containers/podman.git
synced 2025-12-11 01:11:30 +08:00
By using main instead of the v1.1 branch, we drop an unnecessary dependency on cilium/ebpf, saving ~1mb of binary size. Signed-off-by: Matt Heon <mheon@redhat.com>
67 lines
2.0 KiB
Go
67 lines
2.0 KiB
Go
package configs
|
|
|
|
import "golang.org/x/sys/unix"
|
|
|
|
type MountIDMapping struct {
|
|
// Recursive indicates if the mapping needs to be recursive.
|
|
Recursive bool `json:"recursive"`
|
|
|
|
// UserNSPath is a path to a user namespace that indicates the necessary
|
|
// id-mappings for MOUNT_ATTR_IDMAP. If set to non-"", UIDMappings and
|
|
// GIDMappings must be set to nil.
|
|
UserNSPath string `json:"userns_path,omitempty"`
|
|
|
|
// UIDMappings is the uid mapping set for this mount, to be used with
|
|
// MOUNT_ATTR_IDMAP.
|
|
UIDMappings []IDMap `json:"uid_mappings,omitempty"`
|
|
|
|
// GIDMappings is the gid mapping set for this mount, to be used with
|
|
// MOUNT_ATTR_IDMAP.
|
|
GIDMappings []IDMap `json:"gid_mappings,omitempty"`
|
|
}
|
|
|
|
type Mount struct {
|
|
// Source path for the mount.
|
|
Source string `json:"source"`
|
|
|
|
// Destination path for the mount inside the container.
|
|
Destination string `json:"destination"`
|
|
|
|
// Device the mount is for.
|
|
Device string `json:"device"`
|
|
|
|
// Mount flags.
|
|
Flags int `json:"flags"`
|
|
|
|
// Mount flags that were explicitly cleared in the configuration (meaning
|
|
// the user explicitly requested that these flags *not* be set).
|
|
ClearedFlags int `json:"cleared_flags"`
|
|
|
|
// Propagation Flags
|
|
PropagationFlags []int `json:"propagation_flags"`
|
|
|
|
// Mount data applied to the mount.
|
|
Data string `json:"data"`
|
|
|
|
// Relabel source if set, "z" indicates shared, "Z" indicates unshared.
|
|
Relabel string `json:"relabel"`
|
|
|
|
// RecAttr represents mount properties to be applied recursively (AT_RECURSIVE), see mount_setattr(2).
|
|
RecAttr *unix.MountAttr `json:"rec_attr"`
|
|
|
|
// Extensions are additional flags that are specific to runc.
|
|
Extensions int `json:"extensions"`
|
|
|
|
// Mapping is the MOUNT_ATTR_IDMAP configuration for the mount. If non-nil,
|
|
// the mount is configured to use MOUNT_ATTR_IDMAP-style id mappings.
|
|
IDMapping *MountIDMapping `json:"id_mapping,omitempty"`
|
|
}
|
|
|
|
func (m *Mount) IsBind() bool {
|
|
return m.Flags&unix.MS_BIND != 0
|
|
}
|
|
|
|
func (m *Mount) IsIDMapped() bool {
|
|
return m.IDMapping != nil
|
|
}
|