Merge "Added formula for lldp"
diff --git a/docker/swarm/service/dashboard/grafana_server.yml b/docker/swarm/service/dashboard/grafana_server.yml
index 4ed587e..9da7aa5 100644
--- a/docker/swarm/service/dashboard/grafana_server.yml
+++ b/docker/swarm/service/dashboard/grafana_server.yml
@@ -1,10 +1,21 @@
 parameters:
+  _param:
+    docker_grafana_replicas: 1
+    grafana_database_type: sqlite3
+    grafana_database_host: localhost
+    grafana_database_port: 3306
+    grafana_database_password: password
   docker:
     client:
       service:
         grafana_server:
-          replica: 1
+          replicas: ${_param:docker_grafana_replicas}
           environment:
+            GF_DATABASE_TYPE: ${_param:grafana_database_type}
+            GF_DATABASE_NAME: grafana
+            GF_DATABASE_USER: grafana
+            GF_DATABASE_PASSWORD: ${_param:grafana_database_password}
+            GF_DATABASE_HOST: "${_param:grafana_database_host}:${_param:grafana_database_port}"
             GF_SECURITY_ADMIN_PASSWORD: ${_param:grafana_admin_password}
           restart:
             condition: any
diff --git a/docker/swarm/stack/dashboard.yml b/docker/swarm/stack/dashboard.yml
index 5621d8a..2ee123b 100644
--- a/docker/swarm/stack/dashboard.yml
+++ b/docker/swarm/stack/dashboard.yml
@@ -1,4 +1,10 @@
 parameters:
+  _param:
+    docker_grafana_replicas: 1
+    grafana_database_type: sqlite3
+    grafana_database_host: localhost
+    grafana_database_port: 3306
+    grafana_database_password: password
   docker:
     client:
       stack:
@@ -6,11 +12,16 @@
           service:
             grafana:
               deploy:
-                replicas: 1
+                replicas: ${_param:docker_grafana_replicas}
                 restart_policy:
                   condition: any
               image: ${_param:docker_image_grafana}
               ports:
                 - 15013:3000
               environment:
+                GF_DATABASE_TYPE: ${_param:grafana_database_type}
+                GF_DATABASE_NAME: grafana
+                GF_DATABASE_USER: grafana
+                GF_DATABASE_PASSWORD: ${_param:grafana_database_password}
+                GF_DATABASE_HOST: "${_param:grafana_database_host}:${_param:grafana_database_port}"
                 GF_SECURITY_ADMIN_PASSWORD: ${_param:grafana_admin_password}
diff --git a/haproxy/proxy/listen/radosgw.yml b/haproxy/proxy/listen/radosgw.yml
new file mode 100644
index 0000000..369306b
--- /dev/null
+++ b/haproxy/proxy/listen/radosgw.yml
@@ -0,0 +1,26 @@
+parameters:
+  _param:
+    haproxy_radosgw_bind_port: 8080
+    haproxy_radosgw_source_port: 8080
+  haproxy:
+    proxy:
+      listen:
+        radosgw:
+          mode: tcp
+          balance: source
+          binds:
+            - address: ${_param:cluster_vip_address}
+              port: ${_param:haproxy_radosgw_bind_port}
+          servers:
+            - name: ${_param:cluster_node01_hostname}
+              host: ${_param:cluster_node01_address}
+              port: ${_param:haproxy_radosgw_source_port}
+              params: check
+            - name: ${_param:cluster_node02_hostname}
+              host: ${_param:cluster_node02_address}
+              port: ${_param:haproxy_radosgw_source_port}
+              params: backup check
+            - name: ${_param:cluster_node03_hostname}
+              host: ${_param:cluster_node03_address}
+              port: ${_param:haproxy_radosgw_source_port}
+              params: backup check
diff --git a/jenkins/client/job/debian/packages/heat/resources.yml b/jenkins/client/job/debian/packages/heat/resources.yml
index 8bb9241..01033ad 100644
--- a/jenkins/client/job/debian/packages/heat/resources.yml
+++ b/jenkins/client/job/debian/packages/heat/resources.yml
@@ -80,4 +80,6 @@
                 default: "amd64"
               UPLOAD_APTLY:
                 type: boolean
-                default: 'true'
\ No newline at end of file
+                default: 'true'
+              PRE_BUILD_SCRIPT:
+                type: text
diff --git a/jenkins/client/job/debian/packages/horizon/modules.yml b/jenkins/client/job/debian/packages/horizon/modules.yml
index 359ab89..235c84c 100644
--- a/jenkins/client/job/debian/packages/horizon/modules.yml
+++ b/jenkins/client/job/debian/packages/horizon/modules.yml
@@ -53,6 +53,42 @@
               dist: xenial
               os_version: ocata
               branch: stable/ocata
+            # Trusty
+            - name: horizon-jenkins-dashboard
+              os: ubuntu
+              dist: trusty
+              os_version: liberty
+              branch: stable/liberty
+            # Xenial
+            - name: horizon-jenkins-dashboard
+              os: ubuntu
+              dist: xenial
+              os_version: liberty
+              branch: stable/liberty
+            # Trusty
+            - name: horizon-telemetry-dashboard
+              os: ubuntu
+              dist: trusty
+              os_version: liberty
+              branch: stable/liberty
+            # Xenial
+            - name: horizon-telemetry-dashboard
+              os: ubuntu
+              dist: xenial
+              os_version: liberty
+              branch: stable/liberty
+            # Trusty
+            - name: horizon-telemetry-dashboard
+              os: ubuntu
+              dist: trusty
+              os_version: mitaka
+              branch: stable/mitaka
+            # Xenial
+            - name: horizon-telemetry-dashboard
+              os: ubuntu
+              dist: xenial
+              os_version: mitaka
+              branch: stable/mitaka
           template:
             discard:
               build:
diff --git a/jenkins/client/job/deploy/update/init.yml b/jenkins/client/job/deploy/update/init.yml
index af87dcf..a65d440 100644
--- a/jenkins/client/job/deploy/update/init.yml
+++ b/jenkins/client/job/deploy/update/init.yml
@@ -2,3 +2,4 @@
   - system.jenkins.client.job.deploy.update.package
   - system.jenkins.client.job.deploy.update.config
   - system.jenkins.client.job.deploy.update.saltenv
+  - system.jenkins.client.job.deploy.update.upgrade
diff --git a/jenkins/client/job/deploy/update/upgrade.yml b/jenkins/client/job/deploy/update/upgrade.yml
new file mode 100644
index 0000000..81a7b16
--- /dev/null
+++ b/jenkins/client/job/deploy/update/upgrade.yml
@@ -0,0 +1,25 @@
+#
+# Jobs to update packages on given Salt master environment
+#
+parameters:
+  _param:
+    jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
+  jenkins:
+    client:
+      job:
+        deploy-upgrade-control:
+          type: workflow-scm
+          concurrent: true
+          display_name: "Deploy - upgrade control VMs"
+          scm:
+            type: git
+            url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            credentials: "gerrit"
+            script: openstack-control-upgrade.groovy
+          param:
+            SALT_MASTER_URL:
+              type: string
+              default: "${_param:jenkins_salt_api_url}"
+            SALT_MASTER_CREDENTIALS:
+              type: string
+              default: "salt"
diff --git a/jenkins/client/job/salt-models/generate.yml b/jenkins/client/job/salt-models/generate.yml
index 967de8c..697ab51 100644
--- a/jenkins/client/job/salt-models/generate.yml
+++ b/jenkins/client/job/salt-models/generate.yml
@@ -29,21 +29,6 @@
               COOKIECUTTER_TEMPLATE_PATH:
                 type: string
                 default: "./"
-              COOKIECUTTER_INSTALL_CICD:
-                type: boolean
-                default: false
-              COOKIECUTTER_INSTALL_CONTRAIL:
-                type: boolean
-                default: false
-              COOKIECUTTER_INSTALL_KUBERNETES:
-                type: boolean
-                default: false
-              COOKIECUTTER_INSTALL_OPENSTACK:
-                type: boolean
-                default: false
-              COOKIECUTTER_INSTALL_STACKLIGHT:
-                type: boolean
-                default: false
               COOKIECUTTER_TEMPLATE_CONTEXT:
                 type: text
               RECLASS_MODEL_URL:
@@ -57,3 +42,5 @@
               COMMIT_CHANGES:
                 type: boolean
                 default: false
+              EMAIL_ADDRESS:
+                type: string
diff --git a/mongodb/server/cluster.yml b/mongodb/server/cluster.yml
index 7053d87..f3c16d6 100644
--- a/mongodb/server/cluster.yml
+++ b/mongodb/server/cluster.yml
@@ -1,5 +1,4 @@
 classes:
-- service.keepalived.cluster.single
 - service.mongodb.server.cluster
 parameters:
   _param:
diff --git a/openssh/server/team/stacklight.yml b/openssh/server/team/stacklight.yml
index 3eafce1..ba54781 100644
--- a/openssh/server/team/stacklight.yml
+++ b/openssh/server/team/stacklight.yml
@@ -58,6 +58,20 @@
           full_name: Vitaly Gusev
           home: /home/vgusev
           email: vgusev@mirantis.com
+        mpolreich:
+          enabled: true
+          name: mpolreich
+          sudo: true
+          full_name: Martin Polreich
+          home: /home/mpolreich
+          email: mpolreich@mirantis.com
+        ityaptin:
+          enabled: true
+          name: ityaptin
+          sudo: true
+          full_name: Ilya Tyaptin
+          home: /home/ityaptin
+          email: ityaptin@mirantis.com
   openssh:
     client:
       enabled: true
@@ -104,6 +118,16 @@
           public_keys:
           - ${public_keys:vgusev}
           user: ${linux:system:user:vgusev}
+        mpolreich:
+          enable: true
+          public_keys:
+          - ${public_keys:mpolreich}
+          user: ${linux:system:user:mpolreich}
+        ityaptin:
+          enable: true
+          public_keys:
+          - ${public_keys:ityaptin}
+          user: ${linux:system:user:ityaptin}
   public_keys:
     newt:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3odU+3V2uDA2ptAFL9hrJRPNEEdAyztWOZFQ5Oyd9oerTGOU3p4xmrgWWjfKFKbYGhiiIUcYAol5PkTfKukGEkkjCHYA1t023soCaaAj85wCZCnw2zQNAziwxTYmAzTqgxiSvtZNMMrtJvFHRIRDzJ3M1lV0prWNWkMM1/3FAd4W49y6VT3fkMCo8uqG7CfGdgR2DgBCxf9KaNPfW5eDEPOgmE5lK8tVSEI6T+Cg7hbcTf4lFYnlFBnlQgp/0JstsM4Vbwb4B34LOpOsf2S8rrWk2xQMjwaMHXkc2s/E8iW3F5nVFuyEXYISFQIiAHw8dzC6CHgLcyHUVWwznKawZ newt@newt-dev1
@@ -121,3 +145,7 @@
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3dCFNCYVxHQQD+/X1JJ9auAzpj15AkEl6yO4lJ1XL43ljxJbzWXXl3RN9vAjiBE1tvxEfuPEIxF7kO2sc1xPKtkw40RIwXrDIGfjlVCaBLtnxCPnCQX349UMSJl/AXpkHqKGVeAW+AO4zbeI8XnS9aDNMuX6ncgrLRMxWCxETL3J/IIE1LZ5v0QvyQBHuJc5jbyODVb4onff296SbjzYm96elJZcRFo4FzFaIcKtis+Sm4+6OAGCNDIXxfB9e5TK579x+L+ci/W1k83Fcz6NpQU/OM1R1CZVMap/Xet424aRMFPmA8sTF4hdYvWd6adBihco2isaW51b1Gkc+K9N9wELiEBMpdKQtqkPOvm98UhoRk7Wp+8+zSamj1uEs/7m6VCGFebq8V3xqTexWH2dCUznxZ5+KS6WLBh+3f4P6wG8VuWfgFjIUf7jjYKjidBXfSXFDxRkhf/LV8V0jLv+Ma1mjKBUX+rk7IFxm0X/PkjqNhVFlg3rH4Wre0+9WdsTCyzWS0HEaTxIKdPtwwULLEiwClO1LLebdlVjx9yhen0czXxMAHONbZeTvxN8ULfei+b7c07oYm16T8T9JAdiWn5nGxiT8TAUrCPBJMpbE4xQJLztYhAbMpfhFSdkKfTotFxTK9AKpTg4TZFY0NYOktFtV2R9ZnzP7hHZDSIg2Bw== rpromyshlennikov@mirantis.com
     vgusev:
       key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrCyaZjs8hiwx38LfpeQ2z9n9ptwQ7gFrhq2z5sK9q/LQMCubbnp5xhyF0SMY1jmQUewBOKXhnq3QSX+DmtNsnhitnZBw2BE5PBXllCBWMMiWULfAYvB0of728Q3EEjrtyfHkt7o2E+CvreVJcVI4kBwjKh5WpVBZ8mmkW/sexLGMuYu0bUWjCddu6ZlhUa+y14VZKOKp44auemza1VL/UzqOVZkBAfR2gPV2pBG3Im+SlnOlDRxKPEXQbsn3u/sNeZq0wSY++khY86AU7jAKfL2NiNsoA7CyB0jTEKwYO3vOWOhECifZuHwY/TNWyRFWM2ImW3mT9aO7nE4w4jXXJ vgusev@vgusev
+    mpolreich:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC0N+ds8BGTR+ZQo9NSRGRbjv3T8AbPmtSw2nClXxetRdmHpM/mU7/5iD7qfkCXtNptKeCG/Qk44wlijnAtjztJK1qfvyphHe3etZxLnqhYMm73Yy++yKPE/ywFPFb+7kd0BDy2iZqohZpX3gUi5iDnvXUInHNqqtTv3xFe2kmn3lq5bSRuUMtr61nZ7z/fkX8kNfoGxKrm7bhSo5zq4sjTrj3lk1LKZc1HYji3RwrzBM0z4eyed1BaJyDNtG+eFN4nOnvVn59452AR8SmKJXRErk37rEoQn80xszypzybooFPN5dpdB6u9b4xquFCOD83usb8kEjKY9VIYGuXxEEts1KIF20J+xd8UnZU8d4JL50G8JY8zdNgurR3ZyMD2okuord4cpHF8SVecsAyRV6nuhDxVtF2Xn/RriY02jrLoRPsS+3nIrKt9H8vpQZMYJ+jgEpekZhhVfz4AP3pATzOrWENzNXj5G1bLJs1C9aTtwE27EnKW73XekX/GLsehCwsQ21JvDX8PMxJwLVfqvkRlrc5GILEIVgjZ82Cj6Eens1QobymRAEWuEpZxkPx6u0kGO62ri8zFx8+NYwYDz3mwhHDRT34T/Rvzy/9V9xVjkUQOj9cZ3eYBnC1MffJjx8heHDmSQmUd+99zKa9Hzr74z3AvR3AIgFqmu7kx5fIMew== ubuntu@thinkpad-x1
+    ityaptin:
+      key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDLTkl8X9HIJxruAHkmGNQTovy7DCr256pH68xh2DHWinPKUW4ccsCBbqJeF56aEA41OKJlEVOYzD3gQJkDAAbDdy9BlI14oEtzmk3yAtgBwwUzUNMq7oCPrbt4xNg5U26JSb26j69r5vQ4vXA2hf0bCQ68vb3VDqMMaMbneI3rP3qSaq7dauR8sEjx1XAtNen5SygLE46k0pCObJmahGkg39HisoJ/gkjoi/xvQn1JzrYSxWObrBfUbtQN3JbCRozSp/0Env0hMbXj7cS3J/uY68zAWc7GAEFKSmPAol4d/93sRknFUSQKqZjsDaLfiGLte/7oFwLquaz6AJw+mwP ityaptin@ityaptin.local
diff --git a/salt/control/cluster/openstack_gateway_cluster.yml b/salt/control/cluster/openstack_gateway_cluster.yml
new file mode 100644
index 0000000..5d2a20a
--- /dev/null
+++ b/salt/control/cluster/openstack_gateway_cluster.yml
@@ -0,0 +1,26 @@
+parameters:
+  salt:
+    control:
+      size:
+        openstack.gateway:
+          cpu: 32
+          ram: 65536
+          disk_profile: small
+          net_profile: default
+      cluster:
+        internal:
+          domain: ${_param:cluster_domain}
+          engine: virt
+          node:
+            gtw01:
+              provider: kvm01.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: openstack.gateway
+            gtw02:
+              provider: kvm01.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: openstack.gateway
+            gtw03:
+              provider: kvm01.${_param:cluster_domain}
+              image: ${_param:salt_control_xenial_image}
+              size: openstack.gateway
diff --git a/salt/control/cluster/openstack_gateway_single.yml b/salt/control/cluster/openstack_gateway_single.yml
index c1a4588..1b30b6c 100644
--- a/salt/control/cluster/openstack_gateway_single.yml
+++ b/salt/control/cluster/openstack_gateway_single.yml
@@ -14,5 +14,5 @@
           node:
             gtw01:
               provider: kvm01.${_param:cluster_domain}
-              image: ${_param:salt_control_trusty_image}
+              image: ${_param:salt_control_xenial_image}
               size: openstack.gateway