Clarify deprecation of EXTRA_xxx_OPTS

The various EXTRA_xxx_OPTS variables will be removed in the Juno
development cycle, change the README to reflect the new way for
the Neutron variables.

Change-Id: Ic84da4a9b5a83e66cf0b57d643a87691f15517f0
diff --git a/README.md b/README.md
index 9914b1e..9304240 100644
--- a/README.md
+++ b/README.md
@@ -163,7 +163,7 @@
 Basic Setup
 
 In order to enable Neutron a single node setup, you'll need the
-following settings in your `localrc` section:
+following settings in your `local.conf`:
 
     disable_service n-net
     enable_service q-svc
@@ -172,7 +172,6 @@
     enable_service q-l3
     enable_service q-meta
     enable_service q-metering
-    enable_service neutron
     # Optional, to enable tempest configuration as part of DevStack
     enable_service tempest
 
@@ -180,24 +179,44 @@
 
 DevStack supports setting specific Neutron configuration flags to the
 service, Open vSwitch plugin and LinuxBridge plugin configuration files.
-To make use of this feature, the following variables are defined and can
-be configured in your `localrc` section:
+To make use of this feature, the settings can be added to ``local.conf``.
+The old ``Q_XXX_EXTRA_XXX_OPTS`` variables are deprecated and will be removed
+in the near future.  The ``local.conf`` headers for the replacements are:
 
-    Variable Name             Config File  Section Modified
-    -------------------------------------------------------------------------------------
-    Q_SRV_EXTRA_OPTS          Plugin       `OVS` (for Open Vswitch) or `LINUX_BRIDGE` (for LinuxBridge)
-    Q_AGENT_EXTRA_AGENT_OPTS  Plugin       AGENT
-    Q_AGENT_EXTRA_SRV_OPTS    Plugin       `OVS` (for Open Vswitch) or `LINUX_BRIDGE` (for LinuxBridge)
-    Q_SRV_EXTRA_DEFAULT_OPTS  Service      DEFAULT
+* ``Q_SRV_EXTRA_OPTS``:
 
-An example of using the variables in your `localrc` section is below:
+    [[post-config|/$Q_PLUGIN_CONF_FILE]]
+    [linuxbridge]   # or [ovs]
 
-    Q_AGENT_EXTRA_AGENT_OPTS=(tunnel_type=vxlan vxlan_udp_port=8472)
-    Q_SRV_EXTRA_OPTS=(tenant_network_type=vxlan)
+* ``Q_AGENT_EXTRA_AGENT_OPTS``:
+
+    [[post-config|/$Q_PLUGIN_CONF_FILE]]
+    [agent]
+
+* ``Q_AGENT_EXTRA_SRV_OPTS``:
+
+    [[post-config|/$Q_PLUGIN_CONF_FILE]]
+    [linuxbridge]   # or [ovs]
+
+* ``Q_SRV_EXTRA_DEFAULT_OPTS``:
+
+    [[post-config|$NEUTRON_CONF]]
+    [DEFAULT]
+
+Example extra config in `local.conf`:
+
+    [[post-config|/$Q_PLUGIN_CONF_FILE]]
+    [agent]
+    tunnel_type=vxlan
+    vxlan_udp_port=8472
+
+    [[post-config|$NEUTRON_CONF]]
+    [DEFAULT]
+    tenant_network_type=vxlan
 
 DevStack also supports configuring the Neutron ML2 plugin. The ML2 plugin
-can run with the OVS, LinuxBridge, or Hyper-V agents on compute hosts. A
-simple way to configure the ml2 plugin is shown below:
+can run with the OVS, LinuxBridge, or Hyper-V agents on compute hosts. This
+is a simple way to configure the ml2 plugin:
 
     # VLAN configuration
     Q_PLUGIN=ml2
@@ -223,7 +242,6 @@
     Q_ML2_PLUGIN_GRE_TYPE_OPTIONS    GRE TypeDriver options. Defaults to none.
     Q_ML2_PLUGIN_VXLAN_TYPE_OPTIONS  VXLAN TypeDriver options. Defaults to none.
     Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS   VLAN TypeDriver options. Defaults to none.
-    Q_AGENT_EXTRA_AGENT_OPTS         Extra configuration options to pass to the OVS or LinuxBridge Agent.
 
 # Heat
 
diff --git a/stack.sh b/stack.sh
index ccd567e..988fda5 100755
--- a/stack.sh
+++ b/stack.sh
@@ -1359,12 +1359,14 @@
     echo_summary "WARNING: $DEPRECATED_TEXT"
 fi
 
+# TODO(dtroyer): Remove EXTRA_OPTS after stable/icehouse branch is cut
 # Specific warning for deprecated configs
 if [[ -n "$EXTRA_OPTS" ]]; then
     echo ""
     echo_summary "WARNING: EXTRA_OPTS is used"
     echo "You are using EXTRA_OPTS to pass configuration into nova.conf."
     echo "Please convert that configuration in localrc to a nova.conf section in local.conf:"
+    echo "EXTRA_OPTS will be removed early in the Juno development cycle"
     echo "
 [[post-config|\$NOVA_CONF]]
 [DEFAULT]
@@ -1375,11 +1377,13 @@
     done
 fi
 
+# TODO(dtroyer): Remove EXTRA_BAREMETAL_OPTS after stable/icehouse branch is cut
 if [[ -n "$EXTRA_BAREMETAL_OPTS" ]]; then
     echo ""
-    echo_summary "WARNING: EXTRA_OPTS is used"
-    echo "You are using EXTRA_OPTS to pass configuration into nova.conf."
+    echo_summary "WARNING: EXTRA_BAREMETAL_OPTS is used"
+    echo "You are using EXTRA_BAREMETAL_OPTS to pass configuration into nova.conf."
     echo "Please convert that configuration in localrc to a nova.conf section in local.conf:"
+    echo "EXTRA_BAREMETAL_OPTS will be removed early in the Juno development cycle"
     echo "
 [[post-config|\$NOVA_CONF]]
 [baremetal]
@@ -1390,13 +1394,49 @@
     done
 fi
 
+# TODO(dtroyer): Remove Q_AGENT_EXTRA_AGENT_OPTS after stable/juno branch is cut
+if [[ -n "$Q_AGENT_EXTRA_AGENT_OPTS" ]]; then
+    echo ""
+    echo_summary "WARNING: Q_AGENT_EXTRA_AGENT_OPTS is used"
+    echo "You are using Q_AGENT_EXTRA_AGENT_OPTS to pass configuration into $NEUTRON_CONF."
+    echo "Please convert that configuration in localrc to a $NEUTRON_CONF section in local.conf:"
+    echo "Q_AGENT_EXTRA_AGENT_OPTS will be removed early in the 'K' development cycle"
+    echo "
+[[post-config|/\$Q_PLUGIN_CONF_FILE]]
+[DEFAULT]
+"
+    for I in "${Q_AGENT_EXTRA_AGENT_OPTS[@]}"; do
+        # Replace the first '=' with ' ' for iniset syntax
+        echo ${I}
+    done
+fi
+
+# TODO(dtroyer): Remove Q_AGENT_EXTRA_SRV_OPTS after stable/juno branch is cut
+if [[ -n "$Q_AGENT_EXTRA_SRV_OPTS" ]]; then
+    echo ""
+    echo_summary "WARNING: Q_AGENT_EXTRA_SRV_OPTS is used"
+    echo "You are using Q_AGENT_EXTRA_SRV_OPTS to pass configuration into $NEUTRON_CONF."
+    echo "Please convert that configuration in localrc to a $NEUTRON_CONF section in local.conf:"
+    echo "Q_AGENT_EXTRA_AGENT_OPTS will be removed early in the 'K' development cycle"
+    echo "
+[[post-config|/\$Q_PLUGIN_CONF_FILE]]
+[DEFAULT]
+"
+    for I in "${Q_AGENT_EXTRA_SRV_OPTS[@]}"; do
+        # Replace the first '=' with ' ' for iniset syntax
+        echo ${I}
+    done
+fi
+
+# TODO(dtroyer): Remove Q_DHCP_EXTRA_DEFAULT_OPTS after stable/icehouse branch is cut
 if [[ -n "$Q_DHCP_EXTRA_DEFAULT_OPTS" ]]; then
     echo ""
     echo_summary "WARNING: Q_DHCP_EXTRA_DEFAULT_OPTS is used"
     echo "You are using Q_DHCP_EXTRA_DEFAULT_OPTS to pass configuration into $Q_DHCP_CONF_FILE."
     echo "Please convert that configuration in localrc to a $Q_DHCP_CONF_FILE section in local.conf:"
+    echo "Q_DHCP_EXTRA_DEFAULT_OPTS will be removed early in the Juno development cycle"
     echo "
-[[post-config|\$Q_DHCP_CONF_FILE]]
+[[post-config|/\$Q_DHCP_CONF_FILE]]
 [DEFAULT]
 "
     for I in "${Q_DHCP_EXTRA_DEFAULT_OPTS[@]}"; do
@@ -1405,11 +1445,13 @@
     done
 fi
 
+# TODO(dtroyer): Remove Q_SRV_EXTRA_DEFAULT_OPTS after stable/icehouse branch is cut
 if [[ -n "$Q_SRV_EXTRA_DEFAULT_OPTS" ]]; then
     echo ""
     echo_summary "WARNING: Q_SRV_EXTRA_DEFAULT_OPTS is used"
     echo "You are using Q_SRV_EXTRA_DEFAULT_OPTS to pass configuration into $NEUTRON_CONF."
     echo "Please convert that configuration in localrc to a $NEUTRON_CONF section in local.conf:"
+    echo "Q_SRV_EXTRA_DEFAULT_OPTS will be removed early in the Juno development cycle"
     echo "
 [[post-config|\$NEUTRON_CONF]]
 [DEFAULT]