Merge pull request #27256 from givensuman/T-27065-add-quadlet-build-args-support

Add BuildArg key to quadlets
This commit is contained in:
openshift-merge-bot[bot]
2025-10-16 15:24:52 +00:00
committed by GitHub
4 changed files with 30 additions and 1 deletions

View File

@@ -1715,6 +1715,7 @@ Valid options for `[Build]` are listed below:
| Annotation=annotation=value | --annotation=annotation=value | | Annotation=annotation=value | --annotation=annotation=value |
| Arch=aarch64 | --arch=aarch64 | | Arch=aarch64 | --arch=aarch64 |
| AuthFile=/etc/registry/auth\.json | --authfile=/etc/registry/auth\.json | | AuthFile=/etc/registry/auth\.json | --authfile=/etc/registry/auth\.json |
| BuildArg=foo=bar | --build-arg foo=bar |
| ContainersConfModule=/etc/nvd\.conf | --module=/etc/nvd\.conf | | ContainersConfModule=/etc/nvd\.conf | --module=/etc/nvd\.conf |
| DNS=192.168.55.1 | --dns=192.168.55.1 | | DNS=192.168.55.1 | --dns=192.168.55.1 |
| DNSOption=ndots:1 | --dns-option=ndots:1 | | DNSOption=ndots:1 | --dns-option=ndots:1 |
@@ -1757,6 +1758,14 @@ Path of the authentication file.
This is equivalent to the `--authfile` option of `podman build`. This is equivalent to the `--authfile` option of `podman build`.
### `BuildArg=`
Specifies a build argument and its value in the same way environment variables are
(e.g., env=*value*), but it is not added to the environment variable list in the
resulting image's configuration. Can be listed multiple times.
This is equivalent to the `--build-arg` option of `podman build`.
### `ContainersConfModule=` ### `ContainersConfModule=`
Load the specified containers.conf(5) module. Equivalent to the Podman `--module` option. Load the specified containers.conf(5) module. Equivalent to the Podman `--module` option.
@@ -2281,7 +2290,7 @@ Yaml=/opt/k8s/deployment.yml
WantedBy=multi-user.target default.target WantedBy=multi-user.target default.target
``` ```
Example for locally built image to be used in a container: Example for locally built image to be used in a container with build-specific arguments:
`test.build` `test.build`
``` ```
@@ -2293,6 +2302,9 @@ ImageTag=localhost/imagename
# expecting to find a Containerfile/Dockerfile # expecting to find a Containerfile/Dockerfile
# + other files needed to build the image # + other files needed to build the image
SetWorkingDirectory=unit SetWorkingDirectory=unit
# Set build arguments VERSION and DEBUG
BuildArg=VERSION=1.0 \
DEBUG=false
``` ```
`test.container` `test.container`

View File

@@ -66,6 +66,7 @@ const (
KeyArtifact = "Artifact" KeyArtifact = "Artifact"
KeyAuthFile = "AuthFile" KeyAuthFile = "AuthFile"
KeyAutoUpdate = "AutoUpdate" KeyAutoUpdate = "AutoUpdate"
KeyBuildArg = "BuildArg"
KeyCertDir = "CertDir" KeyCertDir = "CertDir"
KeyCgroupsMode = "CgroupsMode" KeyCgroupsMode = "CgroupsMode"
KeyConfigMap = "ConfigMap" KeyConfigMap = "ConfigMap"
@@ -437,6 +438,7 @@ var (
KeyAnnotation: true, KeyAnnotation: true,
KeyArch: true, KeyArch: true,
KeyAuthFile: true, KeyAuthFile: true,
KeyBuildArg: true,
KeyContainersConfModule: true, KeyContainersConfModule: true,
KeyDNS: true, KeyDNS: true,
KeyDNSOption: true, KeyDNSOption: true,
@@ -1415,6 +1417,7 @@ func ConvertBuild(build *parser.UnitFile, unitsInfoMap map[string]*UnitInfo, isU
lookupAndAddAllStrings(build, BuildGroup, allStringKeys, podman) lookupAndAddAllStrings(build, BuildGroup, allStringKeys, podman)
keyValKeys := map[string]string{ keyValKeys := map[string]string{
KeyBuildArg: "--build-arg",
KeyEnvironment: "--env", KeyEnvironment: "--env",
KeyLabel: "--label", KeyLabel: "--label",
KeyAnnotation: "--annotation", KeyAnnotation: "--annotation",

View File

@@ -0,0 +1,13 @@
## assert-podman-args "--build-arg" "FOO=BAR"
## assert-podman-args "--build-arg" "BIZ=BAZ"
## assert-podman-args "--build-arg" "MULTIPLE=ARGUMENTS"
## assert-podman-args "--build-arg" "WORKS=FINE"
[Build]
ImageTag=image:latest
SetWorkingDirectory=unit
BuildArg=FOO=BAR
BuildArg=BIZ=BAZ
BuildArg=MULTIPLE=ARGUMENTS \
WORKS=FINE

View File

@@ -1061,6 +1061,7 @@ BOGUS=foo
Entry("Build - Multiple Tags", "multiple-tags.build"), Entry("Build - Multiple Tags", "multiple-tags.build"),
Entry("Build - Network Key host", "network.build"), Entry("Build - Network Key host", "network.build"),
Entry("Build - PodmanArgs", "podmanargs.build"), Entry("Build - PodmanArgs", "podmanargs.build"),
Entry("Build - BuildArg Key", "buildarg.build"),
Entry("Build - Pull Key", "pull.build"), Entry("Build - Pull Key", "pull.build"),
Entry("Build - Secrets", "secrets.build"), Entry("Build - Secrets", "secrets.build"),
Entry("Build - SetWorkingDirectory is absolute path", "setworkingdirectory-is-abs.build"), Entry("Build - SetWorkingDirectory is absolute path", "setworkingdirectory-is-abs.build"),