From 8206d92d9942d980c6280c39f4d4ef7b0b24a898 Mon Sep 17 00:00:00 2001 From: "r.kuralamudhan" Date: Wed, 13 Nov 2019 03:59:09 +0000 Subject: [PATCH] refactoring metal3 code Signed-off-by: r.kuralamudhan Change-Id: I2e78d82b563a57945e5354b9f32a160695972b92 --- Makefile | 2 ++ deploy/metal3/scripts/01_metal3.sh | 13 +++++++++++++ env/lib/common.sh | 8 ++++---- env/metal3/01_install_package.sh | 7 ++++--- env/metal3/02_configure.sh | 12 ++++++++---- env/metal3/03_launch_prereq.sh | 30 ++++++++++++++---------------- env/metal3/06_host_cleanup.sh | 18 +++++++----------- user_config.sh | 14 +++++++++----- 8 files changed, 61 insertions(+), 43 deletions(-) diff --git a/Makefile b/Makefile index 3af3ff9..59c3a36 100644 --- 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 diff --git a/deploy/metal3/scripts/01_metal3.sh b/deploy/metal3/scripts/01_metal3.sh index 0cc7ba0..6e6a1e9 100755 --- a/deploy/metal3/scripts/01_metal3.sh +++ b/deploy/metal3/scripts/01_metal3.sh @@ -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 } diff --git a/env/lib/common.sh b/env/lib/common.sh index 09b548e..52d4f61 100755 --- a/env/lib/common.sh +++ b/env/lib/common.sh @@ -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"} diff --git a/env/metal3/01_install_package.sh b/env/metal3/01_install_package.sh index 8aa458f..ef82f46 100755 --- a/env/metal3/01_install_package.sh +++ b/env/metal3/01_install_package.sh @@ -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 diff --git a/env/metal3/02_configure.sh b/env/metal3/02_configure.sh index eabf780..490c438 100755 --- a/env/metal3/02_configure.sh +++ b/env/metal3/02_configure.sh @@ -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 diff --git a/env/metal3/03_launch_prereq.sh b/env/metal3/03_launch_prereq.sh index 771c765..ae42c50 100755 --- a/env/metal3/03_launch_prereq.sh +++ b/env/metal3/03_launch_prereq.sh @@ -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 } diff --git a/env/metal3/06_host_cleanup.sh b/env/metal3/06_host_cleanup.sh index 9e8fbde..15792b2 100755 --- a/env/metal3/06_host_cleanup.sh +++ b/env/metal3/06_host_cleanup.sh @@ -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 diff --git a/user_config.sh b/user_config.sh index 2b53a51..f0ed1f7 100644 --- a/user_config.sh +++ b/user_config.sh @@ -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" -- 2.16.6