Skip to content

Commit

Permalink
Quadlet - Use = sign when setting the pull arg for build
Browse files Browse the repository at this point in the history
Signed-off-by: Ygal Blum <[email protected]>
  • Loading branch information
ygalblum committed Nov 21, 2024
1 parent 60ddddc commit d64fabc
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 2 deletions.
7 changes: 6 additions & 1 deletion pkg/systemd/quadlet/quadlet.go
Original file line number Diff line number Diff line change
Expand Up @@ -1397,10 +1397,15 @@ func ConvertBuild(build *parser.UnitFile, unitsInfoMap map[string]*UnitInfo, isU
podman := createBasePodmanCommand(build, BuildGroup)
podman.add("build")

// The `--pull` flag has to be handled separately and the `=` sign must be present
// See https://github.com/containers/podman/issues/24599 for details
if val, ok := build.Lookup(BuildGroup, KeyPull); ok && len(val) > 0 {
podman.addf("--pull=%s", val)
}

stringKeys := map[string]string{
KeyArch: "--arch",
KeyAuthFile: "--authfile",
KeyPull: "--pull",
KeyTarget: "--target",
KeyVariant: "--variant",
}
Expand Down
2 changes: 1 addition & 1 deletion test/e2e/quadlet/pull.build
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## assert-podman-final-args-regex /.*/podman-e2e-.*/subtest-.*/quadlet
## assert-podman-args "--tag" "localhost/imagename"
## assert-podman-args "--pull" "never"
## assert-podman-args "--pull=never"

[Build]
ImageTag=localhost/imagename
Expand Down
27 changes: 27 additions & 0 deletions test/system/252-quadlet.bats
Original file line number Diff line number Diff line change
Expand Up @@ -1699,4 +1699,31 @@ EOF
fi
done < <(parse_table "${dropin_files}")
}

# Following issue: https://github.com/containers/podman/issues/24599
# Make sure future changes do not break
@test "quadlet - build with pull" {
local quadlet_tmpdir=$PODMAN_TMPDIR/quadlets

mkdir $quadlet_tmpdir

local container_file_path=$quadlet_tmpdir/Containerfile
cat >$container_file_path << EOF
FROM $IMAGE
EOF

local image_tag=quay.io/i-$(safename):$(random_string)
local quadlet_file=$PODMAN_TMPDIR/pull_$(safename).build
cat >$quadlet_file << EOF
[Build]
ImageTag=$image_tag
File=$container_file_path
Pull=always
EOF

run_quadlet "$quadlet_file"
service_setup $QUADLET_SERVICE_NAME "wait"

run_podman rmi -i $image_tag
}
# vim: filetype=sh
2 changes: 2 additions & 0 deletions test/system/helpers.systemd.bash
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,8 @@ quadlet_to_service_name() {
suffix="-image"
elif [ "$extension" == "pod" ]; then
suffix="-pod"
elif [ "$extension" == "build" ]; then
suffix="-build"
fi

echo "$filename$suffix.service"
Expand Down

0 comments on commit d64fabc

Please sign in to comment.