From 919f39edeae715417ef2e654a79a8f240f5e41b8 Mon Sep 17 00:00:00 2001 From: "r.kuralamudhan" Date: Fri, 21 Feb 2020 23:23:02 -0800 Subject: [PATCH] disable the fast track in metal3 env Change-Id: I3488cd46bc27b731db343f9380ba9b353e2596d1 --- env/lib/common.sh | 1 + env/metal3/02_configure.sh | 16 ++++++++------- env/metal3/03_launch_prereq.sh | 44 +++++++++++++++++++++++++++++++++++------- env/metal3/06_host_cleanup.sh | 6 +++--- 4 files changed, 50 insertions(+), 17 deletions(-) diff --git a/env/lib/common.sh b/env/lib/common.sh index 52d4f61..4bc2bd4 100755 --- a/env/lib/common.sh +++ b/env/lib/common.sh @@ -29,6 +29,7 @@ PROVIDER_NETWORK_DNS=${PROVIDER_NETWORK_DNS:-} IRONIC_IMAGE=${IRONIC_IMAGE:-"quay.io/metal3-io/ironic:master"} IRONIC_INSPECTOR_IMAGE=${IRONIC_INSPECTOR_IMAGE:-"quay.io/metal3-io/ironic-inspector"} IRONIC_BAREMETAL_IMAGE=${IRONIC_BAREMETAL_IMAGE:-"quay.io/metal3-io/baremetal-operator:master"} +IPA_DOWNLOADER_IMAGE=${IPA_DOWNLOADER_IMAGE:-"quay.io/metal3-io/ironic-ipa-downloader:master"} IRONIC_BAREMETAL_SOCAT_IMAGE=${IRONIC_BAREMETAL_SOCAT_IMAGE:-"alpine/socat:latest"} IRONIC_DATA_DIR=${IRONIC_DATA_DIR:-"/opt/ironic"} diff --git a/env/metal3/02_configure.sh b/env/metal3/02_configure.sh index 490c438..3117027 100755 --- a/env/metal3/02_configure.sh +++ b/env/metal3/02_configure.sh @@ -131,19 +131,21 @@ function configure_ironic { return fi - #Podman usage is deprecated for v1.0.0 release - #podman pull $IRONIC_IMAGE + for name in ironic ironic-inspector dnsmasq httpd mariadb ipa-downloader; do + sudo docker ps | \ + grep -w "$name$" && sudo docker kill "$name" + sudo docker ps --all | \ + grep -w "$name$" && sudo docker rm "$name" -f + done + rm -rf "$IRONIC_DATA_DIR" + docker pull $IRONIC_IMAGE - #podman pull $IRONIC_INSPECTOR_IMAGE docker pull $IRONIC_INSPECTOR_IMAGE + docker pull $IPA_DOWNLOADER_IMAGE mkdir -p "$IRONIC_DATA_DIR/html/images" pushd $IRONIC_DATA_DIR/html/images - if [ ! -f ironic-python-agent.initramfs ]; then - curl --insecure --compressed -L https://images.rdoproject.org/master/rdo_trunk/current-tripleo-rdo/ironic-python-agent.tar | tar -xf - - fi - if [[ "$BM_IMAGE_URL" && "$BM_IMAGE" ]]; then curl -o ${BM_IMAGE} --insecure --compressed -O -L ${BM_IMAGE_URL} md5sum ${BM_IMAGE} | awk '{print $1}' > ${BM_IMAGE}.md5sum diff --git a/env/metal3/03_launch_prereq.sh b/env/metal3/03_launch_prereq.sh index ae42c50..3f6fc6e 100755 --- a/env/metal3/03_launch_prereq.sh +++ b/env/metal3/03_launch_prereq.sh @@ -80,24 +80,40 @@ function install_ironic_container { # set password for mariadb mariadb_password=$(echo $(date;hostname)|sha256sum |cut -c-20) + # Start image downloader container + docker run -d --net host --privileged --name ipa-downloader \ + --env-file "${PWD}/ironic.env" \ + -v "$IRONIC_DATA_DIR:/shared" "${IPA_DOWNLOADER_IMAGE}" /usr/local/bin/get-resource.sh + + docker wait ipa-downloader + # Start dnsmasq, http, mariadb, and ironic containers using same image + # See this file for env vars you can set, like IP, DHCP_RANGE, INTERFACE docker run -d --net host --privileged --name dnsmasq \ - -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/rundnsmasq ${IRONIC_IMAGE} + --env-file "${PWD}/ironic.env" \ + -v "$IRONIC_DATA_DIR:/shared" --entrypoint /bin/rundnsmasq "${IRONIC_IMAGE}" + # For available env vars, see: docker run -d --net host --privileged --name httpd \ - -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/runhttpd ${IRONIC_IMAGE} + --env-file "${PWD}/ironic.env" \ + -v "$IRONIC_DATA_DIR:/shared" --entrypoint /bin/runhttpd "${IRONIC_IMAGE}" + # https://github.com/metal3-io/ironic/blob/master/runmariadb.sh docker run -d --net host --privileged --name mariadb \ - -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/runmariadb \ - --env MARIADB_PASSWORD=$mariadb_password ${IRONIC_IMAGE} + --env-file "${PWD}/ironic.env" \ + -v "$IRONIC_DATA_DIR:/shared" --entrypoint /bin/runmariadb \ + --env "MARIADB_PASSWORD=$mariadb_password" "${IRONIC_IMAGE}" + # See this file for additional env vars you may want to pass, like IP and INTERFACE docker run -d --net host --privileged --name ironic \ - --env MARIADB_PASSWORD=$mariadb_password \ - -v $IRONIC_DATA_DIR:/shared ${IRONIC_IMAGE} + --env-file "${PWD}/ironic.env" \ + --env "MARIADB_PASSWORD=$mariadb_password" \ + -v "$IRONIC_DATA_DIR:/shared" "${IRONIC_IMAGE}" # Start Ironic Inspector docker run -d --net host --privileged --name ironic-inspector \ - "${IRONIC_INSPECTOR_IMAGE}" + --env-file "${PWD}/ironic.env" \ + -v "$IRONIC_DATA_DIR:/shared" "${IRONIC_INSPECTOR_IMAGE}" } function remove_k8s_noschedule_taint { @@ -131,6 +147,19 @@ function install_dhcp { kubectl create -f $PWD/04_dhcp.yaml } +function create_ironic_env { + cat < ${PWD}/ironic.env +PROVISIONING_INTERFACE=provisioning +DHCP_RANGE=172.22.0.10,172.22.0.100 +DEPLOY_KERNEL_URL=http://172.22.0.1/images/ironic-python-agent.kernel +DEPLOY_RAMDISK_URL=http://172.22.0.1/images/ironic-python-agent.initramfs +IRONIC_ENDPOINT=http://172.22.0.1:6385/v1/ +IRONIC_INSPECTOR_ENDPOINT=http://172.22.0.1:5050/v1/ +CACHEURL=http://172.22.0.1/images +IRONIC_FAST_TRACK=false +EOF +} + function install { #Kubeadm usage is deprecated in v1,0,0 version #install_kubernetes @@ -142,6 +171,7 @@ function install { #install_podman #Todo - error handling mechanism + create_ironic_env install_ironic_container install_dhcp } diff --git a/env/metal3/06_host_cleanup.sh b/env/metal3/06_host_cleanup.sh index 15792b2..641e31e 100755 --- a/env/metal3/06_host_cleanup.sh +++ b/env/metal3/06_host_cleanup.sh @@ -5,9 +5,9 @@ LIBDIR="$(dirname "$PWD")" source $LIBDIR/lib/common.sh # Kill and remove the running ironic containers -for name in ironic ironic-inspector dnsmasq httpd mariadb; do - sudo docker ps | grep -w "$name$" && sudo docker kill $name - sudo docker ps --all | grep -w "$name$" && sudo docker rm $name -f +for name in ironic ironic-inspector dnsmasq httpd mariadb ipa-downloader; do + sudo docker ps | grep -w "$name$" && sudo docker kill "$name" + sudo docker ps --all | grep -w "$name$" && sudo docker rm "$name" -f done ip link set provisioning down -- 2.16.6