adding icn version fixes in metal3 vm 92/3392/1
authorKuralamudhan Ramakrishnan <kuralamudhan.ramakrishnan@intel.com>
Tue, 28 Apr 2020 20:09:01 +0000 (20:09 +0000)
committerKuralamudhan Ramakrishnan <kuralamudhan.ramakrishnan@intel.com>
Tue, 28 Apr 2020 20:23:36 +0000 (20:23 +0000)
- adding fixes for the ubuntu installation
- adding the version
- adding clean up for directory

Signed-off-by: Kuralamudhan Ramakrishnan <kuralamudhan.ramakrishnan@intel.com>
Change-Id: Ic1402de69003dce3605c9cc8a5d8abe0ba90a22a

deploy/metal3-vm/.gitignore
deploy/metal3-vm/02_configure_host.sh
deploy/metal3-vm/03_launch_mgmt_cluster.sh
deploy/metal3-vm/05_host_cleanup.sh
deploy/metal3-vm/lib/common.sh
deploy/metal3-vm/ubuntu_install_requirements.sh

index 1ef75de..22fc63a 100644 (file)
@@ -1,4 +1,5 @@
 logs
+ironic.env
 config_*.sh
 !config_example.sh
 master-0*.yaml
index cf1ca17..e2d3c77 100755 (executable)
@@ -145,11 +145,14 @@ if [[ "$MANAGE_BR_BRIDGE" == "y" && $OS == "centos" ]] ; then
   fi
 fi
 
+for name in ironic ironic-inspector dnsmasq httpd mariadb ipa-downloader; do                  
+    sudo "${CONTAINER_RUNTIME}" ps | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" kill $name
+    sudo "${CONTAINER_RUNTIME}" ps --all | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" rm $name -f
+done
+rm -rf "$IRONIC_DATA_DIR"
+
 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
 BM_IMAGE=${BM_IMAGE:-"bionic-server-cloudimg-amd64.img"}
 BM_IMAGE_URL=${BM_IMAGE_URL:-"https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img"}
 if [ ! -f ${BM_IMAGE} ] ; then
@@ -158,20 +161,14 @@ if [ ! -f ${BM_IMAGE} ] ; then
 fi
 popd
 
-for IMAGE_VAR in IRONIC_IMAGE IRONIC_INSPECTOR_IMAGE ; do
+for IMAGE_VAR in IRONIC_IMAGE IRONIC_INSPECTOR_IMAGE IPA_DOWNLOADER_IMAGE; do
     IMAGE=${!IMAGE_VAR}
     sudo "${CONTAINER_RUNTIME}" pull "$IMAGE"
 done
 
-for name in ironic ironic-inspector dnsmasq httpd mariadb; do
-    sudo "${CONTAINER_RUNTIME}" ps | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" kill $name
-    sudo "${CONTAINER_RUNTIME}" ps --all | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" rm $name -f
-done
-
 # set password for mariadb
 mariadb_password="$(echo "$(date;hostname)"|sha256sum |cut -c-20)"
 
-
 if [[ "${CONTAINER_RUNTIME}" == "podman" ]]; then
   # Remove existing pod
   if  sudo "${CONTAINER_RUNTIME}" pod exists ironic-pod ; then
@@ -184,22 +181,48 @@ else
   POD_NAME=""
 fi
 
-mkdir -p "$IRONIC_DATA_DIR"
-
-# Start dnsmasq, http, mariadb, and ironic containers using same image
-sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name dnsmasq  ${POD_NAME} \
-     -v "$IRONIC_DATA_DIR":/shared --entrypoint /bin/rundnsmasq "${IRONIC_IMAGE}"
+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
 
-sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name httpd ${POD_NAME} \
-     -v "$IRONIC_DATA_DIR":/shared --entrypoint /bin/runhttpd "${IRONIC_IMAGE}"
+# Start image downloader container
+sudo "${CONTAINER_RUNTIME}" 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
 
-sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name mariadb ${POD_NAME} \
-     -v "$IRONIC_DATA_DIR":/shared --entrypoint /bin/runmariadb \
-     --env MARIADB_PASSWORD="$mariadb_password" "${IRONIC_IMAGE}"
+sudo "${CONTAINER_RUNTIME}" wait ipa-downloader
 
-sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name ironic ${POD_NAME} \
-     --env MARIADB_PASSWORD="$mariadb_password" \
-     -v "$IRONIC_DATA_DIR":/shared "${IRONIC_IMAGE}"
+# Start dnsmasq, http, mariadb, and ironic containers using same image
+# See this file for env vars you can set, like IP, DHCP_RANGE, INTERFACE
+sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name dnsmasq \
+    --env-file "${PWD}/ironic.env" \
+    -v "$IRONIC_DATA_DIR:/shared" --entrypoint /bin/rundnsmasq "${IRONIC_IMAGE}"
+
+# For available env vars, see:
+sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name httpd \
+    --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
+sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name mariadb \
+    --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
+sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name ironic \
+    --env-file "${PWD}/ironic.env" \
+    --env "MARIADB_PASSWORD=$mariadb_password" \
+    -v "$IRONIC_DATA_DIR:/shared" "${IRONIC_IMAGE}"
 
 # Start Ironic Inspector
-sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name ironic-inspector ${POD_NAME} "${IRONIC_INSPECTOR_IMAGE}"
+sudo "${CONTAINER_RUNTIME}" run -d --net host --privileged --name ironic-inspector \
+    --env-file "${PWD}/ironic.env" \
+    -v "$IRONIC_DATA_DIR:/shared" "${IRONIC_INSPECTOR_IMAGE}"
index ab25c73..ef9f7d6 100755 (executable)
@@ -23,8 +23,8 @@ M3PATH="${GOPATH}/src/github.com/metal3-io"
 BMOPATH="${M3PATH}/baremetal-operator"
 
 BMOREPO="${BMOREPO:-https://github.com/metal3-io/baremetal-operator.git}"
-BMOBRANCH="${BMOBRANCH:-3d40caa29dce82878d83aeb7f8dab4dc4a856160}"
-FORCE_REPO_UPDATE="${FORCE_REPO_UPDATE:-false}"
+BMOBRANCH="${BMOBRANCH:-10eb5aa3e614d0fdc6315026ebab061cbae6b929}"
+FORCE_REPO_UPDATE="${FORCE_REPO_UPDATE:-true}"
 
 BMO_RUN_LOCAL="${BMO_RUN_LOCAL:-false}"
 COMPUTE_NODE_PASSWORD="${COMPUTE_NODE_PASSWORD:-mypasswd}"
@@ -49,15 +49,29 @@ function clone_repos {
 }
 
 function launch_baremetal_operator {
+    docker pull integratedcloudnative/baremetal-operator:v1.0-icn
+    docker tag integratedcloudnative/baremetal-operator:v1.0-icn \
+        quay.io/metal3-io/baremetal-operator:master
+
     pushd "${BMOPATH}"
     if [ "${BMO_RUN_LOCAL}" = true ]; then
-      touch bmo.out.log
-      touch bmo.err.log
-      make deploy
-      kubectl scale deployment metal3-baremetal-operator -n metal3 --replicas=0
-      nohup make run >> bmo.out.log 2>>bmo.err.log &
+        touch bmo.out.log
+        touch bmo.err.log
+        kubectl apply -f deploy/namespace/namespace.yaml
+        kubectl apply -f deploy/rbac/service_account.yaml -n metal3
+        kubectl apply -f deploy/rbac/role.yaml -n metal3
+        kubectl apply -f deploy/rbac/role_binding.yaml
+        kubectl apply -f deploy/crds/metal3.io_baremetalhosts_crd.yaml
+        kubectl apply -f deploy/operator/no_ironic/operator.yaml -n metal3
+        kubectl scale deployment metal3-baremetal-operator -n metal3 --replicas=0
+        nohup make run >> bmo.out.log 2>>bmo.err.log &
     else
-      make deploy
+        kubectl apply -f deploy/namespace/namespace.yaml
+        kubectl apply -f deploy/rbac/service_account.yaml -n metal3
+        kubectl apply -f deploy/rbac/role.yaml -n metal3
+        kubectl apply -f deploy/rbac/role_binding.yaml
+        kubectl apply -f deploy/crds/metal3.io_baremetalhosts_crd.yaml
+        kubectl apply -f deploy/operator/no_ironic/operator.yaml -n metal3
     fi
     popd
 }
index 5c49a35..0c83b56 100755 (executable)
@@ -7,7 +7,7 @@ source lib/logging.sh
 source lib/common.sh
 
 # Kill and remove the running ironic containers
-for name in ironic ironic-inspector dnsmasq httpd mariadb; do
+for name in ironic ironic-inspector dnsmasq httpd mariadb ipa-downloader; do
     sudo "${CONTAINER_RUNTIME}" ps | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" kill $name
     sudo "${CONTAINER_RUNTIME}" ps --all | grep -w "$name$" && sudo "${CONTAINER_RUNTIME}" rm $name -f
 done
@@ -53,3 +53,6 @@ if [ "$MANAGE_BR_BRIDGE" == "y" ]; then
     sudo ifdown baremetal || true
     sudo rm -f /etc/sysconfig/network-scripts/ifcfg-baremetal || true
 fi
+
+rm -rf $WORKING_DIR
+rm -rf $IRONIC_DATA_DIR
index 7a32c49..034c243 100644 (file)
@@ -36,7 +36,8 @@ ROOT_DISK_NAME=${ROOT_DISK_NAME-"/dev/sda"}
 CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-"docker"}
 
 export EXTERNAL_SUBNET="192.168.111.0/24"
-
+#Ironic data directory
+IRONIC_DATA_DIR=${IRONIC_DATA_DIR:-"/opt/ironic"}
 export SSH_PUB_KEY=~/.ssh/id_rsa.pub
 
 FILESYSTEM=${FILESYSTEM:="/"}
@@ -50,9 +51,10 @@ export NUM_WORKERS=${NUM_WORKERS:-"1"}
 export VM_EXTRADISKS=${VM_EXTRADISKS:-"false"}
 
 # Ironic vars
-export IRONIC_IMAGE=${IRONIC_IMAGE:-"quay.io/metal3-io/ironic:master"}
-export IRONIC_INSPECTOR_IMAGE=${IRONIC_INSPECTOR_IMAGE:-"quay.io/metal3-io/ironic-inspector"}
-export IRONIC_DATA_DIR="$WORKING_DIR/ironic"
+export IRONIC_IMAGE=${IRONIC_IMAGE:-"integratedcloudnative/ironic:v1.0-icn"}
+export IRONIC_INSPECTOR_IMAGE=${IRONIC_INSPECTOR_IMAGE:-"integratedcloudnative/ironic-inspector:v1.0-icn"}
+export IRONIC_BAREMETAL_IMAGE=${IRONIC_BAREMETAL_IMAGE:-"integratedcloudnative/baremetal-operator:v1.0-icn"}
+export IPA_DOWNLOADER_IMAGE=${IPA_DOWNLOADER_IMAGE:-"integratedcloudnative/ironic-ipa-downloader:v1.0-icn"}
 
 # Verify requisites/permissions
 # Connect to system libvirt
index a72152c..503813a 100755 (executable)
@@ -130,11 +130,11 @@ sudo pip install \
   ansible==2.8.2 \
   lolcat \
   yq \
-  virtualbmc \
+  virtualbmc==1.6.0 \
   python-ironicclient \
   python-ironic-inspector-client \
   lxml \
   netaddr \
   requests \
   setuptools \
-  libvirt-python \
+  libvirt-python==5.7.0 \