Update make-bm-worker call for Go 1.16
[icn.git] / deploy / metal3-vm / 03_launch_mgmt_cluster.sh
index d593380..b349856 100755 (executable)
@@ -1,5 +1,5 @@
-#!/bin/bash
-set -xe
+#!/usr/bin/env bash
+set -eux -o pipefail
 
 # shellcheck disable=SC1091
 source lib/logging.sh
@@ -51,7 +51,7 @@ function clone_repos {
 }
 
 function launch_baremetal_operator {
-    docker pull integratedcloudnative/baremetal-operator:v1.0-icn
+    docker pull $IRONIC_BAREMETAL_IMAGE
     kubectl apply -f $BMODIR/namespace/namespace.yaml
     kubectl apply -f $BMODIR/rbac/service_account.yaml -n metal3
     kubectl apply -f $BMODIR/rbac/role.yaml -n metal3
@@ -60,10 +60,10 @@ function launch_baremetal_operator {
     kubectl apply -f $BMODIR/operator/no_ironic/operator.yaml -n metal3
 }
 
-network_config_files() {
-cat << 'EOF'
+function cloud_init_scripts() {
+    cat << 'EOF'
 write_files:
-- path: /opt/ironic_net.sh
+- path: /var/lib/cloud/scripts/per-boot/run_dhclient.sh
   owner: root:root
   permissions: '0777'
   content: |
@@ -73,11 +73,11 @@ write_files:
         sudo ifconfig `basename $intf` up
         sudo dhclient -nw `basename $intf`
     done
-runcmd:
- - [ /opt/ironic_net.sh ]
 EOF
 }
 
+# documentation for the values below may be found at
+# https://cloudinit.readthedocs.io/en/latest/topics/modules.html
 create_userdata() {
     name="$1"
     COMPUTE_NODE_FQDN="$name.akraino.icn.org"
@@ -100,7 +100,7 @@ create_userdata() {
     fi
 
     cat $HOME/.ssh/id_rsa.pub >> $name-userdata.yaml
-    network_config_files >> $name-userdata.yaml
+    cloud_init_scripts >> $name-userdata.yaml
     printf "\n" >> $name-userdata.yaml
 }
 
@@ -120,10 +120,10 @@ EOF
 }
 
 function make_bm_hosts {
-    while read -r name address user password mac; do
+    while IFS=',' read -r name address user password mac; do
         create_userdata $name
         apply_userdata_credential $name
-        go run "${BMOPATH}"/cmd/make-bm-worker/main.go \
+        GO111MODULE=auto go run "${BMOPATH}"/cmd/make-bm-worker/main.go \
            -address "$address" \
            -password "$password" \
            -user "$user" \
@@ -134,7 +134,9 @@ function make_bm_hosts {
         printf "\n    checksum: ""%s" "${IMAGE_CHECKSUM}" >> $name-bm-node.yaml
         printf "\n  userData:" >> $name-bm-node.yaml
         printf "\n    name: ""%s" "$name""-user-data" >> $name-bm-node.yaml
-        printf "\n    namespace: metal3\n" >> $name-bm-node.yaml
+        printf "\n    namespace: metal3" >> $name-bm-node.yaml
+        printf "\n  rootDeviceHints:" >> $name-bm-node.yaml
+        printf "\n    minSizeGigabytes: 48\n" >> $name-bm-node.yaml
         kubectl apply -f $name-bm-node.yaml -n metal3
     done
 }