Merge "Add salt model for cloudprovider on k8s calico"
diff --git a/README.rst b/README.rst
index 3257e23..cc8cc13 100755
--- a/README.rst
+++ b/README.rst
@@ -2,36 +2,165 @@
 MCP Virtual Labs Models
 =======================
 
-OpenStack Reclass models for Mk-based cloud deployments for QA.
+Virtual reclass models for MCP based deployments for Dev & QA purposes.
+
+Features implemented are expected to be backported to:
+- cookiecutter repository
+- system level reclass
+- formula default metadata
 
 
 Available deployments
 =====================
 
+AAA/Identity
+--------------------
 
-MCP 0.5 DVR (Openstack Mitaka)
-------------------------------
+Model to develop and verify AAA/Identity integrations as separate product
 
+Deployment:
 * 1 config node
-* 3 control nodes
-* 1 compute node
+* 3 identity node (idm/idp)
+* 2 proxy node
 
+Clusters:
+* aaa-ha-freeipa
 
-MCP 0.5 OVS (Openstack Mitaka)
-------------------------------
+Contacts: Petr Michalec, Adam Hecko, Florian S.
 
-* 1 config node
-* 3 control nodes
-* 1 compute node
-* 1 monitor node
-
-
-MCP 1.0 OpenContrail (Openstack Mitaka)
+MCP DriveTrain
 ---------------------------------------
 
+Clusters:
+* model-manager
+* drivetrain-ha
+* drivetrain-ha-clusters
+
+MCP OpenContrail (Openstack Mitaka)
+---------------------------------------
+
+Deployment:
 * 1 config node
 * 3 control nodes
 * 2 compute nodes
 * 1 monitor node
 * 1 meter node
 * 1 log node
+
+Clusters:
+* os-aio-contrail
+* os-aio-ovs
+* os-ha-contrail
+* os-ha-contrail-40
+* os-ha-ovs
+* os-ha-ovs-syndic
+* virtual-mcp05-dvr
+* virtual-mcp05-ovs
+* virtual-mcp10-contrail
+* virtual-mcp10-dvr
+* virtual-mcp10-ovs
+* virtual-mcp11-aio
+* virtual-mcp11-contrail
+* virtual-mcp11-contrail-nfv
+* virtual-mcp11-dvr
+* virtual-mcp11-k8s-calico
+* virtual-mcp11-k8s-calico-dyn
+* virtual-mcp11-k8s-calico-minimal
+* virtual-mcp11-k8s-contrail
+* virtual-mcp11-ovs
+* virtual-mcp11-ovs-dpdk
+* virtual-mcp11-ovs-ironic
+* virtual-mcp-ocata-cicd
+* virtual-mcp-ocata-dvr
+* virtual-mcp-ocata-ovs
+
+MCP Kunbernetes
+---------------
+
+Deployment:
+* 1 config node
+* 3 control nodes
+* 2 compute nodes
+
+Clusters:
+* k8s-aio-calico
+* k8s-aio-contrail
+* k8s-ha-calico
+* k8s-ha-calico-syndic
+* k8s-ha-contrail
+
+Stacklight
+----------
+
+Clusters:
+* sl-k8s-calico
+* sl-k8s-contrail
+* sl-os-contrail
+* sl-os-ovs
+
+Ceph
+--------
+
+Clusters:
+* ceph-ha
+
+
+Model validation
+================
+
+Models are validated on each commit with latest system-level reclass.
+
+Models can be validated locally in docker instance with test-kitchen. Resources:
+* https://github.com/salt-formulas/salt-formulas/tree/master/deploy/model
+* https://salt-formulas.readthedocs.io/en/latest/develop/testing-formulas.html#requirements
+
+Examples:
+.. code-block:: shell
+
+  ➜  mcp-virtual-lab git:(master) ✗ kitchen list
+  Instance                                  Driver  Provisioner  Verifier  Transport  Last Action    Last Error
+  cluster-aaa-ha-freeipa                    Docker  Shell        Busser    Ssh        Converged      <None>
+  cluster-ceph-ha                           Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-drivetrain-ha                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-drivetrain-ha-clusters            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-aio-calico                    Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-aio-contrail                  Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-ha-calico                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-ha-calico-syndic              Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-k8s-ha-contrail                   Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-model-manager                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-aio-contrail                   Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-aio-ovs                        Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-contrail                    Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-contrail-40                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-ovs                         Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-os-ha-ovs-syndic                  Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-k8s-calico                     Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-k8s-contrail                   Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-os-contrail                    Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-sl-os-ovs                         Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp05-dvr                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp05-ovs                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp10-contrail            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp10-dvr                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp10-ovs                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-aio                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-contrail            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-contrail-nfv        Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-dvr                 Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-calico          Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-calico-dyn      Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-calico-minimal  Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-k8s-contrail        Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-ovs                 Docker  Shell        Busser    Ssh        Converged      <None>
+  cluster-virtual-mcp11-ovs-dpdk            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp11-ovs-ironic          Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp-ocata-cicd            Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp-ocata-dvr             Docker  Shell        Busser    Ssh        <Not Created>  <None>
+  cluster-virtual-mcp-ocata-ovs             Docker  Shell        Busser    Ssh        <Not Created>  <None>
+
+.. code-block:: shell
+
+  ➜  kitchen converge aaa-ha-freeipa
+
+
diff --git a/classes/cluster/aaa-ha-freeipa/init.yml b/classes/cluster/aaa-ha-freeipa/init.yml
index 5c821d9..5dfab8e 100644
--- a/classes/cluster/aaa-ha-freeipa/init.yml
+++ b/classes/cluster/aaa-ha-freeipa/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.aaa-ha-freeipa.aaa.freeipa_server
 - cluster.aaa-ha-freeipa.infra
 - cluster.overrides
diff --git a/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml b/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
index 13f8c2f..dadabbb 100644
--- a/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
+++ b/classes/cluster/drivetrain-ha-clusters/cicd/control/master.yml
@@ -16,7 +16,7 @@
   # ..jobs
   - system.jenkins.client.job.aptly
   - system.jenkins.client.job.git-mirrors.downstream.pipelines
-  - system.jenkins.client.job.deploy.lab.mk.physical
+  - system.jenkins.client.job.deploy.lab.release.mcp10
   - system.jenkins.client.job.deploy.update.package
   - system.jenkins.client.job.deploy.update.config
   # Gerrit
diff --git a/classes/cluster/drivetrain-ha-clusters/init.yml b/classes/cluster/drivetrain-ha-clusters/init.yml
index e3a898b..634ecc6 100644
--- a/classes/cluster/drivetrain-ha-clusters/init.yml
+++ b/classes/cluster/drivetrain-ha-clusters/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.drivetrain-ha-clusters.infra
 - cluster.drivetrain-ha-clusters.cicd
 - cluster.overrides
diff --git a/classes/cluster/drivetrain-ha/cicd/control/master.yml b/classes/cluster/drivetrain-ha/cicd/control/master.yml
index 2968ea9..3a84699 100644
--- a/classes/cluster/drivetrain-ha/cicd/control/master.yml
+++ b/classes/cluster/drivetrain-ha/cicd/control/master.yml
@@ -16,7 +16,7 @@
   # ..jobs
   - system.jenkins.client.job.aptly
   - system.jenkins.client.job.git-mirrors.downstream.pipelines
-  - system.jenkins.client.job.deploy.lab.mk.physical
+  - system.jenkins.client.job.deploy.lab.release.mcp10
   - system.jenkins.client.job.deploy.update.package
   - system.jenkins.client.job.deploy.update.config
   # Gerrit
diff --git a/classes/cluster/drivetrain-ha/init.yml b/classes/cluster/drivetrain-ha/init.yml
index dcf60af..fa0c93c 100644
--- a/classes/cluster/drivetrain-ha/init.yml
+++ b/classes/cluster/drivetrain-ha/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.drivetrain-ha.cicd.control
 - cluster.drivetrain-ha.infra
 #- cluster.drivetrain-ha.cicd
diff --git a/classes/cluster/k8s-aio-calico/init.yml b/classes/cluster/k8s-aio-calico/init.yml
index e0b6c40..190a1db 100644
--- a/classes/cluster/k8s-aio-calico/init.yml
+++ b/classes/cluster/k8s-aio-calico/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.k8s-aio-calico.kubernetes
 - cluster.k8s-aio-calico.infra
 - cluster.overrides
diff --git a/classes/cluster/k8s-aio-contrail/init.yml b/classes/cluster/k8s-aio-contrail/init.yml
index 2022387..49eadbc 100644
--- a/classes/cluster/k8s-aio-contrail/init.yml
+++ b/classes/cluster/k8s-aio-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.k8s-aio-contrail.kubernetes
 - cluster.k8s-aio-contrail.opencontrail
 - cluster.k8s-aio-contrail.infra
diff --git a/classes/cluster/k8s-ha-calico-syndic/init.yml b/classes/cluster/k8s-ha-calico-syndic/init.yml
index bf509c9..11a3633 100644
--- a/classes/cluster/k8s-ha-calico-syndic/init.yml
+++ b/classes/cluster/k8s-ha-calico-syndic/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.k8s-ha-calico-syndic.kubernetes
 - cluster.k8s-ha-calico-syndic.infra
 - cluster.overrides
diff --git a/classes/cluster/k8s-ha-calico/init.yml b/classes/cluster/k8s-ha-calico/init.yml
index 9bab6cd..f98b325 100644
--- a/classes/cluster/k8s-ha-calico/init.yml
+++ b/classes/cluster/k8s-ha-calico/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.k8s-ha-calico.kubernetes
 - cluster.k8s-ha-calico.infra
 - cluster.overrides
diff --git a/classes/cluster/k8s-ha-contrail/init.yml b/classes/cluster/k8s-ha-contrail/init.yml
index d36ddde..ee4126e 100644
--- a/classes/cluster/k8s-ha-contrail/init.yml
+++ b/classes/cluster/k8s-ha-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.k8s-ha-contrail.kubernetes
 - cluster.k8s-ha-contrail.opencontrail
diff --git a/classes/cluster/model-manager/init.yml b/classes/cluster/model-manager/init.yml
index 8a17052..f7119c9 100644
--- a/classes/cluster/model-manager/init.yml
+++ b/classes/cluster/model-manager/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
diff --git a/classes/cluster/os-aio-contrail/init.yml b/classes/cluster/os-aio-contrail/init.yml
index eb4af4a..05aab3a 100755
--- a/classes/cluster/os-aio-contrail/init.yml
+++ b/classes/cluster/os-aio-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
 - system.rsyslog.client.single
diff --git a/classes/cluster/os-aio-ovs/init.yml b/classes/cluster/os-aio-ovs/init.yml
index c2785b7..7ba75cc 100644
--- a/classes/cluster/os-aio-ovs/init.yml
+++ b/classes/cluster/os-aio-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.os-aio-ovs.infra
 - cluster.os-aio-ovs.openstack
diff --git a/classes/cluster/os-ha-contrail-40/init.yml b/classes/cluster/os-ha-contrail-40/init.yml
index b7c1997..7947dac 100644
--- a/classes/cluster/os-ha-contrail-40/init.yml
+++ b/classes/cluster/os-ha-contrail-40/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
 - system.rsyslog.client.single
diff --git a/classes/cluster/os-ha-contrail/init.yml b/classes/cluster/os-ha-contrail/init.yml
index 203f799..8502db0 100755
--- a/classes/cluster/os-ha-contrail/init.yml
+++ b/classes/cluster/os-ha-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
 - system.rsyslog.client.single
diff --git a/classes/cluster/os-ha-ovs-syndic/init.yml b/classes/cluster/os-ha-ovs-syndic/init.yml
index b4d28ad..5e4d440 100644
--- a/classes/cluster/os-ha-ovs-syndic/init.yml
+++ b/classes/cluster/os-ha-ovs-syndic/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.os-ha-ovs-syndic.infra
 - cluster.os-ha-ovs-syndic.openstack
diff --git a/classes/cluster/os-ha-ovs/init.yml b/classes/cluster/os-ha-ovs/init.yml
index 37bd6d8..7c35891 100644
--- a/classes/cluster/os-ha-ovs/init.yml
+++ b/classes/cluster/os-ha-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.os-ha-ovs.infra
 - cluster.os-ha-ovs.openstack
diff --git a/classes/cluster/sl-k8s-calico/init.yml b/classes/cluster/sl-k8s-calico/init.yml
index eca25ff..e21b7ee 100644
--- a/classes/cluster/sl-k8s-calico/init.yml
+++ b/classes/cluster/sl-k8s-calico/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.sl-k8s-calico.kubernetes
 - cluster.sl-k8s-calico.stacklight
 - cluster.sl-k8s-calico.infra
diff --git a/classes/cluster/sl-k8s-contrail/init.yml b/classes/cluster/sl-k8s-contrail/init.yml
index 5ea4d4f..2e194af 100644
--- a/classes/cluster/sl-k8s-contrail/init.yml
+++ b/classes/cluster/sl-k8s-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.sl-k8s-contrail.kubernetes
 - cluster.sl-k8s-contrail.opencontrail
diff --git a/classes/cluster/sl-os-contrail/init.yml b/classes/cluster/sl-os-contrail/init.yml
index 036e716..e410120 100755
--- a/classes/cluster/sl-os-contrail/init.yml
+++ b/classes/cluster/sl-os-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.repo.mcp.extra
 - system.linux.system.single
 - system.rsyslog.client.single
diff --git a/classes/cluster/sl-os-ovs/init.yml b/classes/cluster/sl-os-ovs/init.yml
index f9be30f..bbd135b 100644
--- a/classes/cluster/sl-os-ovs/init.yml
+++ b/classes/cluster/sl-os-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
diff --git a/classes/cluster/virtual-mcp-ocata-dvr/init.yml b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
index bd4c2e4..14f6686 100644
--- a/classes/cluster/virtual-mcp-ocata-dvr/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.grafana.collector
 - system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
diff --git a/classes/cluster/virtual-mcp-ocata-ovs/init.yml b/classes/cluster/virtual-mcp-ocata-ovs/init.yml
index a178f05..d2e3d71 100644
--- a/classes/cluster/virtual-mcp-ocata-ovs/init.yml
+++ b/classes/cluster/virtual-mcp-ocata-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.grafana.collector
 - system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
diff --git a/classes/cluster/virtual-mcp05-dvr/init.yml b/classes/cluster/virtual-mcp05-dvr/init.yml
index 3e2f8cf..1af77a3 100644
--- a/classes/cluster/virtual-mcp05-dvr/init.yml
+++ b/classes/cluster/virtual-mcp05-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp05-ovs/init.yml b/classes/cluster/virtual-mcp05-ovs/init.yml
index 6c67937..ead6ba8 100644
--- a/classes/cluster/virtual-mcp05-ovs/init.yml
+++ b/classes/cluster/virtual-mcp05-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp05-ovs.infra
 - cluster.virtual-mcp05-ovs.openstack
diff --git a/classes/cluster/virtual-mcp10-contrail/init.yml b/classes/cluster/virtual-mcp10-contrail/init.yml
index da3e7b1..5c405d4 100755
--- a/classes/cluster/virtual-mcp10-contrail/init.yml
+++ b/classes/cluster/virtual-mcp10-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp10-dvr/init.yml b/classes/cluster/virtual-mcp10-dvr/init.yml
index ce47464..e1a87ce 100644
--- a/classes/cluster/virtual-mcp10-dvr/init.yml
+++ b/classes/cluster/virtual-mcp10-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp10-ovs/init.yml b/classes/cluster/virtual-mcp10-ovs/init.yml
index 01ccbbf..af37ef4 100644
--- a/classes/cluster/virtual-mcp10-ovs/init.yml
+++ b/classes/cluster/virtual-mcp10-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp10-ovs.infra
 - cluster.virtual-mcp10-ovs.openstack
diff --git a/classes/cluster/virtual-mcp11-aio/init.yml b/classes/cluster/virtual-mcp11-aio/init.yml
index 86627d2..b3fcc39 100755
--- a/classes/cluster/virtual-mcp11-aio/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.git.client
 - system.linux.system.single
 - system.linux.system.repo.mcp.salt
@@ -51,6 +52,10 @@
           source: ${_param:linux_system_repo}
           architectures: amd64
           clean_file: true
+          pin:
+          - pin: ${_param:linux_system_repo_pin}
+            priority: ${_param:linux_system_repo_priority}
+            package: '*'
     network:
       bridge: openvswitch
       interface:
diff --git a/classes/cluster/virtual-mcp11-aio/openstack/init.yml b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
index 6cc6c14..66cbb56 100755
--- a/classes/cluster/virtual-mcp11-aio/openstack/init.yml
+++ b/classes/cluster/virtual-mcp11-aio/openstack/init.yml
@@ -102,6 +102,8 @@
       rndc_port: 953
       rndc_key_file: /etc/designate/rndc.key
     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
diff --git a/classes/cluster/virtual-mcp11-contrail-nfv/init.yml b/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
index 78298cb..9b0ff88 100755
--- a/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail-nfv/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - system.rsyslog.client.single
 - system.openssh.server.team.lab
diff --git a/classes/cluster/virtual-mcp11-contrail/init.yml b/classes/cluster/virtual-mcp11-contrail/init.yml
index 613edb9..b5796bd 100755
--- a/classes/cluster/virtual-mcp11-contrail/init.yml
+++ b/classes/cluster/virtual-mcp11-contrail/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.grafana.collector
 - system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
diff --git a/classes/cluster/virtual-mcp11-dvr/init.yml b/classes/cluster/virtual-mcp11-dvr/init.yml
index 80a2628..8e93cbf 100644
--- a/classes/cluster/virtual-mcp11-dvr/init.yml
+++ b/classes/cluster/virtual-mcp11-dvr/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - service.grafana.collector
 - system.heka.log_collector.single
 - system.heka.log_collector.output.telegraf
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml
index 5484c66..10957f2 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-dyn/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.virtual-mcp11-k8s-calico-dyn.kubernetes
 - cluster.virtual-mcp11-k8s-calico-dyn.stacklight
 - cluster.virtual-mcp11-k8s-calico-dyn.infra
diff --git a/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml b/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml
index e1ad5a6..56a3029 100644
--- a/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml
+++ b/classes/cluster/virtual-mcp11-k8s-calico-minimal/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - cluster.virtual-mcp11-k8s-calico-minimal.kubernetes
 - cluster.virtual-mcp11-k8s-calico-minimal.infra
 - cluster.overrides
diff --git a/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml b/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
index e97b1a5..ef16a9e 100644
--- a/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-dpdk/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp11-ovs-dpdk.infra
 - cluster.virtual-mcp11-ovs-dpdk.openstack
diff --git a/classes/cluster/virtual-mcp11-ovs-ironic/init.yml b/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
index 654b013..a9ccc70 100644
--- a/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs-ironic/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp11-ovs-ironic.infra
 - cluster.virtual-mcp11-ovs-ironic.openstack
diff --git a/classes/cluster/virtual-mcp11-ovs/init.yml b/classes/cluster/virtual-mcp11-ovs/init.yml
index 2f85ae8..6d4d246 100644
--- a/classes/cluster/virtual-mcp11-ovs/init.yml
+++ b/classes/cluster/virtual-mcp11-ovs/init.yml
@@ -1,4 +1,5 @@
 classes:
+- system.linux.network.dynamic_hosts
 - system.linux.system.single
 - cluster.virtual-mcp11-ovs.infra
 - cluster.virtual-mcp11-ovs.openstack