Files
podman/test/farm/setup_suite.bash
Urvashi Mohnani a06685a548 Farm build should read server registries.conf
Fix the way we set skipTLSVerify on the client side
to ensure that the push stage in farm build takes into
account the configuration in the farm node's registries.conf
when the user hasn't set it on the client side.

Signed-off-by: Urvashi Mohnani <umohnani@redhat.com>
2024-01-31 15:41:27 -05:00

64 lines
2.1 KiB
Bash

# -*- bash -*-
bats_require_minimum_version 1.8.0
load helpers
load ../system/helpers
load ../system/helpers.registry
load ../system/helpers.network
function setup_suite(){
if [[ -z "$ROOTLESS_USER" ]]; then
if ! is_rootless; then
die "Cannot run as root with no \$ROOTLESS_USER defined"
fi
export ROOTLESS_USER=$(id -un)
fi
sshdir=/home/$ROOTLESS_USER/.ssh
sshkey=$sshdir/id_rsa
if [[ ! -e $sshkey ]]; then
ssh-keygen -t rsa -N "" -f $sshkey
cat ${sshkey}.pub >> $sshdir/authorized_keys
# Confirm that ssh localhost works. Since this is probably
# the first time that we ssh, bypass the host key verification.
ssh -T -o 'BatchMode yes' -o 'StrictHostKeyChecking no' localhost true
fi
# Sigh..... "system connection add" fails if podman is not in $PATH.
# There does not seem to be any way to tell it to use an explicit path.
type -P podman || die "No 'podman' in \$PATH"
export FARMNAME="test-farm-$(random_string 5)"
# only set up the podman farm before the first test
run_podman system connection add --identity $sshkey test-node $ROOTLESS_USER@localhost
run_podman farm create $FARMNAME test-node
export PODMAN_LOGIN_WORKDIR=$(mktemp -d --tmpdir=${BATS_TMPDIR:-${TMPDIR:-/tmp}} podman-bats-registry.XXXXXX)
export PODMAN_LOGIN_USER="user$(random_string 4)"
export PODMAN_LOGIN_PASS="pw$(random_string 15)"
# FIXME: racy! It could be many minutes between now and when we start it.
# To mitigate, we use a range not used anywhere else in system tests.
export PODMAN_LOGIN_REGISTRY_PORT=$(random_free_port 42000-42999)
# create a local registry to push images to
export REGISTRY=localhost:${PODMAN_LOGIN_REGISTRY_PORT}
export AUTHFILE=$FARM_TMPDIR/authfile.json
start_registry
run_podman login --authfile=$AUTHFILE \
--tls-verify=false \
--username ${PODMAN_LOGIN_USER} \
--password ${PODMAN_LOGIN_PASS} \
$REGISTRY
}
function teardown_suite(){
# clear out the farms after the last farm test
run_podman farm rm --all
stop_registry
}