Fixes for vendoring Buildah

This commit was automatically cherry-picked
by buildah-vendor-treadmill v0.3
from the buildah vendor treadmill PR, #13808

Changes since 2022-08-16:

 - buildah 4139: minor line-number changes to the diff
   file because helpers.bash got edited

 - buildah 4190: skip the new test if remote

 - buildah 4195: add --retry / --retry-delay

 - changes to deal with vendoring gomega, units

 - changes to the podman login error message in system test

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Ed Santiago
2022-07-18 14:38:44 -06:00
committed by Paul Holzinger
parent eb28a1c084
commit 8e1aa7af3a
5 changed files with 35 additions and 15 deletions

View File

@@ -512,6 +512,16 @@ Suppress output messages which indicate which instruction is being processed,
and of progress when pulling images from a registry, and when writing the and of progress when pulling images from a registry, and when writing the
output image. output image.
#### **--retry**=*attempts*
Number of times to retry in case of failure when performing pull of
images from registry. Default is **3**.
#### **--retry-delay**=*duration*
Duration of delay between retry attempts in case of failure when performing
pull of images from registry. Default is **2s**.
#### **--rm** #### **--rm**
Remove intermediate containers after a successful build (default true). Remove intermediate containers after a successful build (default true).

View File

@@ -235,6 +235,10 @@ skip_if_remote "envariables do not automatically work with -remote." \
skip_if_remote "FIXME FIXME FIXME: does this test make sense in remote?" \ skip_if_remote "FIXME FIXME FIXME: does this test make sense in remote?" \
"build-test with OCI prestart hook" "build-test with OCI prestart hook"
# 2022-08-17 buildah PR 4190
skip_if_remote "Explicit request in buildah PR 4190 to skip this on remote" \
"build: test race in updating image name while performing parallel commits"
############################################################################### ###############################################################################
# BEGIN tests which are skipped due to actual podman or podman-remote bugs. # BEGIN tests which are skipped due to actual podman or podman-remote bugs.

View File

@@ -1,4 +1,4 @@
From 6508e3df2a129554fdf8336d8a6f0cdcc6fd4832 Mon Sep 17 00:00:00 2001 From d22e44c8fb1c87afb90391188733f7ce8fea005d Mon Sep 17 00:00:00 2001
From: Ed Santiago <santiago@redhat.com> From: Ed Santiago <santiago@redhat.com>
Date: Tue, 9 Feb 2021 17:28:05 -0700 Date: Tue, 9 Feb 2021 17:28:05 -0700
Subject: [PATCH] tweaks for running buildah tests under podman Subject: [PATCH] tweaks for running buildah tests under podman
@@ -9,10 +9,10 @@ Signed-off-by: Ed Santiago <santiago@redhat.com>
1 file changed, 67 insertions(+), 3 deletions(-) 1 file changed, 67 insertions(+), 3 deletions(-)
diff --git a/tests/helpers.bash b/tests/helpers.bash diff --git a/tests/helpers.bash b/tests/helpers.bash
index e3087063..178a486e 100644 index 8cb93c3a..72c1c797 100644
--- a/tests/helpers.bash --- a/tests/helpers.bash
+++ b/tests/helpers.bash +++ b/tests/helpers.bash
@@ -51,6 +51,23 @@ EOF @@ -52,6 +52,23 @@ EOF
ROOTDIR_OPTS="--root ${TEST_SCRATCH_DIR}/root --runroot ${TEST_SCRATCH_DIR}/runroot --storage-driver ${STORAGE_DRIVER}" ROOTDIR_OPTS="--root ${TEST_SCRATCH_DIR}/root --runroot ${TEST_SCRATCH_DIR}/runroot --storage-driver ${STORAGE_DRIVER}"
BUILDAH_REGISTRY_OPTS="--registries-conf ${TEST_SOURCES}/registries.conf --registries-conf-dir ${TEST_SCRATCH_DIR}/registries.d --short-name-alias-conf ${TEST_SCRATCH_DIR}/cache/shortnames.conf" BUILDAH_REGISTRY_OPTS="--registries-conf ${TEST_SOURCES}/registries.conf --registries-conf-dir ${TEST_SCRATCH_DIR}/registries.d --short-name-alias-conf ${TEST_SCRATCH_DIR}/cache/shortnames.conf"
PODMAN_REGISTRY_OPTS="--registries-conf ${TEST_SOURCES}/registries.conf" PODMAN_REGISTRY_OPTS="--registries-conf ${TEST_SOURCES}/registries.conf"
@@ -36,7 +36,7 @@ index e3087063..178a486e 100644
} }
function starthttpd() { function starthttpd() {
@@ -94,6 +111,12 @@ function teardown_tests() { @@ -95,6 +112,12 @@ function teardown_tests() {
stop_git_daemon stop_git_daemon
stop_registry stop_registry
@@ -49,7 +49,7 @@ index e3087063..178a486e 100644
# Workaround for #1991 - buildah + overlayfs leaks mount points. # Workaround for #1991 - buildah + overlayfs leaks mount points.
# Many tests leave behind /var/tmp/.../root/overlay and sub-mounts; # Many tests leave behind /var/tmp/.../root/overlay and sub-mounts;
# let's find those and clean them up, otherwise 'rm -rf' fails. # let's find those and clean them up, otherwise 'rm -rf' fails.
@@ -186,6 +209,10 @@ function podman() { @@ -187,6 +210,10 @@ function podman() {
command ${PODMAN_BINARY:-podman} ${PODMAN_REGISTRY_OPTS} ${ROOTDIR_OPTS} "$@" command ${PODMAN_BINARY:-podman} ${PODMAN_REGISTRY_OPTS} ${ROOTDIR_OPTS} "$@"
} }
@@ -60,7 +60,7 @@ index e3087063..178a486e 100644
# There are various scenarios where we would like to execute `tests` as rootless user, however certain commands like `buildah mount` # There are various scenarios where we would like to execute `tests` as rootless user, however certain commands like `buildah mount`
# do not work in rootless session since a normal user cannot mount a filesystem unless they're in a user namespace along with its # do not work in rootless session since a normal user cannot mount a filesystem unless they're in a user namespace along with its
# own mount namespace. In order to run such specific commands from a rootless session we must perform `buildah unshare`. # own mount namespace. In order to run such specific commands from a rootless session we must perform `buildah unshare`.
@@ -247,8 +274,36 @@ function run_buildah() { @@ -248,8 +275,36 @@ function run_buildah() {
--retry) retry=3; shift;; # retry network flakes --retry) retry=3; shift;; # retry network flakes
esac esac
@@ -98,7 +98,7 @@ index e3087063..178a486e 100644
# If session is rootless and `buildah mount` is invoked, perform unshare, # If session is rootless and `buildah mount` is invoked, perform unshare,
# since normal user cannot mount a filesystem unless they're in a user namespace along with its own mount namespace. # since normal user cannot mount a filesystem unless they're in a user namespace along with its own mount namespace.
@@ -262,8 +317,8 @@ function run_buildah() { @@ -263,8 +318,8 @@ function run_buildah() {
retry=$(( retry - 1 )) retry=$(( retry - 1 ))
# stdout is only emitted upon error; this echo is to help a debugger # stdout is only emitted upon error; this echo is to help a debugger
@@ -109,7 +109,7 @@ index e3087063..178a486e 100644
# without "quotes", multiple lines are glommed together into one # without "quotes", multiple lines are glommed together into one
if [ -n "$output" ]; then if [ -n "$output" ]; then
echo "$output" echo "$output"
@@ -595,6 +650,15 @@ function skip_if_no_docker() { @@ -596,6 +651,15 @@ function skip_if_no_docker() {
fi fi
} }
@@ -126,5 +126,5 @@ index e3087063..178a486e 100644
daemondir=${TEST_SCRATCH_DIR}/git-daemon daemondir=${TEST_SCRATCH_DIR}/git-daemon
mkdir -p ${daemondir}/repo mkdir -p ${daemondir}/repo
-- --
2.35.3 2.36.1

View File

@@ -200,27 +200,33 @@ var _ = Describe("Podman secret", func() {
list := podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("name=%s", secret1)}) list := podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("name=%s", secret1)})
list.WaitWithDefaultTimeout() list.WaitWithDefaultTimeout()
Expect(list).Should(Exit(0)) Expect(list).Should(Exit(0))
Expect(list.OutputToStringArray()).To(HaveLen(2), ContainSubstring(secret1)) Expect(list.OutputToStringArray()).To(HaveLen(2))
Expect(list.OutputToStringArray()[1]).To(ContainSubstring(secret1))
list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("name=%s", secret2)}) list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("name=%s", secret2)})
list.WaitWithDefaultTimeout() list.WaitWithDefaultTimeout()
Expect(list).Should(Exit(0)) Expect(list).Should(Exit(0))
Expect(list.OutputToStringArray()).To(HaveLen(2), ContainSubstring(secret2)) Expect(list.OutputToStringArray()).To(HaveLen(2))
Expect(list.OutputToStringArray()[1]).To(ContainSubstring(secret2))
list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("id=%s", secrID1)}) list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("id=%s", secrID1)})
list.WaitWithDefaultTimeout() list.WaitWithDefaultTimeout()
Expect(list).Should(Exit(0)) Expect(list).Should(Exit(0))
Expect(list.OutputToStringArray()).To(HaveLen(2), ContainSubstring(secrID1)) Expect(list.OutputToStringArray()).To(HaveLen(2))
Expect(list.OutputToStringArray()[1]).To(ContainSubstring(secrID1))
list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("id=%s", secrID2)}) list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("id=%s", secrID2)})
list.WaitWithDefaultTimeout() list.WaitWithDefaultTimeout()
Expect(list).Should(Exit(0)) Expect(list).Should(Exit(0))
Expect(list.OutputToStringArray()).To(HaveLen(2), ContainSubstring(secrID2)) Expect(list.OutputToStringArray()).To(HaveLen(2))
Expect(list.OutputToStringArray()[1]).To(ContainSubstring(secrID2))
list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("name=%s,name=%s", secret1, secret2)}) list = podmanTest.Podman([]string{"secret", "ls", "--filter", fmt.Sprintf("name=%s,name=%s", secret1, secret2)})
list.WaitWithDefaultTimeout() list.WaitWithDefaultTimeout()
Expect(list).Should(Exit(0)) Expect(list).Should(Exit(0))
Expect(list.OutputToStringArray()).To(HaveLen(3), ContainSubstring(secret1), ContainSubstring(secret2)) Expect(list.OutputToStringArray()).To(HaveLen(3))
Expect(list.OutputToString()).To(ContainSubstring(secret1))
Expect(list.OutputToString()).To(ContainSubstring(secret2))
}) })
It("podman secret ls with Go template", func() { It("podman secret ls with Go template", func() {

View File

@@ -122,7 +122,7 @@ function setup() {
--password-stdin \ --password-stdin \
$registry <<< "x${PODMAN_LOGIN_PASS}" $registry <<< "x${PODMAN_LOGIN_PASS}"
is "$output" \ is "$output" \
"Error: error logging into \"$registry\": invalid username/password" \ "Error: logging into \"$registry\": invalid username/password" \
'output from podman login' 'output from podman login'
} }