Merge "step towards backwards compatability"
diff --git a/classes/cluster/aaa_ha_freeipa/aaa/freeipa_server.yml b/classes/cluster/aaa_ha_freeipa/aaa/freeipa_server.yml
index 5216422..271479c 100644
--- a/classes/cluster/aaa_ha_freeipa/aaa/freeipa_server.yml
+++ b/classes/cluster/aaa_ha_freeipa/aaa/freeipa_server.yml
@@ -3,6 +3,7 @@
 #- system.linux.system.repo.saltstack.rhel7
 #- system.haproxy.proxy.listen.
 #- system.salt.minion.cert.
+- system.mysql.client
 - system.freeipa.server.cluster
 - cluster.aaa_ha_freeipa.aaa
 parameters:
@@ -11,6 +12,13 @@
     keepalived_vip_interface: ${_param:primary_interface}
     keepalived_vip_virtual_router_id: 99
 
+    freeipa_admin_password: password
+    freeipa_ldap_password: password
+    mysql_admin_user: admin
+    mysql_admin_password: password
+    freeipa_principal_user: principal
+    freeipa_dns_zone: aaa-freeipa.local
+
   freeipa:
     server:
       realm: ${_param:cluster_domain}
@@ -20,9 +28,9 @@
         - idm02.${_param:cluster_domain}
         - idm03.${_param:cluster_domain}
       admin:
-        password: password
+        password: ${_param:freeipa_admin_password}
       ldap:
-        password: password
+        password: ${_param:freeipa_ldap_password}
       dns:
         key:
           axfrkey:
diff --git a/classes/cluster/aaa_ha_freeipa/aaa/init.yml b/classes/cluster/aaa_ha_freeipa/aaa/init.yml
index 9fb2124..0cd8e4f 100644
--- a/classes/cluster/aaa_ha_freeipa/aaa/init.yml
+++ b/classes/cluster/aaa_ha_freeipa/aaa/init.yml
@@ -1,5 +1,5 @@
 classes:
-- cluster.aaa_ha_freeipa.aaa
+#- cluster.aaa_ha_freeipa.aaa
 - system.linux.system.single
 - system.openssh.server.team.lab
 - system.openssh.server.team.tcpcloud
@@ -36,11 +36,19 @@
     cluster_node03_hostname: ${_param:identity_control_node03_hostname}
     cluster_node03_address: ${_param:identity_control_node03_address}
 
+    # FIXME
+    # temporarily - fix on reclass model or here
     freeipa_node01_hostname: ${_param:cluster_node01_address}
     freeipa_node02_hostname: ${_param:cluster_node02_address}
     freeipa_node03_hostname: ${_param:cluster_node03_address}
     freeipa_client_nsupdate_01_address: ${_param:cluster_node01_address}
-
+    # temporarily - fix on reclass model or here
+    infra_freeipa_node01_hostname: ${_param:freeipa_node01_hostname}
+    infra_freeipa_node02_hostname: ${_param:freeipa_node02_hostname}
+    infra_freeipa_node03_hostname: ${_param:freeipa_node03_hostname}
+    infra_idm_node01_address: ${_param:identity_control_node01_address}
+    infra_idm_node02_address: ${_param:identity_control_node02_address}
+    infra_idm_node03_address: ${_param:identity_control_node03_address}
 
   linux:
     network:
@@ -71,21 +79,16 @@
           names:
           - ${_param:identity_control_node03_hostname}
           - ${_param:identity_control_node03_hostname}.${_param:cluster_domain}
-        cmp01:
-          address: ${_param:identity_compute_node01_address}
-          names:
-          - ${_param:identity_compute_node01_hostname}
-          - ${_param:identity_compute_node01_hostname}.${_param:cluster_domain}
-        cmp02:
-          address: ${_param:identity_compute_node02_address}
-          names:
-          - ${_param:identity_compute_node02_hostname}
-          - ${_param:identity_compute_node02_hostname}.${_param:cluster_domain}
         prx01:
           address: ${_param:identity_proxy_node01_address}
           names:
           - ${_param:identity_proxy_node01_hostname}
           - ${_param:identity_proxy_node01_hostname}.${_param:cluster_domain}
+        prx02:
+          address: ${_param:identity_proxy_node02_address}
+          names:
+          - ${_param:identity_proxy_node02_hostname}
+          - ${_param:identity_proxy_node02_hostname}.${_param:cluster_domain}
     system:
       rc:
         local: |
diff --git a/classes/cluster/aaa_ha_freeipa/infra/config.yml b/classes/cluster/aaa_ha_freeipa/infra/config.yml
index c993809..70e3c07 100644
--- a/classes/cluster/aaa_ha_freeipa/infra/config.yml
+++ b/classes/cluster/aaa_ha_freeipa/infra/config.yml
@@ -1,13 +1,15 @@
-alasses:
+classes:
 - system.linux.system.repo.ubuntu
 - system.openssh.client.lab
+- system.salt.master.single
 - system.salt.master.pkg
 - system.salt.minion.ca.salt_master
 - system.salt.master.api
-- system.salt.minion.cert.k8s_server
 - system.mysql.client
 - system.reclass.storage.salt
-- system.reclass.storage.system.kubernetes_control_cluster
+- system.reclass.storage.system.infra_idm_cluster
+- cluster.aaa_ha_freeipa.infra
+- cluster.aaa_ha_freeipa.aaa
 - cluster.aaa_ha_freeipa
 parameters:
   _param:
@@ -21,6 +23,7 @@
     salt_master_host: 127.0.0.1
   salt:
     master:
+      enabled: true
       reactor:
         reclass/minion/classify:
         - salt://reclass/reactor/node_register.sls
diff --git a/classes/cluster/aaa_ha_freeipa/init.yml b/classes/cluster/aaa_ha_freeipa/init.yml
index baec503..c9a2bed 100644
--- a/classes/cluster/aaa_ha_freeipa/init.yml
+++ b/classes/cluster/aaa_ha_freeipa/init.yml
@@ -1,4 +1,5 @@
 classes:
-- cluster.aaa_ha_freeipa.aaa.freeipa
+- cluster.aaa_ha_freeipa.aaa.freeipa_server
 - cluster.aaa_ha_freeipa.infra
 - cluster.overrides
+
diff --git a/classes/cluster/k8s_aio_calico/infra/config.yml b/classes/cluster/k8s_aio_calico/infra/config.yml
index c8f630f..fe16242 100644
--- a/classes/cluster/k8s_aio_calico/infra/config.yml
+++ b/classes/cluster/k8s_aio_calico/infra/config.yml
@@ -1,4 +1,4 @@
-alasses:
+classes:
 - system.linux.system.repo.ubuntu
 - system.openssh.client.lab
 - system.salt.master.pkg
diff --git a/classes/cluster/k8s_aio_contrail/infra/init.yml b/classes/cluster/k8s_aio_contrail/infra/init.yml
index 734adf9..199beba 100644
--- a/classes/cluster/k8s_aio_contrail/infra/init.yml
+++ b/classes/cluster/k8s_aio_contrail/infra/init.yml
@@ -1,4 +1,4 @@
-alasses:
+classes:
 - system.linux.system.single
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.mcp.salt
diff --git a/classes/cluster/k8s_ha_calico/infra/config.yml b/classes/cluster/k8s_ha_calico/infra/config.yml
index 1eb842b..23bdbb9 100644
--- a/classes/cluster/k8s_ha_calico/infra/config.yml
+++ b/classes/cluster/k8s_ha_calico/infra/config.yml
@@ -18,11 +18,23 @@
     linux_system_codename: xenial
     salt_api_password_hash: "$6$WV0P1shnoDh2gI/Z$22/Bcd7ffMv0jDlFpT63cAU4PiXHz9pjXwngToKwqAsgoeK4HNR3PiKaushjxp3JsQ8hNoJmAC6TxzVqfV8WH/"
     salt_master_host: 127.0.0.1
+    salt_master_environment_revision: master
+    salt_master_environment_repository: 'https://github.com/salt-formulas'
   salt:
     master:
       reactor:
         reclass/minion/classify:
         - salt://reclass/reactor/node_register.sls
+      environment:
+      # TODO: remove formulas in development once they are stable and part of shared the system-level reclass
+        prd:
+          formula:
+            helm:
+              source: pkg
+              name: salt-formula-helm
+              #source: git
+              #address: '${_param:salt_master_environment_repository}/salt-formula-helm.git'
+              #revision: ${_param:salt_master_environment_revision}
   reclass:
     storage:
       class_mapping:
diff --git a/classes/cluster/k8s_ha_calico/infra/init.yml b/classes/cluster/k8s_ha_calico/infra/init.yml
index 3220d0e..62922ee 100644
--- a/classes/cluster/k8s_ha_calico/infra/init.yml
+++ b/classes/cluster/k8s_ha_calico/infra/init.yml
@@ -3,10 +3,7 @@
 - system.linux.system.repo.mcp.extra
 - system.linux.system.repo.mcp.salt
 - system.linux.system.repo.ubuntu
-- system.openssh.server.team.lab
-- system.openssh.server.team.tcpcloud
-- system.openssh.server.team.mcp_qa
-- system.openssh.server.team.k8s_team
+- system.openssh.server.team.all
 parameters:
   _param:
     # infra service addresses
diff --git a/classes/cluster/k8s_ha_calico/kubernetes/control.yml b/classes/cluster/k8s_ha_calico/kubernetes/control.yml
index d438c5a..c6dd6ab 100644
--- a/classes/cluster/k8s_ha_calico/kubernetes/control.yml
+++ b/classes/cluster/k8s_ha_calico/kubernetes/control.yml
@@ -6,10 +6,24 @@
 - system.kubernetes.master.cluster
 - cluster.k8s_ha_calico.kubernetes.compute
 - cluster.k8s_ha_calico
+# FIXME: replace service.helm to system.helm (once properly in reclass)
+- service.helm.client
 parameters:
   _param:
     keepalived_vip_interface: ${_param:primary_interface}
     keepalived_vip_virtual_router_id: 60
+  helm:
+    client:
+      repos:
+        mirantisworkloads: https://mirantisworkloads.storage.googleapis.com/
+      #releases:
+      # TODO: configure custom application stacks below
+      #  grafana:
+      #    chart: mirantisworkloads/grafana
+      #    version: 0.4.1
+      #    values:
+      #      replicas: 1
+      #      logLevel: INFO
   etcd:
     server:
       source:
@@ -26,7 +40,7 @@
         netchecker:
           enabled: true
         helm:
-          enabled: true
+          enabled: false
     master:
       etcd:
         ssl:
diff --git a/classes/cluster/k8s_ha_calico/kubernetes/init.yml b/classes/cluster/k8s_ha_calico/kubernetes/init.yml
index 307ebd0..1c4dfda 100644
--- a/classes/cluster/k8s_ha_calico/kubernetes/init.yml
+++ b/classes/cluster/k8s_ha_calico/kubernetes/init.yml
@@ -21,13 +21,9 @@
     kubernetes_control_node01_hostname: ctl01
     kubernetes_control_node02_hostname: ctl02
     kubernetes_control_node03_hostname: ctl03
-    kubernetes_compute_node01_hostname: cmp01
-    kubernetes_compute_node02_hostname: cmp02
     kubernetes_control_node01_address: 172.16.10.101
     kubernetes_control_node02_address: 172.16.10.102
     kubernetes_control_node03_address: 172.16.10.103
-    kubernetes_compute_node01_address: 172.16.10.105
-    kubernetes_compute_node02_address: 172.16.10.106
     kubernetes_proxy_node01_hostname: prx01
     kubernetes_proxy_node01_address: 172.16.10.121
 
@@ -72,21 +68,21 @@
           names:
           - ${_param:kubernetes_control_node03_hostname}
           - ${_param:kubernetes_control_node03_hostname}.${_param:cluster_domain}
-        cmp01:
-          address: ${_param:kubernetes_compute_node01_address}
-          names:
-          - ${_param:kubernetes_compute_node01_hostname}
-          - ${_param:kubernetes_compute_node01_hostname}.${_param:cluster_domain}
-        cmp02:
-          address: ${_param:kubernetes_compute_node02_address}
-          names:
-          - ${_param:kubernetes_compute_node02_hostname}
-          - ${_param:kubernetes_compute_node02_hostname}.${_param:cluster_domain}
         prx01:
           address: ${_param:kubernetes_proxy_node01_address}
           names:
           - ${_param:kubernetes_proxy_node01_hostname}
           - ${_param:kubernetes_proxy_node01_hostname}.${_param:cluster_domain}
+    linux:
+      network:
+        interface:
+          primary_interface:
+            route:
+              # TODO: Remove comment.
+              # Will work once CI has this in linux formula (packaged): https://gerrit.mcp.mirantis.net/#/c/8952
+              kubernetes_internal:
+                address: 10.254.0.0
+                netmask: 255.255.0.0
     system:
       rc:
         local: |
@@ -99,5 +95,4 @@
           # Make sure that the script will "exit 0" on success or any other
           # value on error.
           #
-          ip r a 10.254.0.0/16 dev ens3
           exit 0
diff --git a/classes/cluster/sl_k8s_calico/kubernetes/control.yml b/classes/cluster/sl_k8s_calico/kubernetes/control.yml
index d743dea..3e1b435 100644
--- a/classes/cluster/sl_k8s_calico/kubernetes/control.yml
+++ b/classes/cluster/sl_k8s_calico/kubernetes/control.yml
@@ -5,6 +5,7 @@
 - system.salt.minion.cert.etcd_server
 - system.kubernetes.master.cluster
 - cluster.sl_k8s_calico.kubernetes.compute
+- cluster.sl_k8s_calico.infra
 - cluster.sl_k8s_calico
 parameters:
   _param:
diff --git a/classes/cluster/sl_k8s_calico/stacklight/server.yml b/classes/cluster/sl_k8s_calico/stacklight/server.yml
index 8426444..82e81ac 100644
--- a/classes/cluster/sl_k8s_calico/stacklight/server.yml
+++ b/classes/cluster/sl_k8s_calico/stacklight/server.yml
@@ -32,6 +32,9 @@
 - system.docker.swarm.stack.monitoring
 - system.docker.swarm.stack.dashboard
 - system.docker.swarm.stack.monitoring.remote_collector
+- system.heka.remote_collector.container
+- system.heka.remote_collector.output.elasticsearch
+- system.heka.remote_collector.output.telegraf
 - cluster.sl_k8s_calico
 parameters:
   _param:
diff --git a/classes/cluster/sl_os_contrail/infra/config.yml b/classes/cluster/sl_os_contrail/infra/config.yml
index 8d5a4ae..e3c77d4 100755
--- a/classes/cluster/sl_os_contrail/infra/config.yml
+++ b/classes/cluster/sl_os_contrail/infra/config.yml
@@ -174,21 +174,7 @@
             single_address: ${_param:stacklight_monitor_node01_address}
             keepalived_vip_priority: 100
             mysql_cluster_role: master
-        openstack_control_node01:
-          name: ${_param:stacklight_monitor_node01_hostname}
-          domain: ${_param:cluster_domain}
-          classes:
-          - service.galera.master.cluster
-          - system.docker.swarm.master
-          - cluster.${_param:cluster_name}.stacklight.client
-          - cluster.${_param:cluster_name}.stacklight.server
-          params:
-            salt_master_host: ${_param:infra_config_deploy_address}
-            linux_system_codename: xenial
-            single_address: ${_param:stacklight_monitor_node01_address}
-            keepalived_vip_priority: 100
-            mysql_cluster_role: master
-        openstack_control_node02:
+        stacklight_monitor_node02:
           name: ${_param:stacklight_monitor_node02_hostname}
           domain: ${_param:cluster_domain}
           classes:
@@ -201,7 +187,7 @@
             single_address: ${_param:stacklight_monitor_node02_address}
             keepalived_vip_priority: 101
             mysql_cluster_role: slave
-        openstack_control_node03:
+        stacklight_monitor_node03:
           name: ${_param:stacklight_monitor_node03_hostname}
           domain: ${_param:cluster_domain}
           classes:
@@ -214,3 +200,12 @@
             single_address: ${_param:stacklight_monitor_node03_address}
             keepalived_vip_priority: 102
             mysql_cluster_role: slave
+        opencontrail_control_node01:
+          params:
+            rabbitmq_cluster_role: master
+        opencontrail_control_node02:
+          params:
+            rabbitmq_cluster_role: slave
+        opencontrail_control_node03:
+          params:
+            rabbitmq_cluster_role: slave
\ No newline at end of file
diff --git a/classes/cluster/sl_os_ovs/stacklight/client.yml b/classes/cluster/sl_os_ovs/stacklight/client.yml
index 3ca0f10..9d5bb82 100644
--- a/classes/cluster/sl_os_ovs/stacklight/client.yml
+++ b/classes/cluster/sl_os_ovs/stacklight/client.yml
@@ -17,3 +17,4 @@
     grafana_password: ${_param:grafana_admin_password}
     grafana_prometheus_address: ${_param:stacklight_monitor_address}
     grafana_prometheus_port: 15010
+    grafana_influxdb_host: ${_param:stacklight_monitor_node01_address}
diff --git a/classes/cluster/sl_os_ovs/stacklight/server.yml b/classes/cluster/sl_os_ovs/stacklight/server.yml
index fd5a54b..e5e2cc6 100644
--- a/classes/cluster/sl_os_ovs/stacklight/server.yml
+++ b/classes/cluster/sl_os_ovs/stacklight/server.yml
@@ -21,11 +21,11 @@
 - system.telegraf.agent.remote
 - system.prometheus.server.remote_write.docker
 - system.prometheus.server.alertmanager.dns
-- system.prometheus.server.target.kubernetes
 - system.prometheus.server.target.dns
 - system.docker.swarm.stack.monitoring
 - system.docker.swarm.stack.dashboard
 - system.docker.swarm.stack.monitoring.remote_collector
+- cluster.sl_os_ovs.stacklight.client
 - cluster.sl_os_ovs
 parameters:
   _param: