From b81b865b5287fd07b4e6fb73753cab788ae76edc Mon Sep 17 00:00:00 2001 From: Ed Santiago Date: Tue, 26 May 2020 05:18:16 -0600 Subject: podman-registry: many unrelated fixes 1) fix lost credentials. must_pass(), added in #6375, eats the credentials generated via 'podman run --entrypoint htpasswd'. Run that podman instance directly, and add explicit error check. (The error and stdout/stderr handling here has gotten cumbersome. There must be something I'm missing that could make it all simpler.) 2) fix default podman path. When setting $PODMAN, default to the locally built one -- there may not be one in $PATH (e.g. in Ubuntu, see #6366). This in turn requires us to: 3) run registry test in integration, not unit test It looks like unit tests run before podman is built, causing a chicken-egg dilemma. Try to solve that by running the new hack/podman-registry-go test in integration tests, not unit tests. Signed-off-by: Ed Santiago --- hack/podman-registry | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'hack/podman-registry') diff --git a/hack/podman-registry b/hack/podman-registry index 79dff8b70..fe79b7d9d 100755 --- a/hack/podman-registry +++ b/hack/podman-registry @@ -14,7 +14,7 @@ PODMAN_REGISTRY_PASS= PODMAN_REGISTRY_PORT= # Podman binary to run -PODMAN=${PODMAN:-$(type -p podman)} +PODMAN=${PODMAN:-$(dirname $0)/../bin/podman} # END defaults ############################################################################### @@ -176,11 +176,16 @@ function do_start() { -out ${AUTHDIR}/domain.crt \ -subj "/C=US/ST=Foo/L=Bar/O=Red Hat, Inc./CN=localhost" - # Store credentials where container will see them - must_pass podman run --rm \ - --entrypoint htpasswd ${PODMAN_REGISTRY_IMAGE} \ - -Bbn ${PODMAN_REGISTRY_USER} ${PODMAN_REGISTRY_PASS} \ - > $AUTHDIR/htpasswd + # Store credentials where container will see them. We can't run + # this one via must_pass because we need its stdout. + podman run --rm \ + --entrypoint htpasswd ${PODMAN_REGISTRY_IMAGE} \ + -Bbn ${PODMAN_REGISTRY_USER} ${PODMAN_REGISTRY_PASS} \ + > $AUTHDIR/htpasswd + if [ $? -ne 0 ]; then + rm -rf ${PODMAN_REGISTRY_WORKDIR} + die "Command failed: podman run [htpasswd]" + fi # In case someone needs to debug echo "${PODMAN_REGISTRY_USER}:${PODMAN_REGISTRY_PASS}" \ -- cgit v1.2.3-54-g00ecf