Add --compat-volumes option to build and farm build

Add the `--compat-volumes option from Buildah v1.37 into
Podman in preparation of Podman v5.2

Signed-off-by: tomsweeneyredhat <tsweeney@redhat.com>
This commit is contained in:
tomsweeneyredhat 2024-07-29 16:03:36 -04:00
parent 286fbf98d1
commit b8a9b184af
7 changed files with 38 additions and 0 deletions

View File

@ -520,6 +520,7 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *Buil
CacheTTL: cacheTTL, CacheTTL: cacheTTL,
ConfidentialWorkload: confidentialWorkloadOptions, ConfidentialWorkload: confidentialWorkloadOptions,
CommonBuildOpts: commonOpts, CommonBuildOpts: commonOpts,
CompatVolumes: types.NewOptionalBool(flags.CompatVolumes),
Compression: compression, Compression: compression,
ConfigureNetwork: networkPolicy, ConfigureNetwork: networkPolicy,
ContextDirectory: contextDir, ContextDirectory: contextDir,

View File

@ -0,0 +1,11 @@
####> This option file is used in:
####> podman build, farm build
####> If file is edited, make sure the changes
####> are applicable to all of those.
#### **--compat-volumes**
Handle directories marked using the VOLUME instruction (both in this build, and
those inherited from base images) such that their contents can only be modified
by ADD and COPY instructions. Any changes made in those locations by RUN
instructions will be reverted. Before the introduction of this option, this
behavior was the default, but it is now disabled by default.

View File

@ -92,6 +92,8 @@ host. (Examples: arm, arm64, 386, amd64, ppc64le, s390x)
@@option cgroupns.image @@option cgroupns.image
@@option compat-volumes
#### **--compress** #### **--compress**
This option is added to be aligned with other containers CLIs. This option is added to be aligned with other containers CLIs.

View File

@ -57,6 +57,8 @@ Note: Since the images built are directly pushed to a registry, the user must pa
Remove built images from farm nodes on success (Default: false). Remove built images from farm nodes on success (Default: false).
@@option compat-volumes
@@option cpp-flag @@option cpp-flag
@@option cpu-period @@option cpu-period

View File

@ -97,6 +97,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
CacheTo string `schema:"cacheto"` CacheTo string `schema:"cacheto"`
CacheTTL string `schema:"cachettl"` CacheTTL string `schema:"cachettl"`
CgroupParent string `schema:"cgroupparent"` CgroupParent string `schema:"cgroupparent"`
CompatVolumes bool `schema:"compatvolumes"`
Compression uint64 `schema:"compression"` Compression uint64 `schema:"compression"`
ConfigureNetwork string `schema:"networkmode"` ConfigureNetwork string `schema:"networkmode"`
CPPFlags string `schema:"cppflags"` CPPFlags string `schema:"cppflags"`
@ -702,6 +703,7 @@ func BuildImage(w http.ResponseWriter, r *http.Request) {
Secrets: secrets, Secrets: secrets,
Volumes: query.Volumes, Volumes: query.Volumes,
}, },
CompatVolumes: types.NewOptionalBool(query.CompatVolumes),
Compression: compression, Compression: compression,
ConfigureNetwork: parseNetworkConfigurationPolicy(query.ConfigureNetwork), ConfigureNetwork: parseNetworkConfigurationPolicy(query.ConfigureNetwork),
ContextDirectory: contextDirectory, ContextDirectory: contextDirectory,

View File

@ -540,6 +540,13 @@ func (s *APIServer) registerImagesHandlers(r *mux.Router) error {
// description: | // description: |
// Suppress verbose build output // Suppress verbose build output
// - in: query // - in: query
// name: compatvolumes
// type: boolean
// default: false
// description: |
// Contents of base images to be modified on ADD or COPY only
// (As of version 1.37)
// - in: query
// name: nocache // name: nocache
// type: boolean // type: boolean
// default: false // default: false
@ -1494,6 +1501,13 @@ func (s *APIServer) registerImagesHandlers(r *mux.Router) error {
// description: | // description: |
// Suppress verbose build output // Suppress verbose build output
// - in: query // - in: query
// name: compatvolumes
// type: boolean
// default: false
// description: |
// Contents of base images to be modified on ADD or COPY only
// (As of version 1.37)
// - in: query
// name: nocache // name: nocache
// type: boolean // type: boolean
// default: false // default: false

View File

@ -281,6 +281,12 @@ func Build(ctx context.Context, containerFiles []string, options types.BuildOpti
if mem := options.CommonBuildOpts.Memory; mem > 0 { if mem := options.CommonBuildOpts.Memory; mem > 0 {
params.Set("memory", strconv.Itoa(int(mem))) params.Set("memory", strconv.Itoa(int(mem)))
} }
switch options.CompatVolumes {
case imageTypes.OptionalBoolTrue:
params.Set("compatvolumes", "1")
case imageTypes.OptionalBoolFalse:
params.Set("compatvolumes", "0")
}
if options.NoCache { if options.NoCache {
params.Set("nocache", "1") params.Set("nocache", "1")
} }