Add bashate verification and fix shell errors
[icn.git] / deploy / metal3 / scripts / metal3.sh
index f268d8b..48f350e 100755 (executable)
@@ -1,5 +1,4 @@
 #!/bin/bash
-set -ex
 
 LIBDIR="$(dirname "$(dirname "$(dirname "$PWD")")")"
 
@@ -14,7 +13,7 @@ if [[ $EUID -ne 0 ]]; then
     exit 1
 fi
 
-function get_default_inteface_ipaddress() {
+function get_default_inteface_ipaddress {
     local _ip=$1
     local _default_interface=$(awk '$2 == 00000000 { print $1 }' /proc/net/route)
     local _ipv4address=$(ip addr show dev $_default_interface | awk '$1 == "inet" { sub("/.*", "", $2); print $2 }')
@@ -22,10 +21,10 @@ function get_default_inteface_ipaddress() {
 }
 
 create_ssh_key() {
-       #ssh key for compute node to communicate back to bootstrap server
-       mkdir -p $BUILD_DIR/ssh_key
-       ssh-keygen -C "compute.icn.akraino.lfedge.org" -f $BUILD_DIR/ssh_key/id_rsa
-       cat $BUILD_DIR/ssh_key/id_rsa.pub >> $HOME/.ssh/authorized_keys
+    #ssh key for compute node to communicate back to bootstrap server
+    mkdir -p $BUILD_DIR/ssh_key
+    ssh-keygen -C "compute.icn.akraino.lfedge.org" -f $BUILD_DIR/ssh_key/id_rsa
+    cat $BUILD_DIR/ssh_key/id_rsa.pub >> $HOME/.ssh/authorized_keys
 }
 
 set_compute_key() {
@@ -33,38 +32,38 @@ _SSH_LOCAL_KEY=$(cat $BUILD_DIR/ssh_key/id_rsa)
 cat << EOF
 write_files:
 - path: /opt/ssh_id_rsa
-  owner: root:root
-  permissions: '0600'
-  content: |
+    owner: root:root
+    permissions: '0600'
+    content: |
     $_SSH_LOCAL_KEY
 EOF
 }
 
 provision_compute_node() {
-       IMAGE_URL=http://172.22.0.1/images/${BM_IMAGE}
-       IMAGE_CHECKSUM=http://172.22.0.1/images/${BM_IMAGE}.md5sum
-
-       if [ ! -d $GOPATH/src/github.com/metal3-io/baremetal-operator ]; then
-               go get github.com/metal3-io/baremetal-operator
-       fi
-
-       go run $GOPATH/src/github.com/metal3-io/baremetal-operator/cmd/make-bm-worker/main.go \
-           -address "ipmi://$COMPUTE_IPMI_ADDRESS" \
-                  -user "$COMPUTE_IPMI_USER" \
-           -password "$COMPUTE_IPMI_PASSWORD" \
-           "$COMPUTE_NODE_NAME" > $COMPUTE_NODE_NAME-bm-node.yaml
-
-       printf "  image:" >> $COMPUTE_NODE_NAME-bm-node.yaml
-       printf "\n    url: ""%s" "$IMAGE_URL" >> $COMPUTE_NODE_NAME-bm-node.yaml
-       printf "\n    checksum: ""%s" "$IMAGE_CHECKSUM" >> $COMPUTE_NODE_NAME-bm-node.yaml
-       printf "\n  userData:" >> $COMPUTE_NODE_NAME-bm-node.yaml
-       printf "\n    name: ""%s" "$COMPUTE_NODE_NAME""-user-data" >> $COMPUTE_NODE_NAME-bm-node.yaml
-       printf "\n    namespace: metal3\n" >> $COMPUTE_NODE_NAME-bm-node.yaml
-       kubectl apply -f $COMPUTE_NODE_NAME-bm-node.yaml
+    IMAGE_URL=http://172.22.0.1/images/${BM_IMAGE}
+    IMAGE_CHECKSUM=http://172.22.0.1/images/${BM_IMAGE}.md5sum
+
+    if [ ! -d $GOPATH/src/github.com/metal3-io/baremetal-operator ]; then
+    go get github.com/metal3-io/baremetal-operator
+    fi
+
+    go run $GOPATH/src/github.com/metal3-io/baremetal-operator/cmd/make-bm-worker/main.go \
+       -address "ipmi://$COMPUTE_IPMI_ADDRESS" \
+       -user "$COMPUTE_IPMI_USER" \
+       -password "$COMPUTE_IPMI_PASSWORD" \
+       "$COMPUTE_NODE_NAME" > $COMPUTE_NODE_NAME-bm-node.yaml
+
+    printf "  image:" >> $COMPUTE_NODE_NAME-bm-node.yaml
+    printf "\n    url: ""%s" "$IMAGE_URL" >> $COMPUTE_NODE_NAME-bm-node.yaml
+    printf "\n    checksum: ""%s" "$IMAGE_CHECKSUM" >> $COMPUTE_NODE_NAME-bm-node.yaml
+    printf "\n  userData:" >> $COMPUTE_NODE_NAME-bm-node.yaml
+    printf "\n    name: ""%s" "$COMPUTE_NODE_NAME""-user-data" >> $COMPUTE_NODE_NAME-bm-node.yaml
+    printf "\n    namespace: metal3\n" >> $COMPUTE_NODE_NAME-bm-node.yaml
+    kubectl apply -f $COMPUTE_NODE_NAME-bm-node.yaml -n metal3
 }
 
 deprovision_compute_node() {
-       kubectl patch baremetalhost $COMPUTE_NODE_NAME -n metal3 --type merge \
+    kubectl patch baremetalhost $COMPUTE_NODE_NAME -n metal3 --type merge \
     -p '{"spec":{"image":{"url":"","checksum":""}}}'
 }
 
@@ -72,67 +71,67 @@ set_compute_ssh_config() {
 get_default_inteface_ipaddress default_addr
 cat << EOF
 - path: /root/.ssh/config
-  owner: root:root
-  permissions: '0600'
-  content: |
+    owner: root:root
+    permissions: '0600'
+    content: |
     Host bootstrapmachine $default_addr
     HostName $default_addr
     IdentityFile /opt/ssh_id_rsa
     User $USER
 - path: /etc/apt/sources.list
-  owner: root:root
-  permissions: '0665'
-  content: |
-       deb [trusted=yes] ssh://$USER@$default_addr:$LOCAL_APT_REPO ./
+    owner: root:root
+    permissions: '0665'
+    content: |
+    deb [trusted=yes] ssh://$USER@$default_addr:$LOCAL_APT_REPO ./
 EOF
 }
 
 create_userdata() {
-       printf "#cloud-config\n" > userdata.yaml
-       if [ -n "$COMPUTE_NODE_PASSWORD" ]; then
-               printf "password: ""%s" "$COMPUTE_NODE_PASSWORD" >> userdata.yaml
-               printf "\nchpasswd: {expire: False}\n" >> userdata.yaml
-               printf "ssh_pwauth: True\n" >> userdata.yaml
-       fi
-
-       if [ -n "$COMPUTE_NODE_FQDN" ]; then
-               printf "fqdn: ""%s" "$COMPUTE_NODE_FQDN" >> userdata.yaml
-               printf "\n" >> userdata.yaml
-       fi
-
-       printf "ssh_authorized_keys:\n  - " >> userdata.yaml
-
-       if [ -f $HOME/.ssh/id_rsa.pub ]; then
-               yes y | ssh-keygen -t rsa -N "" -f $HOME/.ssh/id_rsa
-       fi
-
-       cat $HOME/.ssh/id_rsa.pub >> userdata.yaml
-       printf "\n" >> userdata.yaml
+    printf "#cloud-config\n" > userdata.yaml
+    if [ -n "$COMPUTE_NODE_PASSWORD" ]; then
+    printf "password: ""%s" "$COMPUTE_NODE_PASSWORD" >> userdata.yaml
+    printf "\nchpasswd: {expire: False}\n" >> userdata.yaml
+    printf "ssh_pwauth: True\n" >> userdata.yaml
+    fi
+
+    if [ -n "$COMPUTE_NODE_FQDN" ]; then
+    printf "fqdn: ""%s" "$COMPUTE_NODE_FQDN" >> userdata.yaml
+    printf "\n" >> userdata.yaml
+    fi
+    printf "disable_root: false\n" >> userdata.yaml
+    printf "ssh_authorized_keys:\n  - " >> userdata.yaml
+
+    if [ ! -f $HOME/.ssh/id_rsa.pub ]; then
+    yes y | ssh-keygen -t rsa -N "" -f $HOME/.ssh/id_rsa
+    fi
+
+    cat $HOME/.ssh/id_rsa.pub >> userdata.yaml
+    printf "\n" >> userdata.yaml
 }
 
 apply_userdata_credential() {
-       cat <<EOF > ./$COMPUTE_NODE_NAME-user-data.yaml
+    cat <<EOF > ./$COMPUTE_NODE_NAME-user-data.yaml
 apiVersion: v1
 data:
-  userData: $(base64 -w 0 userdata.yaml)
+    userData: $(base64 -w 0 userdata.yaml)
 kind: Secret
 metadata:
-  name: $COMPUTE_NODE_NAME-user-data
-  namespace: metal3
+    name: $COMPUTE_NODE_NAME-user-data
+    namespace: metal3
 type: Opaque
 EOF
-       kubectl apply -n metal3 -f $COMPUTE_NODE_NAME-user-data.yaml
+    kubectl apply -n metal3 -f $COMPUTE_NODE_NAME-user-data.yaml
 }
 
 launch_baremetal_operator() {
-       if [ ! -d $GOPATH/src/github.com/metal3-io/baremetal-operator ]; then
+    if [ ! -d $GOPATH/src/github.com/metal3-io/baremetal-operator ]; then
         go get github.com/metal3-io/baremetal-operator
     fi
 
-       pushd $GOPATH/src/github.com/metal3-io/baremetal-operator
-               make deploy
-       popd
-               
+    pushd $GOPATH/src/github.com/metal3-io/baremetal-operator
+    make deploy
+    popd
+
 }
 
 if [ "$1" == "launch" ]; then
@@ -147,8 +146,8 @@ fi
 
 if [ "$1" == "provision" ]; then
     create_userdata
-       apply_userdata_credential
-       provision_compute_node
+    apply_userdata_credential
+    provision_compute_node
     exit 0
 fi