refactoring metal3 code 65/1965/1
authorr.kuralamudhan <kuralamudhan.ramakrishnan@intel.com>
Wed, 13 Nov 2019 03:59:09 +0000 (03:59 +0000)
committerr.kuralamudhan <kuralamudhan.ramakrishnan@intel.com>
Wed, 13 Nov 2019 04:00:06 +0000 (04:00 +0000)
Signed-off-by: r.kuralamudhan <kuralamudhan.ramakrishnan@intel.com>
Change-Id: I2e78d82b563a57945e5354b9f32a160695972b92

Makefile
deploy/metal3/scripts/01_metal3.sh
env/lib/common.sh
env/metal3/01_install_package.sh
env/metal3/02_configure.sh
env/metal3/03_launch_prereq.sh
env/metal3/06_host_cleanup.sh
user_config.sh

index 3af3ff9..59c3a36 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -19,6 +19,7 @@ help:
 install: bmh_all
 
 bmh_preinstall:
+       source user_config.sh && env && \
        pushd $(BMDIR) && ./01_install_package.sh && ./02_configure.sh && \
        ./03_launch_prereq.sh && popd
 
@@ -30,6 +31,7 @@ bmh_clean_host:
        pushd $(BMDIR) && ./06_host_cleanup.sh && popd
 
 bmh_install:
+       source user_config.sh && env && \
        pushd $(METAL3DIR) && ./01_metal3.sh launch && \
         ./01_metal3.sh provision && ./02_verify.sh && popd
 
index 0cc7ba0..6e6a1e9 100755 (executable)
@@ -116,8 +116,21 @@ write_files:
         sudo ifconfig `basename $intf` up
         sudo dhclient -nw `basename $intf`
     done
+EOF
+cat << EOF
+- path: /opt/user_net.sh
+  owner: root:root
+  permissions: '0777'
+  content: |
+    #!/usr/bin/env bash
+    set -xe
+    route add default gw $PROVIDER_NETWORK_GATEWAY
+    sed -i -e 's/^#DNS=.*/DNS=$PROVIDER_NETWORK_DNS/g' /etc/systemd/resolved.conf
+    systemctl daemon-reload
+    systemctl restart systemd-resolved
 runcmd:
  - [ /opt/ironic_net.sh ]
+ - [ /opt/user_net.sh ]
 EOF
 }
 
index 09b548e..52d4f61 100755 (executable)
@@ -1,9 +1,5 @@
 #!/bin/bash
 
-ICNDIR="$(dirname "$(dirname "$PWD")")"
-echo $ICNDIR
-source $ICNDIR/user_config.sh
-
 #supported OS version
 UBUNTU_BIONIC=${UBUNTU_BIONIC:-Ubuntu 18.04.2 LTS}
 
@@ -25,6 +21,10 @@ BS_DHCP_INTERFACE=${BS_DHCP_INTERFACE:-}
 BS_DHCP_INTERFACE_IP=${BS_DHCP_INTERFACE_IP:-}
 BS_DHCP_DIR=${BS_DHCP_DIR:-$DOWNLOAD_PATH/dhcp}
 
+#User Provider Network configuration
+PROVIDER_NETWORK_GATEWAY=${PROVIDER_NETWORK_GATEWAY:-}
+PROVIDER_NETWORK_DNS=${PROVIDER_NETWORK_DNS:-}
+
 #Ironic variables
 IRONIC_IMAGE=${IRONIC_IMAGE:-"quay.io/metal3-io/ironic:master"}
 IRONIC_INSPECTOR_IMAGE=${IRONIC_INSPECTOR_IMAGE:-"quay.io/metal3-io/ironic-inspector"}
index 8aa458f..ef82f46 100755 (executable)
@@ -106,9 +106,10 @@ EOF'
 install() {
     install_essential_packages
     install_ironic_packages $1
-    install_docker_packages $1
-    install_podman_packages $1
-    install_kubernetes_packages $1
+
+    #install_docker_packages $1
+    #install_podman_packages $1
+    #install_kubernetes_packages $1
 }
 
 if ["$1" == "-o"]; then
index eabf780..490c438 100755 (executable)
@@ -131,8 +131,11 @@ function configure_ironic {
        return
     fi
 
-    podman pull $IRONIC_IMAGE
-    podman pull $IRONIC_INSPECTOR_IMAGE
+    #Podman usage is deprecated for v1.0.0 release
+    #podman pull $IRONIC_IMAGE
+    docker pull $IRONIC_IMAGE
+    #podman pull $IRONIC_INSPECTOR_IMAGE
+    docker pull $IRONIC_INSPECTOR_IMAGE
 
     mkdir -p "$IRONIC_DATA_DIR/html/images"
     pushd $IRONIC_DATA_DIR/html/images
@@ -149,8 +152,9 @@ function configure_ironic {
 }
 
 function configure {
-    configure_kubeadm $1
-    configure_kubelet
+    #Kubeadm usage deprecated for v1.0.0 release
+    #configure_kubeadm $1
+    #configure_kubelet
     configure_ironic $1
     configure_dhcp_bridge
     configure_ironic_bridge
index 771c765..ae42c50 100755 (executable)
@@ -76,31 +76,28 @@ function check_k8s_node_status {
     fi
 }
 
-function install_podman {
+function install_ironic_container {
     # set password for mariadb
     mariadb_password=$(echo $(date;hostname)|sha256sum |cut -c-20)
 
-    # Create pod
-    podman pod create -n ironic-pod
-
     # Start dnsmasq, http, mariadb, and ironic containers using same image
-    podman run -d --net host --privileged --name dnsmasq  --pod ironic-pod \
+    docker run -d --net host --privileged --name dnsmasq \
         -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/rundnsmasq ${IRONIC_IMAGE}
 
-    podman run -d --net host --privileged --name httpd --pod ironic-pod \
+    docker run -d --net host --privileged --name httpd \
         -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/runhttpd ${IRONIC_IMAGE}
 
-    podman run -d --net host --privileged --name mariadb --pod ironic-pod \
+    docker run -d --net host --privileged --name mariadb \
         -v $IRONIC_DATA_DIR:/shared --entrypoint /bin/runmariadb \
         --env MARIADB_PASSWORD=$mariadb_password ${IRONIC_IMAGE}
 
-    podman run -d --net host --privileged --name ironic --pod ironic-pod \
+    docker run -d --net host --privileged --name ironic \
         --env MARIADB_PASSWORD=$mariadb_password \
         -v $IRONIC_DATA_DIR:/shared ${IRONIC_IMAGE}
 
     # Start Ironic Inspector
-    podman run -d --net host --privileged --name ironic-inspector \
-        --pod ironic-pod "${IRONIC_INSPECTOR_IMAGE}"
+    docker run -d --net host --privileged --name ironic-inspector \
+        "${IRONIC_INSPECTOR_IMAGE}"
 }
 
 function remove_k8s_noschedule_taint {
@@ -135,16 +132,17 @@ function install_dhcp {
 }
 
 function install {
+    #Kubeadm usage is deprecated in v1,0,0 version
     #install_kubernetes
-    install_k8s_single_node
-    check_cni_network $1
-    create_k8s_regular_user
-    check_k8s_node_status
-    remove_k8s_noschedule_taint
+    #install_k8s_single_node
+    #check_cni_network $1
+    #create_k8s_regular_user
+    #check_k8s_node_status
+    #remove_k8s_noschedule_taint
 
     #install_podman
     #Todo - error handling mechanism
-    install_podman
+    install_ironic_container
     install_dhcp
 }
 
index 9e8fbde..15792b2 100755 (executable)
@@ -6,15 +6,10 @@ source $LIBDIR/lib/common.sh
 
 # Kill and remove the running ironic containers
 for name in ironic ironic-inspector dnsmasq httpd mariadb; do
-    sudo podman ps | grep -w "$name$" && sudo podman kill $name
-    sudo podman ps --all | grep -w "$name$" && sudo podman rm $name -f
+    sudo docker ps | grep -w "$name$" && sudo docker kill $name
+    sudo docker ps --all | grep -w "$name$" && sudo docker rm $name -f
 done
 
-# Remove existing pod
-if  sudo podman  pod exists ironic-pod ; then
-    sudo podman  pod rm ironic-pod -f
-fi
-
 ip link set provisioning down
 brctl delbr provisioning
 
@@ -24,7 +19,8 @@ brctl delbr dhcp0
 rm -rf ${BS_DHCP_DIR}
 rm -rf ${IRONIC_DATA_DIR}
 
-kubeadm reset -f
-iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
-rm -rf $HOME/.kube/config
-rm -rf /var/lib/etcd
+#Kubeadm usage is deprecated in v1.0.0
+#kubeadm reset -f
+#iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
+#rm -rf $HOME/.kube/config
+#rm -rf /var/lib/etcd
index 2b53a51..f0ed1f7 100644 (file)
@@ -1,12 +1,16 @@
 #!/bin/bash
 
 #Local controller - Bootstrap cluster DHCP connection
-BS_DHCP_INTERFACE=${BS_DHCP_INTERFACE:-"ens513f0"}
-BS_DHCP_INTERFACE_IP=${BS_DHCP_INTERFACE_IP:-"172.31.1.1/24"}
+export BS_DHCP_INTERFACE="ens513f0"
+export BS_DHCP_INTERFACE_IP="172.31.1.1/24"
 
 #Ironic Metal3 settings for provisioning network
-IRONIC_INTERFACE=${IRONIC_INTERFACE:-"enp4s0f1"}
+export IRONIC_INTERFACE="enp4s0f1"
 
 #Ironic Metal3 setting for IPMI LAN Network
-IRONIC_IPMI_INTERFACE=${IRONIC_IPMI_INTERFACE:-"enp4s0f0"}
-IRONIC_IPMI_INTERFACE_IP=${IRONIC_IPMI_INTERFACE_IP:-"10.10.110.20"}
+export IRONIC_IPMI_INTERFACE="enp4s0f0"
+export IRONIC_IPMI_INTERFACE_IP="10.10.110.20"
+
+#User Network configuration
+export PROVIDER_NETWORK_GATEWAY="10.10.110.1"
+export PROVIDER_NETWORK_DNS="8.8.8.8"