mirror of
https://github.com/containers/podman.git
synced 2025-08-06 03:19:52 +08:00
Drop LocalVolumes from our the database
We were never using it. It's actually a potentially quite sizable field (very expensive to decode an array of structs!). Removing it should do no harm. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
This commit is contained in:
@ -356,9 +356,6 @@ type ContainerConfig struct {
|
||||
// ExitCommand is the container's exit command.
|
||||
// This Command will be executed when the container exits
|
||||
ExitCommand []string `json:"exitCommand,omitempty"`
|
||||
// LocalVolumes are the built-in volumes we get from the --volumes-from flag
|
||||
// It picks up the built-in volumes of the container used by --volumes-from
|
||||
LocalVolumes []spec.Mount
|
||||
// IsInfra is a bool indicating whether this container is an infra container used for
|
||||
// sharing kernel namespaces in a pod
|
||||
IsInfra bool `json:"pause"`
|
||||
|
@ -13,7 +13,6 @@ import (
|
||||
"github.com/containers/storage"
|
||||
"github.com/containers/storage/pkg/idtools"
|
||||
"github.com/cri-o/ocicni/pkg/ocicni"
|
||||
spec "github.com/opencontainers/runtime-spec/specs-go"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
@ -1111,24 +1110,6 @@ func WithUserVolumes(volumes []string) CtrCreateOption {
|
||||
}
|
||||
}
|
||||
|
||||
// WithLocalVolumes sets the built-in volumes of the container retrieved
|
||||
// from a container passed in to the --volumes-from flag.
|
||||
// This stores the built-in volume information in the Config so we can
|
||||
// add them when creating the container.
|
||||
func WithLocalVolumes(volumes []spec.Mount) CtrCreateOption {
|
||||
return func(ctr *Container) error {
|
||||
if ctr.valid {
|
||||
return ErrCtrFinalized
|
||||
}
|
||||
|
||||
if volumes != nil {
|
||||
ctr.config.LocalVolumes = append(ctr.config.LocalVolumes, volumes...)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
// WithEntrypoint sets the entrypoint of the container.
|
||||
// This is not used to change the container's spec, but will instead be used
|
||||
// during commit to populate the entrypoint of the new image.
|
||||
|
@ -22,18 +22,16 @@ import (
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
type mountType string
|
||||
|
||||
// Type constants
|
||||
const (
|
||||
bps = iota
|
||||
iops
|
||||
// TypeBind is the type for mounting host dir
|
||||
TypeBind mountType = "bind"
|
||||
TypeBind = "bind"
|
||||
// TypeVolume is the type for remote storage volumes
|
||||
// TypeVolume mountType = "volume" // re-enable upon use
|
||||
// TypeVolume = "volume" // re-enable upon use
|
||||
// TypeTmpfs is the type for mounting tmpfs
|
||||
TypeTmpfs mountType = "tmpfs"
|
||||
TypeTmpfs = "tmpfs"
|
||||
)
|
||||
|
||||
// CreateResourceConfig represents resource elements in CreateConfig
|
||||
@ -137,8 +135,7 @@ type CreateConfig struct {
|
||||
SeccompProfilePath string //SecurityOpts
|
||||
SecurityOpts []string
|
||||
Rootfs string
|
||||
LocalVolumes []spec.Mount //Keeps track of the built-in volumes of container used in the --volumes-from flag
|
||||
Syslog bool // Whether to enable syslog on exit commands
|
||||
Syslog bool // Whether to enable syslog on exit commands
|
||||
}
|
||||
|
||||
func u32Ptr(i int64) *uint32 { u := uint32(i); return &u }
|
||||
@ -172,9 +169,9 @@ func (c *CreateConfig) AddContainerInitBinary(path string) error {
|
||||
c.Command = append([]string{"/dev/init", "--"}, c.Command...)
|
||||
c.Mounts = append(c.Mounts, spec.Mount{
|
||||
Destination: "/dev/init",
|
||||
Type: "bind",
|
||||
Type: TypeBind,
|
||||
Source: path,
|
||||
Options: []string{"bind", "ro"},
|
||||
Options: []string{TypeBind, "ro"},
|
||||
})
|
||||
return nil
|
||||
}
|
||||
@ -219,7 +216,7 @@ func (c *CreateConfig) initFSMounts() []spec.Mount {
|
||||
|
||||
// GetVolumeMounts takes user provided input for bind mounts and creates Mount structs
|
||||
func (c *CreateConfig) GetVolumeMounts(specMounts []spec.Mount) ([]spec.Mount, error) {
|
||||
m := c.LocalVolumes
|
||||
m := []spec.Mount{}
|
||||
for _, i := range c.Volumes {
|
||||
var options []string
|
||||
spliti := strings.Split(i, ":")
|
||||
@ -259,7 +256,7 @@ func (c *CreateConfig) GetVolumeMounts(specMounts []spec.Mount) ([]spec.Mount, e
|
||||
// Should tmpfs also be handled as named volumes? Wouldn't be hard
|
||||
// This will cause a new local Volume to be created on your system
|
||||
mount.Source = stringid.GenerateNonCryptoID()
|
||||
mount.Options = append(mount.Options, "bind")
|
||||
mount.Options = append(mount.Options, TypeBind)
|
||||
}
|
||||
m = append(m, mount)
|
||||
}
|
||||
@ -306,7 +303,7 @@ func (c *CreateConfig) GetVolumesFrom() error {
|
||||
return errors.Errorf("error retrieving container %s spec", ctr.ID())
|
||||
}
|
||||
for _, mnt := range spec.Mounts {
|
||||
if mnt.Type != "bind" {
|
||||
if mnt.Type != TypeBind {
|
||||
continue
|
||||
}
|
||||
if _, exists := userVolumes[mnt.Destination]; exists {
|
||||
@ -453,10 +450,6 @@ func (c *CreateConfig) GetContainerCreateOptions(runtime *libpod.Runtime, pod *l
|
||||
options = append(options, libpod.WithNamedVolumes(c.NamedVolumes))
|
||||
}
|
||||
|
||||
if len(c.LocalVolumes) != 0 {
|
||||
options = append(options, libpod.WithLocalVolumes(c.LocalVolumes))
|
||||
}
|
||||
|
||||
if len(c.Command) != 0 {
|
||||
options = append(options, libpod.WithCommand(c.Command))
|
||||
}
|
||||
@ -568,7 +561,7 @@ func (c *CreateConfig) GetContainerCreateOptions(runtime *libpod.Runtime, pod *l
|
||||
|
||||
options = append(options, libpod.WithPrivileged(c.Privileged))
|
||||
|
||||
useImageVolumes := c.ImageVolumeType == "bind"
|
||||
useImageVolumes := c.ImageVolumeType == TypeBind
|
||||
// Gather up the options for NewContainer which consist of With... funcs
|
||||
options = append(options, libpod.WithRootFSFromImage(c.ImageID, c.Image, useImageVolumes))
|
||||
options = append(options, libpod.WithSecLabels(c.LabelOpts))
|
||||
|
@ -20,7 +20,6 @@ import (
|
||||
)
|
||||
|
||||
const cpuPeriod = 100000
|
||||
const bindMount = "bind"
|
||||
|
||||
func supercedeUserMounts(mounts []spec.Mount, configMount []spec.Mount) []spec.Mount {
|
||||
if len(mounts) > 0 {
|
||||
@ -56,7 +55,7 @@ func splitNamedVolumes(mounts []spec.Mount) ([]spec.Mount, []*libpod.ContainerNa
|
||||
namedVolumes := make([]*libpod.ContainerNamedVolume, 0)
|
||||
for _, mount := range mounts {
|
||||
// If it's not a named volume, append unconditionally
|
||||
if mount.Type != bindMount {
|
||||
if mount.Type != TypeBind {
|
||||
newMounts = append(newMounts, mount)
|
||||
continue
|
||||
}
|
||||
@ -128,7 +127,7 @@ func CreateConfigToOCISpec(config *CreateConfig) (*spec.Spec, error) { //nolint
|
||||
}
|
||||
sysMnt := spec.Mount{
|
||||
Destination: "/sys",
|
||||
Type: bindMount,
|
||||
Type: TypeBind,
|
||||
Source: "/sys",
|
||||
Options: []string{"rprivate", "nosuid", "noexec", "nodev", r, "rbind"},
|
||||
}
|
||||
@ -155,7 +154,7 @@ func CreateConfigToOCISpec(config *CreateConfig) (*spec.Spec, error) { //nolint
|
||||
g.RemoveMount("/dev/mqueue")
|
||||
devMqueue := spec.Mount{
|
||||
Destination: "/dev/mqueue",
|
||||
Type: bindMount,
|
||||
Type: TypeBind,
|
||||
Source: "/dev/mqueue",
|
||||
Options: []string{"bind", "nosuid", "noexec", "nodev"},
|
||||
}
|
||||
@ -165,7 +164,7 @@ func CreateConfigToOCISpec(config *CreateConfig) (*spec.Spec, error) { //nolint
|
||||
g.RemoveMount("/proc")
|
||||
procMount := spec.Mount{
|
||||
Destination: "/proc",
|
||||
Type: bindMount,
|
||||
Type: TypeBind,
|
||||
Source: "/proc",
|
||||
Options: []string{"rbind", "nosuid", "noexec", "nodev"},
|
||||
}
|
||||
|
Reference in New Issue
Block a user