diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-10-01 15:32:14 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-01 15:32:14 -0400 |
commit | 1de96f2c4c390bae29c303e2390da9e87a993d3f (patch) | |
tree | b9a2839581ca47bc7cbac93eabb248144d073848 /pkg | |
parent | 9dddd6ab4bd8d5d142ffc53732668212da34b0e6 (diff) | |
parent | 6da97c86314d8c80b912ba83db57fd26da19bfb7 (diff) | |
download | podman-1de96f2c4c390bae29c303e2390da9e87a993d3f.tar.gz podman-1de96f2c4c390bae29c303e2390da9e87a993d3f.tar.bz2 podman-1de96f2c4c390bae29c303e2390da9e87a993d3f.zip |
Merge pull request #11777 from cdoern/podVolumesFrom
Pod Volumes From Support
Diffstat (limited to 'pkg')
-rw-r--r-- | pkg/domain/entities/pods.go | 4 | ||||
-rw-r--r-- | pkg/specgen/podspecgen.go | 43 |
2 files changed, 30 insertions, 17 deletions
diff --git a/pkg/domain/entities/pods.go b/pkg/domain/entities/pods.go index 0356383ec..653f64b42 100644 --- a/pkg/domain/entities/pods.go +++ b/pkg/domain/entities/pods.go @@ -135,6 +135,7 @@ type PodCreateOptions struct { CpusetCpus string `json:"cpuset_cpus,omitempty"` Userns specgen.Namespace `json:"-"` Volume []string `json:"volume,omitempty"` + VolumesFrom []string `json:"volumes_from,omitempty"` } // PodLogsOptions describes the options to extract pod logs. @@ -251,7 +252,7 @@ type ContainerCreateOptions struct { UTS string Mount []string Volume []string `json:"volume,omitempty"` - VolumesFrom []string + VolumesFrom []string `json:"volumes_from,omitempty"` Workdir string SeccompPolicy string PidFile string @@ -308,6 +309,7 @@ func ToPodSpecGen(s specgen.PodSpecGenerator, p *PodCreateOptions) (*specgen.Pod s.InfraImage = p.InfraImage s.SharedNamespaces = p.Share s.PodCreateCommand = p.CreateCommand + s.VolumesFrom = p.VolumesFrom // Networking config diff --git a/pkg/specgen/podspecgen.go b/pkg/specgen/podspecgen.go index ee4fbc13a..7713ea26c 100644 --- a/pkg/specgen/podspecgen.go +++ b/pkg/specgen/podspecgen.go @@ -72,22 +72,6 @@ type PodBasicConfig struct { // Any containers created within the pod will inherit the pod's userns settings. // Optional Userns Namespace `json:"userns,omitempty"` - // Mounts are mounts that will be added to the pod. - // These will supersede Image Volumes and VolumesFrom (WIP) volumes where - // there are conflicts. - // Optional. - Mounts []spec.Mount `json:"mounts,omitempty"` - // Volumes are named volumes that will be added to the pod. - // These will supersede Image Volumes and VolumesFrom (WIP) volumes where - // there are conflicts. - // Optional. - Volumes []*NamedVolume `json:"volumes,omitempty"` - // Overlay volumes are named volumes that will be added to the pod. - // Optional. - OverlayVolumes []*OverlayVolume `json:"overlay_volumes,omitempty"` - // Image volumes bind-mount a container-image mount into the pod's infra container. - // Optional. - ImageVolumes []*ImageVolume `json:"image_volumes,omitempty"` // Devices contains user specified Devices to be added to the Pod Devices []string `json:"pod_devices,omitempty"` } @@ -174,6 +158,32 @@ type PodNetworkConfig struct { NetworkOptions map[string][]string `json:"network_options,omitempty"` } +// PodStorageConfig contains all of the storage related options for the pod and its infra container. +type PodStorageConfig struct { + // Mounts are mounts that will be added to the pod. + // These will supersede Image Volumes and VolumesFrom volumes where + // there are conflicts. + // Optional. + Mounts []spec.Mount `json:"mounts,omitempty"` + // Volumes are named volumes that will be added to the pod. + // These will supersede Image Volumes and VolumesFrom volumes where + // there are conflicts. + // Optional. + Volumes []*NamedVolume `json:"volumes,omitempty"` + // Overlay volumes are named volumes that will be added to the pod. + // Optional. + OverlayVolumes []*OverlayVolume `json:"overlay_volumes,omitempty"` + // Image volumes bind-mount a container-image mount into the pod's infra container. + // Optional. + ImageVolumes []*ImageVolume `json:"image_volumes,omitempty"` + // VolumesFrom is a set of containers whose volumes will be added to + // this pod. The name or ID of the container must be provided, and + // may optionally be followed by a : and then one or more + // comma-separated options. Valid options are 'ro', 'rw', and 'z'. + // Options will be used for all volumes sourced from the container. + VolumesFrom []string `json:"volumes_from,omitempty"` +} + // PodCgroupConfig contains configuration options about a pod's cgroups. // This will be expanded in future updates to pods. type PodCgroupConfig struct { @@ -191,6 +201,7 @@ type PodSpecGenerator struct { PodNetworkConfig PodCgroupConfig PodResourceConfig + PodStorageConfig InfraContainerSpec *SpecGenerator `json:"-"` } |