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 }