Merge pull request #140 from akscram/oss

Fix extension for the oss team file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..6faf483
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,91 @@
+dist: trusty
+sudo: required
+
+addons:
+  apt:
+    sources:
+    - sourceline: 'deb http://apt.tcpcloud.eu/nightly trusty tcp tcp-salt'
+    - key_url: 'http://apt.tcpcloud.eu/public.gpg'
+    packages:
+    - curl
+    - subversion
+    - git
+    - salt-master
+    - salt-minion
+    - reclass
+    - python-pip
+    - tree
+
+
+#git:
+#  submodules: false
+#
+before_install:
+   - sudo pip install cookiecutter
+#  - test ! -e .gitmodules || sed -i 's,https://\([.a-z0-9_-]*\)/\(.*\),git@\1:\2,' .gitmodules
+#  - test ! -e .gitmodules || git submodule update --init --recursive --remote
+
+env:
+  global:
+    - ENV_DOMAIN=ci.local
+  matrix:
+    - CLUSTER_NAME=openstack_mk_contrail
+    - CLUSTER_NAME=openstack_mk_ovs
+    - CLUSTER_NAME=kubernetes_mk
+
+install:
+  - export RECLASS_SYSTEM=file://$PWD
+  - mkdir ../$CLUSTER_NAME; cd ../$CLUSTER_NAME
+  - export RECLASS_REPO_PATH=$PWD
+  - export RECLASS_REPOSITORY=file://$RECLASS_REPO_PATH
+  - git clone git@github.com:Mirantis/mk2x-cookiecutter-reclass-model.git ../cookiecutter_models; cd ../cookiecutter_models
+  - export COOKIECUTTER_BASE=$PWD
+  - export ENV_DOMAIN=ci.local
+  - COOKIECUTTER_JSON=$COOKIECUTTER_BASE/cluster/$CLUSTER_NAME/cookiecutter.json
+  #- export ENV_DOMAIN=${CLUSTER_NAME//_/-}.$ENV_DOMAIN
+  - export MASTER_HOSTNAME=cfg01.$ENV_DOMAIN
+  - cd $RECLASS_REPO_PATH
+  - git init .
+# CI WORKAROUNDS
+  - export FORMULAS_SOURCE=pkg
+  - sed -i "s/deployment_name/$CLUSTER_NAME/g" $COOKIECUTTER_JSON
+  - sed -i "s/deploy-name.local/$ENV_DOMAIN/g" $COOKIECUTTER_JSON
+  - sed -i 's%.*reclass_repository.*%"reclass_repository":"'$RECLASS_REPOSITORY'",%g' $COOKIECUTTER_JSON
+  - cookiecutter $COOKIECUTTER_BASE/cluster/$CLUSTER_NAME --output-dir ./classes/cluster --no-input
+  - git add ./*
+  - git commit -am "Init, add cluster level"
+  - git submodule add $RECLASS_SYSTEM ./classes/system
+  - |
+    mkdir -p nodes;
+    git branch -a
+    tree -lL 3
+    cat <<-EOF > nodes/cfg01.$ENV_DOMAIN.yml
+    classes:
+      - cluster.$CLUSTER_NAME.infra.config
+    parameters:
+      _param:
+        linux_system_codename: trusty
+        reclass_data_revision: master
+      linux:
+        system:
+          name: cfg01
+          domain: $ENV_DOMAIN
+    # #######################
+
+  - git add ./*
+  - git commit -am "Add system level and salt-master node"
+# CI WORKAROUNDS
+  - export RECLASS_BRANCH=master
+  #- sed -ie "s#\(reclass_data_revision.\).*#\1 $RECLASS_BRANCH#" $(find nodes -name ${MASTER_HOSTNAME}.yml|tail -n1)
+  #- git commit -am "Fake branch update" || true
+# PREREQUSITES
+  - sudo mkdir /srv/salt; sudo cp -a $PWD /srv/salt/reclass
+  - sudo svn export --force https://github.com/salt-formulas/salt-formulas/trunk/deploy/scripts /srv/salt/scripts
+
+script:
+  - cd /srv/salt/scripts
+  - sudo ./salt-master-init.sh || exit 1
+
+after_failure:
+  - tree -lL 3 $RECLASS_REPO_PATH
+  - for i in ls -lta "/tmp/*verify*"; do echo -e "\n\n$i:";tail -n20 $i; done
diff --git a/haproxy/proxy/listen/cicd/aptly.yml b/haproxy/proxy/listen/cicd/aptly.yml
index c1062ed..64115ff 100644
--- a/haproxy/proxy/listen/cicd/aptly.yml
+++ b/haproxy/proxy/listen/cicd/aptly.yml
@@ -1,4 +1,7 @@
 parameters:
+  _param:
+    haproxy_aptly_api_bind_port: 8084
+    haproxy_aptly_public_bind_port: 8085
   haproxy:
     proxy:
       listen:
@@ -11,7 +14,7 @@
           balance: source
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 8084
+              port: ${_param:haproxy_aptly_api_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
@@ -34,7 +37,7 @@
           balance: source
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 8085
+              port: ${_param:haproxy_aptly_public_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
diff --git a/haproxy/proxy/listen/cicd/gerrit.yml b/haproxy/proxy/listen/cicd/gerrit.yml
index efa7ed9..a9f0a3c 100644
--- a/haproxy/proxy/listen/cicd/gerrit.yml
+++ b/haproxy/proxy/listen/cicd/gerrit.yml
@@ -1,4 +1,7 @@
 parameters:
+  _param:
+    haproxy_gerrit_bind_port: 8080
+    haproxy_gerrit_ssh_bind_port: 29418
   haproxy:
     proxy:
       listen:
@@ -12,7 +15,7 @@
           balance: source
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 8080
+              port: ${_param:haproxy_gerrit_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
@@ -31,7 +34,7 @@
           balance: source
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 29418
+              port: ${_param:haproxy_gerrit_ssh_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
diff --git a/haproxy/proxy/listen/cicd/jenkins.yml b/haproxy/proxy/listen/cicd/jenkins.yml
index d907ee3..e91d9f2 100644
--- a/haproxy/proxy/listen/cicd/jenkins.yml
+++ b/haproxy/proxy/listen/cicd/jenkins.yml
@@ -1,4 +1,7 @@
 parameters:
+  _param:
+    haproxy_jenkins_bind_port: 8081
+    haproxy_jenkins_jnlp_bind_port: 50000
   haproxy:
     proxy:
       listen:
@@ -14,7 +17,7 @@
             - action: "del-header X-Frame-Options"
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 8081
+              port: ${_param:haproxy_jenkins_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
@@ -33,7 +36,7 @@
           balance: source
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 50000
+              port: ${_param:haproxy_jenkins_jnlp_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
diff --git a/haproxy/proxy/listen/docker/registry.yml b/haproxy/proxy/listen/docker/registry.yml
index c3d1893..2a86aa4 100644
--- a/haproxy/proxy/listen/docker/registry.yml
+++ b/haproxy/proxy/listen/docker/registry.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    haproxy_docker_registry_listen_port: 5000
   haproxy:
     proxy:
       listen:
@@ -14,7 +16,7 @@
               condition: "if { ssl_fc }"
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 5000
+              port: ${_param:haproxy_docker_registry_listen_port}
               ssl: ${_param:cluster_ssl_certificate}
           servers:
             - name: ${_param:cluster_node01_name}
diff --git a/haproxy/proxy/listen/docker/visualizer.yml b/haproxy/proxy/listen/docker/visualizer.yml
index daacd84..409815c 100644
--- a/haproxy/proxy/listen/docker/visualizer.yml
+++ b/haproxy/proxy/listen/docker/visualizer.yml
@@ -1,4 +1,6 @@
 parameters:
+  _param:
+    haproxy_docker_visualizer_listen_port: 8091
   haproxy:
     proxy:
       listen:
@@ -12,7 +14,7 @@
           balance: source
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 8090
+              port: ${_param:haproxy_docker_visualizer_listen_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
diff --git a/haproxy/proxy/listen/cicd/mysql.yml b/haproxy/proxy/listen/mysql.yml
similarity index 66%
rename from haproxy/proxy/listen/cicd/mysql.yml
rename to haproxy/proxy/listen/mysql.yml
index c6fa56b..a7ef910 100644
--- a/haproxy/proxy/listen/cicd/mysql.yml
+++ b/haproxy/proxy/listen/mysql.yml
@@ -1,4 +1,7 @@
 parameters:
+  _param:
+    haproxy_mysql_bind_port: 3306
+    haproxy_mysql_source_port: 3306
   haproxy:
     proxy:
       listen:
@@ -7,17 +10,17 @@
           balance: source
           binds:
             - address: ${_param:haproxy_bind_address}
-              port: 3306
+              port: ${_param:haproxy_mysql_bind_port}
           servers:
             - name: ${_param:cluster_node01_name}
               host: ${_param:cluster_node01_address}
-              port: 13306
+              port: ${_param:haproxy_mysql_source_port}
               params: check
             - name: ${_param:cluster_node02_name}
               host: ${_param:cluster_node02_address}
-              port: 13306
+              port: ${_param:haproxy_mysql_source_port}
               params: backup check
             - name: ${_param:cluster_node03_name}
               host: ${_param:cluster_node03_address}
-              port: 13306
+              port: ${_param:haproxy_mysql_source_port}
               params: backup check
diff --git a/haproxy/proxy/listen/stats.yml b/haproxy/proxy/listen/stats.yml
new file mode 100644
index 0000000..1d093f1
--- /dev/null
+++ b/haproxy/proxy/listen/stats.yml
@@ -0,0 +1,12 @@
+parameters:
+  _param:
+    haproxy_stats_port: 9600
+  haproxy:
+    proxy:
+      listen:
+        stats:
+          type: stats
+          check: false
+          binds:
+            - address: ${_param:haproxy_bind_address}
+              port: ${_param:haproxy_stats_port}
diff --git a/linux/system/repo/mcp10.yml b/linux/system/repo/mcp10.yml
index 2f1e55c..2581543 100644
--- a/linux/system/repo/mcp10.yml
+++ b/linux/system/repo/mcp10.yml
@@ -3,22 +3,22 @@
     system:
       repo:
         mirantis_openstack:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0 mitaka main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename} mitaka main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/archive-mcp1.0.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename}/archive-mcp1.0.key"
         mirantis_openstack_hotfix:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0 mitaka-hotfix main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename} mitaka-hotfix main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/archive-mcp1.0.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename}/archive-mcp1.0.key"
         mirantis_openstack_security:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0 mitaka-security main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename} mitaka-security main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/archive-mcp1.0.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename}/archive-mcp1.0.key"
         mirantis_openstack_updates:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0 mitaka-updates main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename} mitaka-updates main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/archive-mcp1.0.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename}/archive-mcp1.0.key"
         mirantis_openstack_holdback:
-          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0 mitaka-holdback main"
+          source: "deb http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename} mitaka-holdback main"
           architectures: amd64
-          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/archive-mcp1.0.key"
+          key_url: "http://mirror.fuel-infra.org/mcp-repos/1.0/${_param:linux_system_codename}/archive-mcp1.0.key"
diff --git a/linux/system/repo/mos9_galera.yml b/linux/system/repo/mos9_galera.yml
index f42c71e..f006c5d 100644
--- a/linux/system/repo/mos9_galera.yml
+++ b/linux/system/repo/mos9_galera.yml
@@ -30,7 +30,7 @@
             # Set lowest priority for remain packages from this repo
             # as we want use only galera from here
             - pin: "release a=mos9.0"
-              priority: 400
+              priority: 700
               package: "*"
         mirantis_9_0_mos_updated_repo:
           source: "deb [arch=amd64] http://mirror.fuel-infra.org/mos-repos/ubuntu/9.0 mos9.0-updates restricted main"
@@ -44,5 +44,5 @@
             # Set lowest priority for remain packages from this repo
             # as we want use only galera from here
             - pin: "release a=mos9.0-updates"
-              priority: 400
+              priority: 700
               package: "*"
diff --git a/nginx/server/proxy/openstack/horizon.yml b/nginx/server/proxy/openstack/horizon.yml
new file mode 100644
index 0000000..13df5cb
--- /dev/null
+++ b/nginx/server/proxy/openstack/horizon.yml
@@ -0,0 +1,18 @@
+parameters:
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_horizon:
+          enabled: true
+          type: nginx_proxy
+          name: horizon
+          proxy:
+            host: ${_param:openstack_proxy_address}
+            port: 443
+            protocol: https
+          host:
+            name: ${_param:cluster_public_host}
+            port: 443
+            protocol: https
+          ssl: ${_param:nginx_proxy_ssl}
diff --git a/reclass/storage/system/openstack_gateway_cluster.yml b/reclass/storage/system/openstack_gateway_cluster.yml
index 96ae486..f9d4485 100644
--- a/reclass/storage/system/openstack_gateway_cluster.yml
+++ b/reclass/storage/system/openstack_gateway_cluster.yml
@@ -27,7 +27,7 @@
           - cluster.${_param:cluster_name}.openstack.gateway
           params:
             salt_master_host: ${_param:reclass_config_master}
-            linux_system_codename: trusty
+            linux_system_codename: ${_param:linux_system_codename}
             single_address: ${_param:openstack_gateway_node02_address}
             tenant_address: ${_param:openstack_gateway_node02_tenant_address}
         openstack_gateway_node03: