Merge "Add contrail user to admin tenant"
diff --git a/ceph/osd/cluster.yml b/ceph/osd/cluster.yml
index 31fa050..64f1000 100644
--- a/ceph/osd/cluster.yml
+++ b/ceph/osd/cluster.yml
@@ -5,4 +5,4 @@
     system:
       kernel:
         sysctl:
-          fs.aio-max-nr: 131072
+          fs.aio-max-nr: 1048576
diff --git a/defaults/docker_images.yml b/defaults/docker_images.yml
index a52fbc6..2dede15 100644
--- a/defaults/docker_images.yml
+++ b/defaults/docker_images.yml
@@ -1,13 +1,13 @@
 parameters:
   _param:
     # CI\CD
-    docker_image_compose:    "${_param:mcp_docker_registry}/mirantis/external/compose:${_param:mcp_version}"
+    docker_image_compose:    "${_param:mcp_docker_registry}/mirantis/external/docker/compose:1.17.1"
+    # 2.6.2 version, from 12/18/2108, differ from latest 2.6.2 upstream - update next cycle
     docker_image_registry:   "${_param:mcp_docker_registry}/mirantis/external/registry:${_param:mcp_version}"
     docker_image_visualizer: "${_param:mcp_docker_registry}/mirantis/external/visualizer:${_param:mcp_version}"
-    # openldap:1.1.8
-    docker_image_openldap: "${_param:mcp_docker_registry}/mirantis/external/openldap:${_param:mcp_version}"
+    docker_image_openldap: "${_param:mcp_docker_registry}/mirantis/external/osixia/openldap:1.1.8"
     docker_image_postgresql: "${_param:mcp_docker_registry}/mirantis/external/library/postgres:9.6.10"
-    # library/mongo:3.4 #G
+    # 3.4.13, from Feb 15, differ from 3.4.13 upstream verison, from March 14 - update next cycle
     docker_image_mongodb: "${_param:mcp_docker_registry}/mirantis/external/library/mongo:${_param:mcp_version}"
     ###
     # phpldapadmin:0.6.12
@@ -23,6 +23,7 @@
     docker_image_operations_api: "${_param:mcp_docker_registry}/mirantis/model-generator/operations-api:${_param:mcp_version}"
     docker_image_operations_ui: "${_param:mcp_docker_registry}/mirantis/model-generator/operations-ui:${_param:mcp_version}"
     # stacklight
+    # 6.5.0 version, from 11/29/2018, differ from latest upstream 6.5.0 - update next cycle
     docker_image_alerta: "${_param:mcp_docker_registry}/mirantis/external/alerta-web:${_param:mcp_version}"
     docker_image_alertmanager: "${_param:mcp_docker_registry}/openstack-docker/alertmanager:${_param:mcp_version}"
     docker_image_grafana: "${_param:mcp_docker_registry}/openstack-docker/grafana:${_param:mcp_version}"
diff --git a/defaults/openstack/init.yml b/defaults/openstack/init.yml
index b1578d8..f40654b 100644
--- a/defaults/openstack/init.yml
+++ b/defaults/openstack/init.yml
@@ -96,8 +96,9 @@
     neutron_version: ${_param:openstack_version}
     neutron_upgrade_enabled: ${_param:openstack_upgrade_enabled}
     # Apache mods defaults
+    # Stacklight uses /server-status endpoint to monitor apache
     apache_mods_status_enabled: True
-    apache_mods_status_status: 'disabled'
+    apache_mods_status_status: 'enabled'
     apache_mods_status_host_address: '127.0.0.1'
     apache_mods_status_host_port: 80
     apache_horizon_listen_address: '0.0.0.0'
@@ -127,6 +128,10 @@
     horizon_old_version: ${_param:openstack_old_version}
     horizon_version: ${_param:openstack_version}
     horizon_upgrade_enabled: ${_param:openstack_upgrade_enabled}
+    # Octavia
+    octavia_health_manager_node01_address: 192.168.10.10
+    octavia_health_manager_node02_address: 192.168.10.11
+    octavia_health_manager_node03_address: 192.168.10.12
     # HAproxy
     haproxy_openstack_web_bind_port: ${_param:horizon_public_port}
     #
diff --git a/docker/swarm/stack/jenkins/master.yml b/docker/swarm/stack/jenkins/master.yml
index 45c952f..384ee9f 100644
--- a/docker/swarm/stack/jenkins/master.yml
+++ b/docker/swarm/stack/jenkins/master.yml
@@ -14,7 +14,7 @@
             master:
               environment:
                 JENKINS_HOME: ${_param:jenkins_home_dir_path}
-                JAVA_OPTS: " -server -XX:+AlwaysPreTouch -Xloggc:${_param:jenkins_home_dir_path}/gc-%t.log -XX:NumberOfGCLogFiles=5 -XX:+UseGCLogFileRotation -XX:GCLogFileSize=20m -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -Djenkins.install.runSetupWizard=false -Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=-1 -Dhudson.footerURL=https://www.mirantis.com ${_param:jenkins_master_extra_opts}"
+                JAVA_OPTS: " -server -XX:+AlwaysPreTouch -Xloggc:${_param:jenkins_home_dir_path}/gc-%t.log -XX:NumberOfGCLogFiles=5 -XX:+UseGCLogFileRotation -XX:GCLogFileSize=20m -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+UseG1GC -XX:+ExplicitGCInvokesConcurrent -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:+UseCGroupMemoryLimitForHeap -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -Djenkins.install.runSetupWizard=false -Dhudson.DNSMultiCast.disabled=true -Dhudson.udp=-1 -Dhudson.footerURL=https://www.mirantis.com ${_param:jenkins_master_extra_opts}"
                 JENKINS_NUM_EXECUTORS: ${_param:jenkins_master_executors_num}
                 JENKINS_OPTS: " --handlerCountMax=${_param:jenkins_master_max_concurent_requests}"
                 https_proxy: ${_param:docker_https_proxy}
diff --git a/jenkins/client/job/deploy/update/upgrade_mcp_release.yml b/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
index 6e2ebdf..577e6ac 100644
--- a/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
+++ b/jenkins/client/job/deploy/update/upgrade_mcp_release.yml
@@ -26,12 +26,6 @@
             branch: FETCH_HEAD
             wipe_workspace: True
           param:
-            SALT_MASTER_URL:
-              type: string
-              default: "${_param:jenkins_salt_api_url}"
-            SALT_MASTER_CREDENTIALS:
-              type: string
-              default: "salt"
             MK_PIPELINES_REFSPEC:
               type: string
               default: ""
@@ -40,24 +34,28 @@
               type: string
               default: ""
               description: "Target version of mcp, aka mcp_version"
-            UPDATE_CLUSTER_MODEL:
-              type: boolean
-              default: 'true'
-              description: "Replace `mcp_version` parameter to TARGET_MCP_VERSION in cluster level Reclass model?"
-            UPGRADE_SALTSTACK:
-              type: boolean
-              default: 'true'
-              description: "Upgrade SaltStack packages."
-            UPDATE_PIPELINES:
-              type: boolean
-              default: 'true'
-              description: "Mirror pipelines from upstream/local mirror to Gerrit."
-            UPDATE_LOCAL_REPOS:
-              type: boolean
-              default: 'false'
-              description: "Use only when local repositories are present."
+            GIT_REFSPEC:
+              type: string
+              default: ""
+              description: "Version of git repos to be used, should be release/TARGET_MCP_VERSION"
+            DRIVE_TRAIN_PARAMS:
+              type: text
+              description: "Yaml based DriveTrain releated params"
+              default: |
+                ---
+                SALT_MASTER_URL: "${_param:jenkins_salt_api_url}"
+                SALT_MASTER_CREDENTIALS: "salt"
+                # Replace `mcp_version` parameter to TARGET_MCP_VERSION in cluster level Reclass model?
+                UPDATE_CLUSTER_MODEL: true
+                # Upgrade SaltStack packages
+                UPGRADE_SALTSTACK: true
+                # Mirror pipelines from upstream/local mirror to Gerrit
+                UPDATE_PIPELINES: true
+                # se only when local repositories are present
+                UPDATE_LOCAL_REPOS: false
+                # Next parameters added only for test purposes and not enabled by default
+                # RECLASS_SYSTEM_BRANCH: ''
             PIPELINE_TIMEOUT:
               type: string
               default: '12'
               description: "Sets pipeline timeout in hours. Defaults to '12' if left empty."
-
diff --git a/neutron/client/service/octavia/cluster.yml b/neutron/client/service/octavia/cluster.yml
new file mode 100644
index 0000000..09191f2
--- /dev/null
+++ b/neutron/client/service/octavia/cluster.yml
@@ -0,0 +1,33 @@
+classes:
+- system.neutron.client.service.octavia
+
+parameters:
+  neutron:
+    client:
+      server:
+        octavia_identity:
+          endpoint_type: internalURL
+          network:
+            lb-mgmt-net:
+              port:
+                octavia-health-manager-listen-port-gtw01:
+                  fixed_ips:
+                    - ip_address: ${_param:octavia_health_manager_node01_address}
+                  device_owner: Octavia:health-mgr
+                  binding_host_id: ${_param:openstack_gateway_node01_hostname}
+                  security_groups:
+                    - lb-health-mgr-sec-grp
+                octavia-health-manager-listen-port-gtw02:
+                  fixed_ips:
+                    - ip_address: ${_param:octavia_health_manager_node02_address}
+                  device_owner: Octavia:health-mgr
+                  binding_host_id: ${_param:openstack_gateway_node02_hostname}
+                  security_groups:
+                    - lb-health-mgr-sec-grp
+                octavia-health-manager-listen-port-gtw03:
+                  fixed_ips:
+                    - ip_address: ${_param:octavia_health_manager_node03_address}
+                  device_owner: Octavia:health-mgr
+                  binding_host_id: ${_param:openstack_gateway_node03_hostname}
+                  security_groups:
+                    - lb-health-mgr-sec-grp
\ No newline at end of file
diff --git a/neutron/client/service/octavia.yml b/neutron/client/service/octavia/init.yml
similarity index 85%
rename from neutron/client/service/octavia.yml
rename to neutron/client/service/octavia/init.yml
index f9cc934..57b7b65 100644
--- a/neutron/client/service/octavia.yml
+++ b/neutron/client/service/octavia/init.yml
@@ -1,5 +1,3 @@
-classes:
-- service.neutron.client
 parameters:
   neutron:
     client:
@@ -16,14 +14,6 @@
                   allocation_pools:
                     - start: ${_param:octavia_lb_mgmt_allocation_pool_start}
                       end: ${_param:octavia_lb_mgmt_allocation_pool_end}
-              port:
-                octavia-health-manager-listen-port:
-                  fixed_ips:
-                    - ip_address: ${_param:octavia_hm_bind_ip}
-                  device_owner: Octavia:health-mgr
-                  binding_host_id: ${_param:openstack_gateway_node01_hostname}
-                  security_groups:
-                    - lb-health-mgr-sec-grp
           security_group:
             lb-mgmt-sec-grp:
               tenant: service
@@ -86,5 +76,5 @@
             profile: 'octavia_identity'
           list_octavia_hm_ports:
             mine_function: neutronng.list_ports
-            name: 'octavia-health-manager-listen-port'
+            device_owner: 'Octavia:health-mgr'
             profile: 'octavia_identity'
diff --git a/neutron/client/service/octavia/single.yml b/neutron/client/service/octavia/single.yml
new file mode 100644
index 0000000..b5b65ea
--- /dev/null
+++ b/neutron/client/service/octavia/single.yml
@@ -0,0 +1,19 @@
+classes:
+- system.neutron.client.service.octavia
+
+parameters:
+  neutron:
+    client:
+      server:
+        octavia_identity:
+          endpoint_type: internalURL
+          network:
+            lb-mgmt-net:
+              port:
+                octavia-health-manager-listen-port:
+                  fixed_ips:
+                    - ip_address: ${_param:octavia_health_manager_node01_address}
+                  device_owner: Octavia:health-mgr
+                  binding_host_id: ${_param:openstack_gateway_node01_hostname}
+                  security_groups:
+                    - lb-health-mgr-sec-grp
diff --git a/octavia/manager/cluster.yml b/octavia/manager/cluster.yml
new file mode 100644
index 0000000..4422871
--- /dev/null
+++ b/octavia/manager/cluster.yml
@@ -0,0 +1,19 @@
+classes:
+- service.octavia.manager.cluster
+
+parameters:
+  octavia:
+    manager:
+      enabled: true
+      version: ${_param:octavia_version}
+      ssh:
+        private_key: ${_param:octavia_private_key}
+        user: octavia
+        group: octavia
+      database:
+        host: ${_param:openstack_database_address}
+      identity:
+        region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
+      message_queue:
+        host: ${_param:openstack_message_queue_address}
diff --git a/reclass/storage/system/openstack_gateway_cluster_octavia.yml b/reclass/storage/system/openstack_gateway_cluster_octavia.yml
new file mode 100644
index 0000000..772ea37
--- /dev/null
+++ b/reclass/storage/system/openstack_gateway_cluster_octavia.yml
@@ -0,0 +1,19 @@
+parameters:
+  reclass:
+    storage:
+      node:
+        openstack_gateway_node01:
+          classes:
+          - cluster.${_param:cluster_name}.openstack.octavia_manager
+          params:
+            octavia_hm_bind_ip: ${_param:octavia_health_manager_node01_address}
+        openstack_gateway_node02:
+          classes:
+            - cluster.${_param:cluster_name}.openstack.octavia_manager
+          params:
+            octavia_hm_bind_ip: ${_param:octavia_health_manager_node02_address}
+        openstack_gateway_node03:
+          classes:
+            - cluster.${_param:cluster_name}.openstack.octavia_manager
+          params:
+            octavia_hm_bind_ip: ${_param:octavia_health_manager_node03_address}
\ No newline at end of file
diff --git a/reclass/storage/system/openstack_gateway_single_octavia.yml b/reclass/storage/system/openstack_gateway_single_octavia.yml
index 2a5b952..8c64831 100644
--- a/reclass/storage/system/openstack_gateway_single_octavia.yml
+++ b/reclass/storage/system/openstack_gateway_single_octavia.yml
@@ -5,3 +5,6 @@
         openstack_gateway_node01:
           classes:
           - cluster.${_param:cluster_name}.openstack.octavia_manager
+          params:
+            octavia_hm_bind_ip: ${_param:octavia_health_manager_node01_address}
+
diff --git a/salt/minion/ca/octavia_amphora_ca.yml b/salt/minion/ca/octavia_amphora_ca.yml
index 6865977..2ca132a 100644
--- a/salt/minion/ca/octavia_amphora_ca.yml
+++ b/salt/minion/ca/octavia_amphora_ca.yml
@@ -1,10 +1,33 @@
-classes:
-- system.salt.minion.ca.octavia_ca
-
 parameters:
+  _param:
+    octavia_ca_common_name: Octavia CA
+    octavia_ca_country: cz
+    octavia_ca_locality: Prague
+    octavia_ca_organization: Mirantis
+    octavia_ca_days_valid_authority: 3650
+    octavia_ca_days_valid_certificate: 365
   salt:
     minion:
       ca:
         octavia_ca:
           ca_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/octavia/ca_01.pem
-          ca_key_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/octavia/ca.key
\ No newline at end of file
+          ca_key_file: /srv/salt/env/${_param:salt_master_base_environment}/_certs/octavia/ca.key
+          common_name: ${_param:octavia_ca_common_name}
+          country: ${_param:octavia_ca_country}
+          locality: ${_param:octavia_ca_locality}
+          organization: ${_param:octavia_ca_organization}
+          signing_policy:
+            cert_server:
+              type: v3_edge_cert_server
+              minions: '*'
+            cert_client:
+              type: v3_edge_cert_client
+              minions: '*'
+            cert_open:
+              type: v3_edge_cert_open
+              minions: '*'
+          days_valid:
+            authority: ${_param:octavia_ca_days_valid_authority}
+            certificate: ${_param:octavia_ca_days_valid_certificate}
+          user: octavia
+          group: octavia
\ No newline at end of file