disable the fast track in metal3 env 52/2252/1
authorr.kuralamudhan <kuralamudhan.ramakrishnan@intel.com>
Sat, 22 Feb 2020 07:23:02 +0000 (23:23 -0800)
committerr.kuralamudhan <kuralamudhan.ramakrishnan@intel.com>
Sat, 22 Feb 2020 07:23:02 +0000 (23:23 -0800)
Change-Id: I3488cd46bc27b731db343f9380ba9b353e2596d1

env/lib/common.sh
env/metal3/02_configure.sh
env/metal3/03_launch_prereq.sh
env/metal3/06_host_cleanup.sh

index 52d4f61..4bc2bd4 100755 (executable)
@@ -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"}
index 490c438..3117027 100755 (executable)
@@ -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
index ae42c50..3f6fc6e 100755 (executable)
@@ -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 <<EOF > ${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
 }
index 15792b2..641e31e 100755 (executable)
@@ -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