ceph-csi/podman2minikube.sh
Niels de Vos fce1892115 ci: copy images into minikube container when VM_DRIVER=podman
Even when minikube is running with `--driver=podman`, `minikube ssh`
works and container images can be copied into the minikube container.

Signed-off-by: Niels de Vos <ndevos@redhat.com>
2022-10-12 10:14:49 +00:00

43 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
#
# When an image was built with podman, it needs importing into minikube.
#
# Some versions of minikube/docker add a "localhost/" prefix to imported
# images. In that case, the image needs to get tagged without the prefix as
# well.
#
# no need to ssh-copy images if everything runs local
if [[ "${VM_DRIVER}" == "none" ]]
then
exit 0
fi
# fail when a command returns an error
set -e -o pipefail
# "minikube ssh" fails to read the image, so use standard ssh instead
function minikube_ssh() {
ssh \
-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no \
-l docker -i "$(minikube ssh-key)" \
"$(minikube ip)" "${*}"
}
IMAGE="${1}"
# if IMAGE is empty, fail the script
[ -n "${IMAGE}" ]
# import the image, save response in STDOUT
STDOUT=$(podman image save "${IMAGE}" | minikube_ssh docker image load)
echo "${STDOUT}"
# check the name of the image that was imported in docker
DOCKER_IMAGE=$(awk '/Loaded image/ {print $NF}' <<< "${STDOUT}")
# strip "localhost/" from the image name
if [[ "${DOCKER_IMAGE}" =~ ^localhost/* ]]
then
minikube_ssh docker tag "${DOCKER_IMAGE}" "${IMAGE}"
fi