mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-09 16:00:22 +00:00
fce1892115
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>
43 lines
1.1 KiB
Bash
Executable File
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
|