Add virtual-mcp11-aio-manila model

This patch adds AIO model with manila enabled.

Change-Id: Ib695a052ff19ce1fc1ee48bb9ecc2ec0ec25d6a4
diff --git a/classes/cluster/virtual-mcp11-aio-manila/.env b/classes/cluster/virtual-mcp11-aio-manila/.env
new file mode 100644
index 0000000..b63c1b9
--- /dev/null
+++ b/classes/cluster/virtual-mcp11-aio-manila/.env
@@ -0,0 +1 @@
+FORMULAS_SALT_MASTER+=(java openssh ntp nginx collectd sensu heka sphinx mysql galera grafana libvirt rsyslog glusterfs postfix xtrabackup freeipa prometheus telegraf elasticsearch kibana rundeck devops-portal libvirt rsyslog memcached rabbitmq apache keystone glance nova neutron cinder heat horizon ironic tftpd-hpa bind powerdns designate barbican iptables manila)
diff --git a/classes/cluster/virtual-mcp11-aio-manila/infra/config.yml b/classes/cluster/virtual-mcp11-aio-manila/infra/config.yml
new file mode 100644
index 0000000..0f277d0
--- /dev/null
+++ b/classes/cluster/virtual-mcp11-aio-manila/infra/config.yml
@@ -0,0 +1,24 @@
+classes:
+  - cluster.virtual-mcp11-aio-manila
+parameters:
+  _param:
+    linux_system_codename: xenial
+  linux:
+    system:
+      name: cfg01
+      domain: ${_param:cluster_domain}
+      purge_repos: ${_param:linux_system_purge_repos}
+  salt:
+    master:
+      worker_threads: 5
+      environment:
+        prd:
+          formula:
+            runtest:
+              source: git
+              address: 'https://gerrit.mcp.mirantis.net/salt-formulas/runtest'
+              revision: master
+              module:
+                runtest: runtest
+              state:
+                runtest.py: runtest.py
diff --git a/classes/cluster/virtual-mcp11-aio-manila/infra/init.yml b/classes/cluster/virtual-mcp11-aio-manila/infra/init.yml
new file mode 100644
index 0000000..d00a830
--- /dev/null
+++ b/classes/cluster/virtual-mcp11-aio-manila/infra/init.yml
@@ -0,0 +1,8 @@
+parameters:
+  _param:
+    apt_mk_version: stable
+    linux_system_purge_repos: false
+  salt:
+   minion:
+      trusted_ca_minions:
+        -  cfg01.${_param:cluster_domain}
diff --git a/classes/cluster/virtual-mcp11-aio-manila/init.yml b/classes/cluster/virtual-mcp11-aio-manila/init.yml
new file mode 100755
index 0000000..1411684
--- /dev/null
+++ b/classes/cluster/virtual-mcp11-aio-manila/init.yml
@@ -0,0 +1,111 @@
+classes:
+- system.linux.network.dynamic_hosts
+- service.git.client
+- system.linux.system.single
+- system.linux.system.repo.mcp.salt
+- system.openssh.client.lab
+- system.salt.master.api
+- system.salt.master.pkg
+- system.salt.minion.ca.salt_master
+- system.salt.minion.cert.proxy
+- system.reclass.storage.salt
+- system.mysql.client
+- system.memcached.server.single
+- system.rabbitmq.server.single
+- cluster.virtual-mcp11-aio-manila.infra
+- cluster.virtual-mcp11-aio-manila.openstack
+- cluster.overrides
+parameters:
+  _param:
+    reclass_data_repository: https://gerrit.mcp.mirantis.net/salt-models/mcp-virtual-aio
+    reclass_data_revision: master
+    salt_master_environment_repository: "https://github.com/tcpcloud"
+    salt_master_environment_revision: master
+    reclass_config_master: 192.168.10.90
+    single_address: 172.16.10.90
+    infra_config_address: ${_param:single_address}
+    cluster_domain: virtual-mcp11-aio-manila.local
+    cluster_name: virtual-mcp11-aio-manila
+    infra_config_hostname: cfg01
+
+    mysql_admin_user: root
+    mysql_admin_password: workshop
+    mysql_cluster_role: master
+    rabbitmq_secret_key: workshop
+    rabbitmq_admin_password: workshop
+    loopback_device_size: 20
+    loopback_device1_size: 10
+    salt_master_host: 192.168.10.90
+    salt_master_base_environment: prd
+    salt_minion_ca_host: ${linux:network:fqdn}
+    salt_api_password_hash: "$6$sGnRlxGf$al5jMCetLP.vfI/fTl3Z0N7Za1aeiexL487jAtyRABVfT3NlwZxQGVhO7S1N8OwS/34VHYwZQA8lkXwKMN/GS1"
+  openssh:
+    server:
+      password_auth: true
+      permit_root_login: true
+  linux:
+    system:
+      user:
+        root:
+          enabled: true
+          # r00tme
+          password: $6$9ojWyyN.$26Vj46JtCUL6C7XBQ8RmQTZLwo8/8SkqTRElXh0X2YBLrt7E/aVe2AYQ5gguYUwUknZNOSn5q7M9M3Jyf2gof/
+      repo:
+        linux_system_repo:
+          source: ${_param:linux_system_repo}
+          architectures: amd64
+          clean_file: true
+          pin:
+          - pin: ${_param:linux_system_repo_pin}
+            priority: ${_param:linux_system_repo_priority}
+            package: '*'
+        # workaround for PROD-15657, mysql 5.7 isn't built, using 5.6 instead
+          - pin: 'version 5.6*'
+            priority: 1300
+            package: 'mysql-client'
+    network:
+      bridge: openvswitch
+      interface:
+        br-floating:
+          enabled: true
+          type: ovs_bridge
+        phy-public:
+          enabled: true
+          type: ovs_port
+          bridge: br-floating
+          proto: static
+          address: ${_param:openstack_public_neutron_subnet_gateway}
+          netmask: 255.255.255.0
+        ens4:
+          enabled: true
+          type: eth
+          proto: static
+          address: ${_param:single_address}
+          netmask: 255.255.255.0
+        ens3:
+          enabled: true
+          type: eth
+          proto: dhcp
+# override on this level
+  nova:
+    compute:
+      cache:
+        members:
+        - host: ${_param:single_address}
+          port: 11211
+  cinder:
+    volume:
+      cache:
+        members:
+        - host: ${_param:single_address}
+          port: 11211
+  galera:
+    master:
+      members:
+      - host: ${_param:single_address}
+        port: 4567
+  neutron:
+    server:
+      message_queue:
+        members:
+          - host: ${_param:single_address}
diff --git a/classes/cluster/virtual-mcp11-aio-manila/openstack/init.yml b/classes/cluster/virtual-mcp11-aio-manila/openstack/init.yml
new file mode 100755
index 0000000..8fc5ac2
--- /dev/null
+++ b/classes/cluster/virtual-mcp11-aio-manila/openstack/init.yml
@@ -0,0 +1,350 @@
+classes:
+- system.salt.minion.cert.mysql.server
+- system.salt.minion.cert.rabbitmq_server
+- system.linux.system.lowmem
+- system.linux.system.repo.mcp.openstack
+- system.linux.system.repo.mcp.extra
+- system.linux.storage.loopback
+- system.linux.storage.loopback_manila
+- service.rabbitmq.server.ssl
+- system.rabbitmq.server.vhost.openstack
+- system.horizon.server.plugin.manila
+- system.keystone.server.wsgi
+- system.keystone.server.single
+- service.galera.ssl
+- service.galera.master.cluster
+- system.galera.server.database.cinder
+- system.galera.server.database.designate
+- system.galera.server.database.glance
+- system.galera.server.database.heat
+- system.galera.server.database.keystone
+- system.galera.server.database.nova
+- system.galera.server.database.barbican
+- system.galera.server.database.manila
+- system.apache.server.site.manila
+- system.keystone.client.single
+- system.keystone.client.service.barbican
+- system.keystone.client.service.cinder3
+- system.keystone.client.service.nova21
+- system.keystone.client.service.nova-placement
+- system.keystone.client.service.designate
+- system.keystone.client.service.manila
+- system.keystone.client.service.manila2
+- system.glance.control.single
+- system.nova.control.single
+- system.neutron.control.openvswitch.single
+- system.neutron.client.service.public
+- system.neutron.client.service.manila
+- system.heat.server.single
+- system.nova.compute.single
+- service.neutron.gateway.single
+- system.cinder.control.single
+- system.cinder.control.backend.lvm
+- service.cinder.volume.single
+- system.cinder.volume.backend.lvm
+- system.horizon.server.single
+- system.bind.server.single
+- system.barbican.server.single
+- service.barbican.server.plugin.simple_crypto
+- system.designate.server.single
+- system.designate.server.backend.bind
+- system.manila.common.single
+- system.manila.share.backend.lvm
+parameters:
+  _param:
+    openstack_version: pike
+    cluster_public_host: ${_param:single_address}
+    cluster_public_protocol: http
+    openstack_region: RegionOne
+    admin_email: root@localhost
+    rabbitmq_openstack_password: workshop
+    galera_server_cluster_name: openstack_cluster
+    galera_server_maintenance_password: workshop
+    galera_server_admin_password: workshop
+    keystone_version: ${_param:openstack_version}
+    barbican_version: ${_param:openstack_version}
+    glance_version: ${_param:openstack_version}
+    nova_version: ${_param:openstack_version}
+    neutron_version: ${_param:openstack_version}
+    cinder_version: ${_param:openstack_version}
+    heat_version: ${_param:openstack_version}
+    horizon_version: ${_param:openstack_version}
+    designate_version: ${_param:openstack_version}
+    keystone_service_token: workshop
+    keystone_admin_password: workshop
+    keystone_barbican_password: workshop
+    keystone_ceilometer_password: workshop
+    keystone_cinder_password: workshop
+    keystone_glance_password: workshop
+    keystone_heat_password: workshop
+    keystone_neutron_password: workshop
+    keystone_nova_password: workshop
+    keystone_designate_password: workshop
+    keystone_manila_password: workshop
+    keystone_service_host: ${_param:single_address}
+    manila_service_host: ${_param:single_address}
+    mysql_keystone_password: workshop
+    mysql_barbican_password: workshop
+    mysql_glance_password: workshop
+    mysql_nova_password: workshop
+    mysql_neutron_password: workshop
+    mysql_cinder_password: workshop
+    mysql_heat_password: workshop
+    mysql_designate_password: workshop
+    mysql_manila_password: workshop
+    barbican_service_host: ${_param:single_address}
+    heat_service_host: ${_param:single_address}
+    neutron_service_host: ${_param:single_address}
+    glance_service_host: ${_param:single_address}
+    cinder_service_host: ${_param:single_address}
+    designate_service_host: ${_param:single_address}
+    nova_service_host: ${_param:single_address}
+    control_address: ${_param:single_address}
+    metadata_password: workshop
+    cluster_vip_address: ${_param:single_address}
+    cluster_local_address: ${_param:single_address}
+    openstack_database_address: ${_param:single_address}
+    tenant_address: ${_param:single_address}
+    heat_domain_admin_password: workshop
+    horizon_secret_key: workshop
+    horizon_identity_encryption: none
+    horizon_identity_version: 2
+    horizon_identity_host: ${_param:single_address}
+    designate_admin_api_enabled: true
+    designate_bind9_rndc_key: 4pc+X4PDqb2q+5o72dISm72LM1Ds9X2EYZjqg+nmsS7FhdTwzFFY8l/iEDmHxnyjkA33EQC8H+z0fLLBunoitw==
+    designate_pool_target_type: bind9
+    designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
+    designate_pool_ns_records:
+      - hostname: 'ns1.example.org.'
+        priority: 10
+    designate_pool_nameservers:
+      - host: ${_param:single_address}
+        port: 53
+    designate_pool_target_masters:
+      - host: ${_param:single_address}
+        port: 5354
+    designate_pool_target_options:
+      host: ${_param:single_address}
+      port: 53
+      rndc_host: 127.0.0.1
+      rndc_port: 953
+      rndc_key_file: /etc/designate/rndc.key
+    designate_quota_zones: 40
+    designate_worker_enabled: true
+    linux_system_repo: deb [arch=amd64] http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/xenial ${_param:openstack_version} main
+    linux_system_repo_pin: release a=${_param:openstack_version}
+    linux_system_repo_priority: 1200
+    openstack_public_neutron_subnet_gateway:  192.168.130.1
+    openstack_public_neutron_subnet_cidr: 192.168.130.0/24
+    openstack_public_neutron_subnet_allocation_start: 192.168.130.10
+    openstack_public_neutron_subnet_allocation_end: 192.168.130.254
+    barbican_simple_crypto_kek: YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=
+    barbican_integration_enabled: False
+    galera_ssl_enabled: true
+    rabbitmq_ssl_enabled: true
+    rabbitmq_port: 5671 # for non-ssl use 5672/for ssl 5671
+    runtest_tempest_cfg_dir: /root/rally_reports/
+    runtest_tempest_cfg_name: tempest_generated.conf
+    openstack_manila_share_neutron_subnet_cidr: 172.16.10.0/24
+    openstack_manila_share_neutron_subnet_allocation_start: 172.16.10.150
+    openstack_manila_share_neutron_subnet_allocation_end: 172.16.10.200
+    manila_lvm_devices:
+      - /dev/loop1
+  galera:
+    master:
+      members: ~
+      innodb_buffer_pool_size: 1024M
+      max_connections: 1000
+    slave:
+      enabled: false
+  barbican:
+    server:
+      ks_notifications_enable: True
+      store:
+        software:
+          crypto_plugin: simple_crypto
+          store_plugin: store_crypto
+          global_default: True
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+  neutron:
+    server:
+      api_workers: 2
+      rpc_state_report_workers: 2
+      rpc_workers: 2
+      message_queue:
+        members: ~
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+    gateway:
+      metadata:
+        workers: 2
+      agent_mode: dvr_snat
+      dvr: True
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+  nova:
+    compute:
+      barbican:
+        enabled: ${_param:barbican_integration_enabled}
+      vncproxy_url: http://${_param:single_address}:6080
+      network:
+        user: neutron
+        password: ${_param:keystone_neutron_password}
+        tenant: service
+      cache:
+        members: ~
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+    controller:
+      barbican:
+        enabled: ${_param:barbican_integration_enabled}
+      vncproxy_url: http://${_param:single_address}:6080
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+  cinder:
+    controller:
+      barbican:
+        enabled: ${_param:barbican_integration_enabled}
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+    volume:
+      cache:
+        members: ~
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+  horizon:
+    server:
+      secure: False
+  designate:
+    server:
+      quota:
+        zones: ${_param:designate_quota_zones}
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+    worker:
+      enabled: ${_param:designate_worker_enabled}
+  glance:
+    server:
+      barbican:
+        enabled: ${_param:barbican_integration_enabled}
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+  keystone:
+    server:
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+  heat:
+    server:
+      database:
+        ssl:
+          enabled: ${_param:galera_ssl_enabled}
+      message_queue:
+        port: ${_param:rabbitmq_port}
+        ssl:
+          enabled: ${_param:rabbitmq_ssl_enabled}
+  manila:
+    common:
+      dhss: false
+    api:
+      version: ${_param:openstack_version}
+      enabled: true
+    data:
+      version: ${_param:openstack_version}
+      enabled: true
+    scheduler:
+      version: ${_param:openstack_version}
+      enabled: true
+    share:
+      version: ${_param:openstack_version}
+      enabled: true
+      enabled_share_backends:
+        lvm:
+          name: lvm
+          type: lvm
+          enabled: true
+          dhss: false
+          share_driver: manila.share.drivers.lvm.LVMShareDriver
+      shares:
+        Share2:
+          share_type:
+            share_type_name: lvm-type1
+            dhss: false
+            extra_specs:
+              snapshot_support: true
+          share_size: 5
+          share_proto: NFS
+          share_access:
+            rw:
+             - 172.16.10.90
+            ro:
+             - 172.16.12.90
+  runtest:
+    enabled: True
+    tempest:
+      enabled: True
+      cfg_dir: ${_param:runtest_tempest_cfg_dir}
+      cfg_name: ${_param:runtest_tempest_cfg_name}
+      DEFAULT:
+        log_file: /home/rally/rally_reports/tempest.log
+      compute:
+        build_timeout: 600
+        min_microversion: 2.1
+        max_microversion: 2.53
+      orchestration:
+        max_template_size: 5440000
+        max_resources_per_stack: 20000
+      dns_feature_enabled:
+        # Switch this to designate_admin_api_enabled once [1] is promoted to stable packages
+        # [1] https://gerrit.mcp.mirantis.net/gitweb?p=salt-formulas/designate.git;a=commit;h=96a3f43f6cf1149559e54a00b5548bdf46333749
+        api_admin: false
+        api_v1: false
+        api_v2: true
+        api_v2_quotas: true
+        api_v2_root_recordsets: true
+        bug_1573141_fixed: true
+      volume-feature-enabled:
+        backup: false