Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 35 additions & 4 deletions 02_configure_host.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@ if [ ! -f "$HOME/.ssh/id_rsa.pub" ]; then
ssh-keygen -f ~/.ssh/id_rsa -P ""
fi

# Start httpd container
sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name httpd ${POD_NAME} \
-v "$IRONIC_DATA_DIR":/shared --entrypoint /bin/runhttpd "${IRONIC_IMAGE}"

# root needs a private key to talk to libvirt
# See tripleo-quickstart-config/roles/virtbmc/tasks/configure-vbmc.yml
if sudo [ ! -f /root/.ssh/id_rsa_virt_power ]; then
Expand Down Expand Up @@ -128,6 +124,41 @@ if [[ "$MANAGE_BR_BRIDGE" == "y" && $OS == "centos" ]] ; then
fi
fi

# Needed if we're going to use any locally built images
reg_state=$(sudo "$CONTAINER_RUNTIME" inspect registry --format "{{.State.Status}}" || echo "error")
if [[ "$reg_state" != "running" ]]; then
sudo "${CONTAINER_RUNTIME}" rm registry -f || true
sudo "${CONTAINER_RUNTIME}" run -d -p 5000:5000 --name registry "$DOCKER_REGISTRY_IMAGE"
fi

# Support for building local images
for IMAGE_VAR in $(env | grep "_LOCAL_IMAGE=" | grep -o "^[^=]*") ; do
IMAGE=${!IMAGE_VAR}

# Is it a git repo?
if [[ "$IMAGE" =~ "://" ]] ; then
REPOPATH=~/${IMAGE##*/}
# Clone to ~ if not there already
[ -e "$REPOPATH" ] || git clone "$IMAGE" "$REPOPATH"
cd "$REPOPATH" || exit
#shellcheck disable=SC2086
export $IMAGE_VAR="${IMAGE##*/}:latest"
#shellcheck disable=SC2086
export $IMAGE_VAR="192.168.111.1:5000/localimages/${!IMAGE_VAR}"
sudo "${CONTAINER_RUNTIME}" build -t "${!IMAGE_VAR}" .
cd - || exit
sudo "${CONTAINER_RUNTIME}" push --tls-verify=false "${!IMAGE_VAR}" "${!IMAGE_VAR}"
fi
done

IRONIC_IMAGE=${IRONIC_LOCAL_IMAGE:-$IRONIC_IMAGE}
VMBC_IMAGE=${VBMC_LOCAL_IMAGE:-$VMBC_IMAGE}
SUSHY_TOOLS_IMAGE=${SUSHY_TOOLS_LOCAL_IMAGE:-$SUSHY_TOOLS_IMAGE}

# Start httpd container
sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name httpd ${POD_NAME} \
-v "$IRONIC_DATA_DIR":/shared --entrypoint /bin/runhttpd "${IRONIC_IMAGE}"

# Start vbmc and sushy containers
sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name vbmc ${POD_NAME} \
-v "$WORKING_DIR/virtualbmc/vbmc":/root/.vbmc -v "/root/.ssh":/root/ssh \
Expand Down
34 changes: 32 additions & 2 deletions 03_launch_mgmt_cluster.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,46 @@ function clone_repos() {
popd
}

function kustomize_overlay() {
overlay_path=$1
cat <<EOF> "$overlay_path/kustomization.yaml"
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- $(realpath --relative-to="$overlay_path" "$BMOPATH/deploy")
EOF
}

function launch_baremetal_operator() {
pushd "${BMOPATH}"
kustomize_overlay_path=$(mktemp -d bmo-XXXXXXXXXX)
kustomize_overlay "$kustomize_overlay_path"
pushd "$kustomize_overlay_path"

# Add custom images in overlay
for IMAGE_VAR in $(env | grep "_LOCAL_IMAGE=" | grep -o "^[^=]*") ; do
IMAGE=${!IMAGE_VAR}
if [[ "$IMAGE" =~ "://" ]] ; then
#shellcheck disable=SC2086
IMAGE_NAME="${IMAGE##*/}:latest"
LOCAL_IMAGE="192.168.111.1:5000/localimages/$IMAGE_NAME"
fi

OLD_IMAGE_VAR="${IMAGE_VAR%_LOCAL_IMAGE}_IMAGE"
OLD_IMAGE=${!OLD_IMAGE_VAR}
#shellcheck disable=SC2086
kustomize edit set image $OLD_IMAGE=$LOCAL_IMAGE
done
popd

if [ "${BMO_RUN_LOCAL}" = true ]; then
touch bmo.out.log
touch bmo.err.log
make deploy
kustomize build "$kustomize_overlay_path" | kubectl apply -f-
kubectl scale deployment metal3-baremetal-operator -n metal3 --replicas=0
nohup make run >> bmo.out.log 2>>bmo.err.log &
else
make deploy
kustomize build "$kustomize_overlay_path" | kubectl apply -f-
fi
popd
}
Expand Down
5 changes: 4 additions & 1 deletion lib/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ export NUM_MASTERS=${NUM_MASTERS:-"1"}
export NUM_WORKERS=${NUM_WORKERS:-"1"}
export VM_EXTRADISKS=${VM_EXTRADISKS:-"false"}

# Docker registry for local images
export DOCKER_REGISTRY_IMAGE=${DOCKER_REGISTRY_IMAGE:-"docker.io/registry:latest"}

# VBMC and Redfish images
export VBMC_IMAGE=${VBMC_IMAGE:-"quay.io/metal3-io/vbmc"}
export SUSHY_TOOLS_IMAGE=${SUSHY_TOOLS_IMAGE:-"quay.io/metal3-io/sushy-tools"}
Expand Down Expand Up @@ -281,7 +284,7 @@ differs(){
function init_minikube() {
#If the vm exists, it has already been initialized
if [[ "$(sudo virsh list --all)" != *"minikube"* ]]; then
sudo su -l -c "minikube start" "$USER"
sudo su -l -c "minikube start --insecure-registry 192.168.111.1:5000" "$USER"
# Pre-pull the image to reduce pod initialization time
for IMAGE_VAR in IRONIC_IMAGE IPA_DOWNLOADER_IMAGE IRONIC_INSPECTOR_IMAGE BAREMETAL_OPERATOR_IMAGE; do
IMAGE=${!IMAGE_VAR}
Expand Down