#!/usr/bin/env bash set -e INKLUSTER_IMAGE=brainfood/inkluster-dev if [[ -e .inkluster.env ]]; then . .inkluster.env fi declare -a REST=() while [[ $# -gt 0 ]]; do case "$1" in (-v) INKLUSTER_VOLUME_NAME="$2" shift 2 ;; (*) break ;; esac done has_volume= if [[ $INKLUSTER_VOLUME_NAME ]]; then docker volume inspect "inkluster-$INKLUSTER_VOLUME_NAME" 1>/dev/null 2>/dev/null || has_volume=1 fi case "$1" in (reset) [[ $has_volume ]] && docker volume rm "inkluster-$INKLUSTER_VOLUME_NAME" exit ;; esac declare -a docker_args=(--rm -i) [[ -t 0 ]] && docker_args+=(-t) docker_args+=(-v /:/srv/host-root) docker_args+=(-w /srv/host-root/$PWD) [[ $SSH_AUTH_SOCK ]] && docker_args+=(-e "SSH_AUTH_SOCK=/srv/host-root/$SSH_AUTH_SOCK") network= if [[ $KUBECONFIG ]]; then network=host docker_args+=(-e "KUBECONFIG=/srv/host-root/$KUBECONFIG") elif [[ -e $HOME/.kube/config ]]; then network=host docker_args+=(-v "$HOME/.kube/config:/home/tool/.kube/config") fi if [[ $network ]]; then docker_args+=(--network host) fi docker_args+=(-e MAP_UID="$(id -u)" -e MAP_GROUPS="$(id -G)") if [[ $INKLUSTER_VOLUME_NAME ]]; then if [[ ! $has_volume ]]; then docker volume create "inkluster-$INKLUSTER_VOLUME_NAME" fi docker_args+=(-v "inkluster-$INKLUSTER_VOLUME_NAME":/run) fi docker run "${docker_args[@]}" "$INKLUSTER_IMAGE" "$@"