Add ovs pike models

* Add ceph ovs pike
* rename ceph ocata rgw to ceph ocata pike as there pike inside
* Add pike ovs, dvr, dpdk

PROD-16951

Change-Id: Ib8c17eb0909991b70f18ac916ba503e6301f6eb7
diff --git a/classes/cluster/virtual-pike-ovs-dpdk/openstack/compute.yml b/classes/cluster/virtual-pike-ovs-dpdk/openstack/compute.yml
new file mode 100644
index 0000000..ace5f15
--- /dev/null
+++ b/classes/cluster/virtual-pike-ovs-dpdk/openstack/compute.yml
@@ -0,0 +1,91 @@
+classes:
+- system.linux.system.repo.mcp.apt_mirantis.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.apt_mirantis.saltstack_2016_3
+- system.linux.network.hosts
+- system.nova.compute.cluster
+- system.neutron.compute.cluster
+- system.heka.alarm.openstack_compute
+- system.nova.compute.nfv.hugepages
+- system.nova.compute.nfv.cpu_pinning
+- system.neutron.compute.nfv.dpdk
+
+- cluster.virtual-pike-ovs-dpdk
+parameters:
+  _param:
+    primary_interface: ens4
+    #tenant_interface: ens5
+    external_interface: ens6
+    interface_mtu: 9000
+    linux_system_codename: xenial
+  nova:
+    compute:
+      vncproxy_url: http://${_param:cluster_vip_address}:6080
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
+        notify_on:
+          state_change: vm_and_task_state
+      message_queue:
+        members:
+          - host: ${_param:openstack_control_node01_address}
+          - host: ${_param:openstack_control_node02_address}
+          - host: ${_param:openstack_control_node03_address}
+  linux:
+    network:
+      bridge: openvswitch
+      interface:
+        dhcp_int:
+          enabled: true
+          name: ens3
+          proto: dhcp
+          type: eth
+          mtu: ${_param:interface_mtu}
+        primary_interface:
+          enabled: true
+          name: ${_param:primary_interface}
+          mtu: ${_param:interface_mtu}
+          proto: manual
+          type: eth
+        #tenant_interface:
+        #  enabled: true
+        #  name: ${_param:tenant_interface}
+        #  mtu: ${_param:interface_mtu}
+        #  proto: manual
+        #  type: eth
+        br-mgmt:
+          enabled: true
+          type: bridge
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
+          use_interfaces:
+          - ${_param:primary_interface}
+        # br-mesh:
+        #   enabled: true
+        #   type: bridge
+        #   proto: static
+        #   address: ${_param:tenant_address}
+        #   netmask: 255.255.255.0
+        #   use_interfaces:
+        #   - ${_param:tenant_interface}
+###
+        # dpdkbond1:
+        #   enabled: true
+        #   bridge: br-prv
+        #   type: dpdk_ovs_bond
+        #   mode: active-backup
+        dpdk0:
+          name: ${_param:dpdk0_name}
+          pci: ${_param:dpdk0_pci}
+          driver: igb_uio
+          bridge: br-prv
+#          bond: dpdkbond1
+          enabled: true
+          type: dpdk_ovs_port
+          n_rxq: 2
+        br-prv:
+          enabled: true
+          type: dpdk_ovs_bridge
+          address: ${_param:tenant_address}
+          netmask: 255.255.255.0
\ No newline at end of file
diff --git a/classes/cluster/virtual-pike-ovs-dpdk/openstack/control.yml b/classes/cluster/virtual-pike-ovs-dpdk/openstack/control.yml
new file mode 100644
index 0000000..11a048c
--- /dev/null
+++ b/classes/cluster/virtual-pike-ovs-dpdk/openstack/control.yml
@@ -0,0 +1,149 @@
+classes:
+- system.linux.system.lowmem
+- system.linux.system.repo.mcp.apt_mirantis.glusterfs
+- system.linux.system.repo.mcp.apt_mirantis.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.apt_mirantis.saltstack_2016_3
+- system.memcached.server.single
+- system.rabbitmq.server.cluster
+- system.rabbitmq.server.vhost.openstack
+- system.keystone.server.wsgi
+- system.keystone.server.cluster
+- system.glusterfs.client.cluster
+- system.glusterfs.client.volume.glance
+- system.glusterfs.client.volume.keystone
+- system.glusterfs.server.volume.glance
+- system.glusterfs.server.volume.keystone
+- system.glusterfs.server.cluster
+- system.glance.control.cluster
+- system.heka.alarm.openstack_control
+- system.nova.control.cluster
+- system.neutron.control.openvswitch.cluster
+- system.cinder.control.cluster
+- system.heat.server.cluster
+- system.designate.server.cluster
+- system.designate.server.backend.bind
+- system.galera.server.cluster
+- system.galera.server.database.ceilometer
+- system.galera.server.database.cinder
+- system.galera.server.database.glance
+- system.galera.server.database.grafana
+- system.galera.server.database.heat
+- system.galera.server.database.keystone
+- system.galera.server.database.nova
+- system.galera.server.database.designate
+- cluster.virtual-pike-ovs-dpdk
+parameters:
+  _param:
+    keepalived_vip_interface: ens4
+  linux:
+    system:
+      package:
+        python-msgpack:
+          version: latest
+    network:
+      interface:
+        ens4:
+          enabled: true
+          type: eth
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
+  keepalived:
+    cluster:
+      instance:
+        VIP:
+          virtual_router_id: 150
+  bind:
+    server:
+      control:
+        mgmt:
+          enabled: true
+          bind:
+            address: ${_param:single_address}
+            port: 953
+          allow:
+            - ${_param:openstack_control_node01_address}
+            - ${_param:openstack_control_node02_address}
+            - ${_param:openstack_control_node03_address}
+          keys:
+            - designate
+  keystone:
+    server:
+      admin_email: ${_param:admin_email}
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
+  designate:
+    server:
+      pools:
+        default:
+          description: 'test pool'
+          targets:
+            default:
+              description: 'test target1'
+            default1:
+              type: ${_param:designate_pool_target_type}
+              description: 'test target2'
+              masters: ${_param:designate_pool_target_masters}
+              options:
+                host: ${_param:openstack_control_node02_address}
+                port: 53
+                rndc_host: ${_param:openstack_control_node02_address}
+                rndc_port: 953
+                rndc_key_file: /etc/designate/rndc.key
+            default2:
+              type: ${_param:designate_pool_target_type}
+              description: 'test target3'
+              masters: ${_param:designate_pool_target_masters}
+              options:
+                host: ${_param:openstack_control_node03_address}
+                port: 53
+                rndc_host: ${_param:openstack_control_node03_address}
+                rndc_port: 953
+                rndc_key_file: /etc/designate/rndc.key
+    worker:
+      enabled: ${_param:designate_worker_enabled}
+  glance:
+    server:
+      storage:
+        engine: file
+      images: []
+      workers: 1
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
+  heat:
+    server:
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
+  neutron:
+    server:
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
+  nova:
+    controller:
+      networking: dvr
+      cpu_allocation: 54
+      metadata:
+        password: ${_param:metadata_password}
+      bind:
+        private_address: ${_param:cluster_local_address}
+        public_address: ${_param:cluster_vip_address}
+        novncproxy_port: 6080
+      vncproxy_url: http://${_param:cluster_vip_address}:6080
+      workers: 1
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
+  cinder:
+    volume:
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
+    controller:
+      notification:
+        driver: messagingv2
+        topics: "notifications,${_param:stacklight_notification_topic}"
diff --git a/classes/cluster/virtual-pike-ovs-dpdk/openstack/dashboard.yml b/classes/cluster/virtual-pike-ovs-dpdk/openstack/dashboard.yml
new file mode 100644
index 0000000..73233a2
--- /dev/null
+++ b/classes/cluster/virtual-pike-ovs-dpdk/openstack/dashboard.yml
@@ -0,0 +1,20 @@
+classes:
+- system.linux.system.repo.mcp.apt_mirantis.ubuntu
+- system.linux.system.repo.mcp.apt_mirantis.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.apt_mirantis.saltstack_2016_3
+- system.horizon.server.single
+- system.horizon.server.plugin.theme
+- cluster.virtual-pike-ovs-dpdk
+parameters:
+  _param:
+    horizon_site_branding: OpenStack Dashboard
+  linux:
+    network:
+      interface:
+        ens4:
+          enabled: true
+          type: eth
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
diff --git a/classes/cluster/virtual-pike-ovs-dpdk/openstack/gateway.yml b/classes/cluster/virtual-pike-ovs-dpdk/openstack/gateway.yml
new file mode 100644
index 0000000..65ad393
--- /dev/null
+++ b/classes/cluster/virtual-pike-ovs-dpdk/openstack/gateway.yml
@@ -0,0 +1,88 @@
+classes:
+- system.linux.system.repo.mcp.apt_mirantis.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.system.repo.mcp.apt_mirantis.saltstack_2016_3
+- system.neutron.gateway.cluster
+- cluster.virtual-pike-ovs-dpdk
+parameters:
+  _param:
+    primary_interface: ens4
+    tenant_interface: ens5
+    external_interface: ens6
+    interface_mtu: 9000
+    linux_system_codename: xenial
+  linux:
+    network:
+      bridge: openvswitch
+      interface:
+        dhcp_int:
+          enabled: true
+          name: ens3
+          proto: dhcp
+          type: eth
+          mtu: ${_param:interface_mtu}
+        primary_interface:
+          enabled: true
+          ipflush_onchange: true
+          name: ${_param:primary_interface}
+          mtu: ${_param:interface_mtu}
+          proto: manual
+          type: eth
+        # tenant_interface:
+        #   enabled: true
+        #   name: ${_param:tenant_interface}
+        #   mtu: ${_param:interface_mtu}
+        #   proto: manual
+        #   type: eth
+        external_interface:
+          enabled: true
+          ipflush_onchange: true
+          name: ${_param:external_interface}
+          mtu: ${_param:interface_mtu}
+          proto: manual
+          type: eth
+        br-floating:
+          enabled: true
+          type: ovs_bridge
+          mtu: ${_param:interface_mtu}
+        br-mgmt:
+          enabled: true
+          type: bridge
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
+          mtu: ${_param:interface_mtu}
+          use_interfaces:
+          - ${_param:primary_interface}
+        br-prv:
+          enabled: true
+          type: ovs_bridge
+          address: ${_param:tenant_address}
+          netmask: 255.255.255.0
+        floating-to-prv:
+          enabled: true
+          type: ovs_port
+          port_type: patch
+          bridge: br-floating
+          peer: prv-to-floating
+        prv-to-floating:
+          enabled: true
+          type: ovs_port
+          port_type: patch
+          bridge: br-prv
+          peer: floating-to-prv
+        float-to-ex:
+          enabled: true
+          type: ovs_port
+          mtu: ${_param:interface_mtu}
+          bridge: br-floating
+        br-ex:
+          enabled: true
+          type: bridge
+          mtu: ${_param:interface_mtu}
+          address: ${_param:external_address}
+          netmask: 255.255.255.0
+          use_interfaces:
+          - ${_param:external_interface}
+          use_ovs_ports:
+          - float-to-ex
diff --git a/classes/cluster/virtual-pike-ovs-dpdk/openstack/init.yml b/classes/cluster/virtual-pike-ovs-dpdk/openstack/init.yml
new file mode 100644
index 0000000..d68f04c
--- /dev/null
+++ b/classes/cluster/virtual-pike-ovs-dpdk/openstack/init.yml
@@ -0,0 +1,183 @@
+parameters:
+  _param:
+    openstack_version: pike
+    apt_mk_version: nightly
+    cinder_version: ${_param:openstack_version}
+    mcp_repo_version: 1.1
+    openstack_region: RegionOne
+    admin_email: root@localhost
+    cluster_public_protocol: http
+    cluster_public_host: 172.16.10.254
+    neutron_public_protocol: http
+    neutron_control_dvr: False
+    neutron_tenant_network_types: "flat"
+    neutron_l3_ha: True
+    neutron_global_physnet_mtu: 1500
+    neutron_external_mtu: 1500
+    neutron_gateway_dvr: False
+    neutron_gateway_agent_mode: legacy
+    neutron_compute_dvr: False
+    neutron_compute_agent_mode: legacy
+    neutron_compute_external_access: False
+    galera_server_cluster_name: openstack_cluster
+    galera_server_maintenance_password: workshop
+    galera_server_admin_password: workshop
+    cluster_vip_address: 172.16.10.254
+    cluster_local_address: ${_param:single_address}
+
+    nova_cpu_pinning: "3"
+    compute_hugepages_size: 2M
+    compute_hugepages_count: 600
+    compute_hugepages_mount: /mnt/hugepages_2M
+    compute_kernel_isolcpu: ${_param:nova_cpu_pinning}
+    compute_dpdk_driver: uio
+    compute_ovs_pmd_cpu_mask: "0x2"
+    compute_ovs_dpdk_socket_mem: "1024"
+    compute_ovs_dpdk_lcore_mask: "0x1"
+    compute_ovs_memory_channels: "1"
+
+    cluster_node01_hostname: ctl01
+    cluster_node01_address: 172.16.10.101
+    cluster_node02_hostname: ctl02
+    cluster_node02_address: 172.16.10.102
+    cluster_node03_hostname: ctl03
+    cluster_node03_address: 172.16.10.103
+    rabbitmq_secret_key: workshop
+    rabbitmq_admin_password: workshop
+    rabbitmq_openstack_password: workshop
+    rabbitmq_cold_password: workshop
+    designate_bind9_rndc_key: 4pc+X4PDqb2q+5o72dISm72LM1Ds9X2EYZjqg+nmsS7FhdTwzFFY8l/iEDmHxnyjkA33EQC8
+    designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
+    designate_pool_ns_records:
+      - hostname: 'ns1.example.org.'
+        priority: 10
+    designate_pool_nameservers:
+      - host: ${_param:openstack_control_node01_address}
+        port: 53
+      - host: ${_param:openstack_control_node02_address}
+        port: 53
+      - host: ${_param:openstack_control_node03_address}
+        port: 53
+    designate_pool_target_type: bind9
+    designate_pool_target_masters:
+      - host: ${_param:openstack_control_node01_address}
+        port: 5354
+      - host: ${_param:openstack_control_node02_address}
+        port: 5354
+      - host: ${_param:openstack_control_node03_address}
+        port: 5354
+    designate_pool_target_options:
+      host: ${_param:openstack_control_node01_address}
+      port: 53
+      rndc_host: ${_param:openstack_control_node01_address}
+      rndc_port: 953
+      rndc_key_file: /etc/designate/rndc.key
+    designate_version: ${_param:openstack_version}
+    designate_worker_enabled: true
+    glance_version: ${_param:openstack_version}
+    glance_service_host: ${_param:cluster_vip_address}
+    keystone_version: ${_param:openstack_version}
+    keystone_service_host: ${_param:cluster_vip_address}
+    heat_version: ${_param:openstack_version}
+    heat_service_host: ${_param:cluster_vip_address}
+    heat_domain_admin_password: workshop
+    ceilometer_version: ${_param:openstack_version}
+    ceilometer_service_host: 172.16.10.108
+    cinder_version: ${_param:openstack_version}
+    cinder_service_host: ${_param:cluster_vip_address}
+    ceilometer_graphite_publisher_host: 172.16.10.107
+    ceilometer_graphite_publisher_port: 2013
+    nova_version: ${_param:openstack_version}
+    nova_service_host: ${_param:cluster_vip_address}
+    nova_vncproxy_url: http://${_param:cluster_vip_address}:8060
+    neutron_version: ${_param:openstack_version}
+    neutron_service_host: ${_param:cluster_vip_address}
+    glusterfs_service_host: ${_param:cluster_vip_address}
+    designate_service_host: ${_param:cluster_vip_address}
+    metadata_password: workshop
+    mysql_admin_user: root
+    mysql_admin_password: workshop
+    mysql_cinder_password: workshop
+    mysql_ceilometer_password: workshop
+    mysql_designate_password: workshop
+    mysql_glance_password: workshop
+    mysql_grafana_password: workshop
+    mysql_heat_password: workshop
+    mysql_keystone_password: workshop
+    mysql_neutron_password: workshop
+    mysql_nova_password: workshop
+    mysql_aodh_password: workshop
+    keystone_service_token: workshop
+    keystone_admin_password: workshop
+    keystone_ceilometer_password: workshop
+    keystone_cinder_password: workshop
+    keystone_glance_password: workshop
+    keystone_heat_password: workshop
+    keystone_keystone_password: workshop
+    keystone_neutron_password: workshop
+    keystone_nova_password: workshop
+    keystone_designate_password: workshop
+    ceilometer_secret_key: workshop
+    horizon_version: ${_param:openstack_version}
+    horizon_secret_key: opaesee8Que2yahJoh9fo0eefo1Aeyo6ahyei8zeiboh3aeth5loth7ieNa5xi5e
+    horizon_identity_host: ${_param:cluster_vip_address}
+    horizon_identity_encryption: none
+    horizon_identity_version: 2
+    mongodb_server_replica_set: ceilometer
+    mongodb_ceilometer_password: cloudlab
+    mongodb_admin_password: cloudlab
+    mongodb_shared_key: eoTh1AwahlahqueingeejooLughah4tei9feing0eeVaephooDi2li1TaeV1ooth
+  linux:
+    network:
+      purge_hosts: true
+      host:
+        prx:
+          address: ${_param:openstack_proxy_address}
+          names:
+          - prx
+          - prx.${_param:cluster_domain}
+        prx01:
+          address: ${_param:openstack_proxy_node01_address}
+          names:
+          - prx01
+          - prx01.${_param:cluster_domain}
+        ctl:
+          address: ${_param:openstack_control_address}
+          names:
+          - ctl
+          - ctl.${_param:cluster_domain}
+        ctl01:
+          address: ${_param:openstack_control_node01_address}
+          names:
+          - ctl01
+          - ctl01.${_param:cluster_domain}
+        ctl02:
+          address: ${_param:openstack_control_node02_address}
+          names:
+          - ctl02
+          - ctl02.${_param:cluster_domain}
+        ctl03:
+          address: ${_param:openstack_control_node03_address}
+          names:
+          - ctl03
+          - ctl03.${_param:cluster_domain}
+        gtw01:
+          address: ${_param:openstack_gateway_address}
+          names:
+          - gtw01
+          - gtw01.${_param:cluster_domain}
+        cmp01:
+          address: 172.16.10.105
+          names:
+          - cmp01
+          - cmp01.${_param:cluster_domain}
+        cmp02:
+          address: 172.16.10.106
+          names:
+          - cmp02
+          - cmp02.${_param:cluster_domain}
+    system:
+      user:
+        root:
+          name: root
+          password: false
diff --git a/classes/cluster/virtual-pike-ovs-dpdk/openstack/proxy.yml b/classes/cluster/virtual-pike-ovs-dpdk/openstack/proxy.yml
new file mode 100644
index 0000000..55c8561
--- /dev/null
+++ b/classes/cluster/virtual-pike-ovs-dpdk/openstack/proxy.yml
@@ -0,0 +1,15 @@
+classes:
+- system.nginx.server.single
+- system.nginx.server.proxy.openstack_api
+- system.nginx.server.proxy.openstack_vnc
+- system.nginx.server.proxy.openstack_web
+- system.salt.minion.cert.proxy
+- cluster.virtual-pike-ovs-dpdk
+parameters:
+  _param:
+    nginx_proxy_ssl:
+      enabled: true
+      authority: ${_param:salt_minion_ca_authority}
+      engine: salt
+      mode: secure
+    salt_minion_ca_host: cfg01.${_param:cluster_domain}
\ No newline at end of file