Browse code

Merge "Add option to serve PXE for baremetal from nova-network"

Jenkins authored on 2013/07/31 12:59:56
Showing 3 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,3 @@
0
+enable-tftp
1
+tftp-root=/tftpboot
2
+dhcp-boot=pxelinux.0
... ...
@@ -80,6 +80,15 @@ BM_USE_FAKE_ENV=`trueorfalse False $BM_USE_FAKE_ENV`
80 80
 # change the virtualization type: --engine qemu
81 81
 BM_POSEUR_EXTRA_OPTS=${BM_POSEUR_EXTRA_OPTS:-}
82 82
 
83
+# To provide PXE, configure nova-network's dnsmasq rather than run the one
84
+# dedicated to baremetal. When enable this, make sure these conditions are
85
+# fulfilled:
86
+#  1) nova-compute and nova-network runs on the same host
87
+#  2) nova-network uses FlatDHCPManager
88
+# NOTE: the other BM_DNSMASQ_* have no effect on the behavior if this option
89
+#       is enabled.
90
+BM_DNSMASQ_FROM_NOVA_NETWORK=`trueorfalse False $BM_DNSMASQ_FROM_NOVA_NETWORK`
91
+
83 92
 # BM_DNSMASQ_IFACE should match FLAT_NETWORK_BRIDGE
84 93
 if [ "$BM_USE_FAKE_ENV" ]; then
85 94
     BM_DNSMASQ_IFACE=${BM_DNSMASQ_IFACE:-br99}
... ...
@@ -1049,6 +1049,11 @@ if is_service_enabled nova; then
1049 1049
         iniset $NOVA_CONF baremetal driver $BM_DRIVER
1050 1050
         iniset $NOVA_CONF baremetal power_manager $BM_POWER_MANAGER
1051 1051
         iniset $NOVA_CONF baremetal tftp_root /tftpboot
1052
+        if [[ "$BM_DNSMASQ_FROM_NOVA_NETWORK" = "True" ]]; then
1053
+            BM_DNSMASQ_CONF=$NOVA_CONF_DIR/dnsmasq-for-baremetal-from-nova-network.conf
1054
+            sudo cp "$FILES/dnsmasq-for-baremetal-from-nova-network.conf" "$BM_DNSMASQ_CONF"
1055
+            iniset $NOVA_CONF DEFAULT dnsmasq_config_file "$BM_DNSMASQ_CONF"
1056
+        fi
1052 1057
 
1053 1058
         # Define extra baremetal nova conf flags by defining the array ``EXTRA_BAREMETAL_OPTS``.
1054 1059
         for I in "${EXTRA_BAREMETAL_OPTS[@]}"; do
... ...
@@ -1294,15 +1299,16 @@ if is_service_enabled nova && is_baremetal; then
1294 1294
        create_baremetal_flavor $BM_DEPLOY_KERNEL_ID $BM_DEPLOY_RAMDISK_ID
1295 1295
 
1296 1296
     # otherwise user can manually add it later by calling nova-baremetal-manage
1297
-    # otherwise user can manually add it later by calling nova-baremetal-manage
1298 1297
     [[ -n "$BM_FIRST_MAC" ]] && add_baremetal_node
1299 1298
 
1300
-    # NOTE: we do this here to ensure that our copy of dnsmasq is running
1301
-    sudo pkill dnsmasq || true
1302
-    sudo dnsmasq --conf-file= --port=0 --enable-tftp --tftp-root=/tftpboot \
1303
-        --dhcp-boot=pxelinux.0 --bind-interfaces --pid-file=/var/run/dnsmasq.pid \
1304
-        --interface=$BM_DNSMASQ_IFACE --dhcp-range=$BM_DNSMASQ_RANGE \
1305
-        ${BM_DNSMASQ_DNS:+--dhcp-option=option:dns-server,$BM_DNSMASQ_DNS}
1299
+    if [[ "$BM_DNSMASQ_FROM_NOVA_NETWORK" = "False" ]]; then
1300
+        # NOTE: we do this here to ensure that our copy of dnsmasq is running
1301
+        sudo pkill dnsmasq || true
1302
+        sudo dnsmasq --conf-file= --port=0 --enable-tftp --tftp-root=/tftpboot \
1303
+            --dhcp-boot=pxelinux.0 --bind-interfaces --pid-file=/var/run/dnsmasq.pid \
1304
+            --interface=$BM_DNSMASQ_IFACE --dhcp-range=$BM_DNSMASQ_RANGE \
1305
+            ${BM_DNSMASQ_DNS:+--dhcp-option=option:dns-server,$BM_DNSMASQ_DNS}
1306
+    fi
1306 1307
     # ensure callback daemon is running
1307 1308
     sudo pkill nova-baremetal-deploy-helper || true
1308 1309
     screen_it baremetal "nova-baremetal-deploy-helper"