Add new roles for dvr-vxlan and ceph

Change-Id: I03ff631dfc622cc5d6884e553146f0516e8fd2de
diff --git "a/\173\043 interfaces \043\175/bond0_ab_dvr_vxlan_ctl_mesh_external" "b/\173\043 interfaces \043\175/bond0_ab_dvr_vxlan_ctl_mesh_external"
new file mode 100644
index 0000000..39f8e79
--- /dev/null
+++ "b/\173\043 interfaces \043\175/bond0_ab_dvr_vxlan_ctl_mesh_external"
@@ -0,0 +1,75 @@
+{#- Tenant over VXLAN. For gateway nodes and computes with dvr #}
+{#- Provides:                         #}
+{#-   br_ctl (OVS bridge) + control address #}
+{#-   br-mesh (OVS bridge) + tenant address #}
+{#-   br-ex (OVS bridge) + external address #}
+{#-   br-floating (OVS bridge) #}
+{#- Requirements:                     #}
+{#-   _param:single_address         #}
+{#-   _param:control_network_netmask         #}
+{#-   _param:control_vlan           #}
+{#-   _param:tenant_address         #}
+{#-   _param:tenant_netmask         #}
+{#-   _param:tenant_vlan           #}
+{#-   _param:external_address         #}
+{#-   _param:external_network_netmask         #}
+              # {{ interfaces_role }}
+              {{- set_param('linux_network_bridge', 'openvswitch') }}
+              {%- for interface_name, interface in interfaces.items() %}
+              {{ interface_name }}:
+                mtu: 9000
+                enabled: true
+                master: bond0  # ?
+                name: {{ interface_name }}
+                proto: manual
+                type: slave  # ?
+                ipflush_onchange: true
+              {%- endfor %}
+              bond0:
+                enabled: true
+                mode: active-backup
+                ovs_bridge: br-floating
+                ovs_type: OVSPort
+                proto: manual
+                slaves: {{ ' '.join(interfaces.keys()) }}
+                type: bond
+                use_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+                require_interfaces:
+                {%- for interface_name in interfaces.keys() %}
+                - {{ interface_name }}
+                {%- endfor %}
+              br-floating:
+                enabled: true
+                type: ovs_bridge
+              br_ctl:
+                address: ${_param:_esc}{_param:single_address}
+                bridge: br-floating
+                enabled: true
+                netmask: ${_param:_esc}{_param:control_network_netmask}
+                ovs_options: tag=${_param:_esc}{_param:control_vlan}
+                proto: static
+                type: ovs_port
+                require_interfaces:
+                - br-floating
+              br-mesh:
+                enabled: true
+                type: ovs_port
+                bridge: br-floating
+                proto: static
+                ovs_options: tag=${_param:_esc}{_param:tenant_vlan}
+                address: ${_param:_esc}{_param:tenant_address}
+                netmask: ${_param:_esc}{_param:tenant_network_netmask}
+                require_interfaces:
+                - br-floating
+              br-ex:
+                enabled: true
+                type: ovs_port
+                bridge: br-floating
+                proto: static
+                address: ${_param:_esc}{_param:external_address}
+                netmask: ${_param:_esc}{_param:external_netmask}
+                require_interfaces:
+                - br-floating
\ No newline at end of file
diff --git "a/\173\043 interfaces \043\175/single_storage_dhcp" "b/\173\043 interfaces \043\175/single_storage_dhcp"
new file mode 100644
index 0000000..f11a971
--- /dev/null
+++ "b/\173\043 interfaces \043\175/single_storage_dhcp"
@@ -0,0 +1,10 @@
+{#- Storage network. #}
+{#- Provides:                         #}
+{#-   <interface_name> + dhcp address #}
+              # {{ interfaces_role }}
+              {%- set interface_name = interfaces.keys()[0] %}
+              {{ interface_name }}:
+                enabled: true
+                type: eth
+                proto: dhcp
+                name: {{ interface_name }}
\ No newline at end of file
diff --git "a/\173\043 roles \043\175/_linux_network_interface" "b/\173\043 roles \043\175/_linux_network_interface"
index 85de14f..dbb35eb 100644
--- "a/\173\043 roles \043\175/_linux_network_interface"
+++ "b/\173\043 roles \043\175/_linux_network_interface"
@@ -16,6 +16,8 @@
         'tenant_address',
         'tenant_network_netmask',
         'tenant_network_gateway',
+        'external_address',
+        'external_network_netmask',
         'dns_server01',
         'dns_server02',
         'mtu',
diff --git "a/\173\043 roles \043\175/ceph_mon" "b/\173\043 roles \043\175/ceph_mon"
index b07032f..ab74926 100644
--- "a/\173\043 roles \043\175/ceph_mon"
+++ "b/\173\043 roles \043\175/ceph_mon"
@@ -9,4 +9,4 @@
           - cluster.${_param:cluster_name}.ceph.mon
 {{- set_param('keepalived_vip_interface', 'br_ctl') }}
 {{- register_metaparam('keepalived_vip_priority', 'ceph_mon') }}
-{{- register_metaparam('keepalived_vip_virtual_router_id', 'ceph_mon') }}
\ No newline at end of file
+{{- register_metaparam('keepalived_vip_virtual_router_id', 'ceph_mon') }}
diff --git "a/\173\043 roles \043\175/ceph_osd" "b/\173\043 roles \043\175/ceph_osd"
new file mode 100644
index 0000000..c4ded2e
--- /dev/null
+++ "b/\173\043 roles \043\175/ceph_osd"
@@ -0,0 +1,9 @@
+{#-
+parameters:
+  reclass:
+    storage:
+      node:
+        <reclass_storage_node_name>:
+          classes:
+#}
+          - cluster.${_param:cluster_name}.ceph.osd
diff --git "a/\173\043 roles \043\175/ceph_rgw" "b/\173\043 roles \043\175/ceph_rgw"
new file mode 100644
index 0000000..28fd486
--- /dev/null
+++ "b/\173\043 roles \043\175/ceph_rgw"
@@ -0,0 +1,9 @@
+{#-
+parameters:
+  reclass:
+    storage:
+      node:
+        <reclass_storage_node_name>:
+          classes:
+#}
+          - cluster.${_param:cluster_name}.ceph.rgw
\ No newline at end of file