Merge "Fix calico definitions for k8s master."
diff --git a/defaults/docker_images.yml b/defaults/docker_images.yml
index 8d13c63..a7b4c19 100644
--- a/defaults/docker_images.yml
+++ b/defaults/docker_images.yml
@@ -17,3 +17,4 @@
     docker_image_gerrit: "${_param:mcp_docker_registry}/mirantis/cicd/gerrit:${_param:apt_mk_version}"
     # mysql:5.6
     docker_image_mysql: "${_param:mcp_docker_registry}/mirantis/cicd/mysql:${_param:apt_mk_version}"
+    docker_image_jenkins_slave: ${_param:mcp_docker_registry}/mirantis/cicd/jnlp-slave:${_param:apt_mk_version}
diff --git a/defaults/linux_system_repo.yml b/defaults/linux_system_repo.yml
index 81497c6..1194dce 100644
--- a/defaults/linux_system_repo.yml
+++ b/defaults/linux_system_repo.yml
@@ -38,3 +38,4 @@
     linux_system_repo_mcp_glusterfs_version_number: "3.8"
     linux_system_repo_mcp_saltstack_version_number: "${_param:salt_version}"
     linux_system_repo_mcp_ceph_codename: luminous
+    linux_repo_contrail_component: oc40
diff --git a/docker/swarm/stack/jenkins/slave.yml b/docker/swarm/stack/jenkins/slave.yml
index f3cd90c..1585058 100644
--- a/docker/swarm/stack/jenkins/slave.yml
+++ b/docker/swarm/stack/jenkins/slave.yml
@@ -2,7 +2,6 @@
 - system.docker
 parameters:
   _param:
-    docker_image_jenkins_slave: mirantis/jnlp-slave
     jenkins_master_host: ${_param:control_vip_address}
     jenkins_master_port: 8081
     jenkins_secret: "7c40abc1a7df2d26dd6b2e4421af17218df75a16fcbd5e3aa6017d9f47eaeabe"
diff --git a/elasticsearch/server/curator.yml b/elasticsearch/server/curator.yml
index a73ef44..26349eb 100644
--- a/elasticsearch/server/curator.yml
+++ b/elasticsearch/server/curator.yml
@@ -1,7 +1,8 @@
 parameters:
   _param:
-    elasticsearch_curator_indices_pattern: "^(log|notification)-.*$"
+    elasticsearch_curator_indices_pattern: "^(log|audit)-.*$"
     elasticsearch_curator_retention_period: 31
+    elasticsearch_curator_notifications_retention_period: 90
   linux:
     system:
       cron:
@@ -34,6 +35,22 @@
               unit_count: ${_param:elasticsearch_curator_retention_period}
           - action: delete_indices
             description: >-
+                Delete indices older than ${_param:elasticsearch_curator_notifications_retention_period} days (based on index creation date).
+            options:
+              ignore_empty_list: True
+              continue_if_exception: False
+              disable_action: False
+            filters:
+            - filtertype: pattern
+              kind: regex
+              value: "^notification-.*$"
+            - filtertype: age
+              source: creation_date
+              direction: older
+              unit: days
+              unit_count: ${_param:elasticsearch_curator_notifications_retention_period}
+          - action: delete_indices
+            description: >-
                 Delete indices older than ${_param:elasticsearch_curator_retention_period} days (based on index creation date).
             options:
               ignore_empty_list: True
diff --git a/jenkins/client/job/deploy/update/kubernetes_update.yml b/jenkins/client/job/deploy/update/kubernetes_update.yml
index 5179d9f..4e511b1 100644
--- a/jenkins/client/job/deploy/update/kubernetes_update.yml
+++ b/jenkins/client/job/deploy/update/kubernetes_update.yml
@@ -5,6 +5,7 @@
   _param:
     jenkins_salt_api_url: "http://${_param:salt_master_host}:6969"
     kubernetes_hyperkube_repo: ${_param:mcp_docker_registry}/mirantis/kubernetes
+    kubernetes_calico_repo: ${_param:mcp_docker_registry}/mirantis/projectcalico/calico
   jenkins:
     client:
       job:
@@ -78,3 +79,27 @@
               type: string
               default: ${_param:mcp_docker_registry}
               description: "Artifactory URL where docker images located. Needed to correctly fetch conformance images."
+            UPGRADE_CALICO_V2_TO_V3:
+              type: boolean
+              default: 'false'
+              description: "Perform Calico upgrade from v2.x to v3.x. It is not needed for minor version upgrade (e.g., from v3.1 to v3.2)."
+            CALICO_UPGRADE_VERSION:
+              type: string
+              default: 'v1.0.5'
+              description: "Version of 'calico-upgrade' utility to be used."
+            KUBERNETES_CALICO_IMAGE:
+              type: string
+              default: "${_param:kubernetes_calico_repo}/node:v3.1.3"
+              description: "Versioned calico/node image. Should be null if update rolling via reclass-system level"
+            KUBERNETES_CALICO_CALICOCTL_IMAGE:
+              type: string
+              default: "${_param:kubernetes_calico_repo}/ctl:v3.1.3"
+              description: "Versioned calico/ctl image. Should be null if update rolling via reclass-system level"
+            KUBERNETES_CALICO_CNI_IMAGE:
+              type: string
+              default: "${_param:kubernetes_calico_repo}/cni:v3.1.3"
+              description: "Versioned calico/cni image. Should be null if update rolling via reclass-system level"
+            KUBERNETES_CALICO_KUBE_CONTROLLERS_IMAGE:
+              type: string
+              default: "${_param:kubernetes_calico_repo}/kube-controllers:v3.1.3"
+              description: "Versioned calico/kube-controllers image. Should be null if update rolling via reclass-system level"
diff --git a/jenkins/client/job/validate.yml b/jenkins/client/job/validate.yml
index 03082ac..a73b8ad 100644
--- a/jenkins/client/job/validate.yml
+++ b/jenkins/client/job/validate.yml
@@ -203,7 +203,7 @@
               description: Enable if you need to keep container after the test and debug
             IMAGE:
               type: string
-              default: 'cvp-sanity-checks'
+              default: "${_param:mcp_docker_registry}/mirantis/cvp/cvp-sanity-checks:${_param:apt_mk_version}"
               description: Docker image with tests and all pip dependecies to use for testing
             SALT_MASTER_URL:
               type: string
@@ -222,7 +222,7 @@
               description: e.g. skipped_nodes=nal01.local.com,ntw01.local.com
             TESTS_SET:
               type: string
-              default: "cvp-sanity-checks/cvp_checks/tests/"
+              default: "cvp_checks/tests/"
               description: "Leave as is for full run or add a filename, e.g. _default_path_/test_mtu.py"
             PROXY:
               type: string
@@ -241,6 +241,7 @@
           scm:
             type: git
             url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
             credentials: "gerrit"
             script: cvp-func.groovy
           param:
@@ -304,6 +305,7 @@
           scm:
             type: git
             url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
             credentials: "gerrit"
             script: cvp-ha.groovy
           param:
@@ -372,6 +374,7 @@
           scm:
             type: git
             url: "${_param:jenkins_gerrit_url}/mk/mk-pipelines"
+            branch: "${_param:jenkins_pipelines_branch}"
             credentials: "gerrit"
             script: cvp-perf.groovy
           param:
@@ -446,7 +449,7 @@
             PROXY:
               type: string
               default: ""
-              description: "Proxy address to use to access the Internet. For offline mode, use \"offline\" value."
+              description: "Proxy address to use to access the Internet."
         cvp-spt:
           type: workflow-scm
           name: cvp-spt
@@ -470,7 +473,7 @@
               description: Enable if you need to keep container after the test and debug
             IMAGE:
               type: string
-              default: 'cvp-spt'
+              default: "${_param:mcp_docker_registry}/mirantis/cvp/cvp-spt:${_param:apt_mk_version}"
               description: Docker image with tests and all pip dependecies to use for testing
             SALT_MASTER_URL:
               type: string
@@ -486,10 +489,10 @@
             TESTS_SETTINGS:
               type: string
               default: ""
-              description: "Additional environment variables to export"
+              description: "Additional environment variables to export, e.g. image_name, networks, HW_NODES"
             TESTS_SET:
               type: string
-              default: "cvp-spt/cvp_spt/tests/"
+              default: "cvp_spt/tests/"
               description: "Leave as is for full run or add a filename, e.g. _default_path_/test_glance.py"
             PROXY:
               type: string
diff --git a/keystone/client/v3/service/octavia.yml b/keystone/client/v3/service/octavia.yml
index 56de95b..c02a6b8 100644
--- a/keystone/client/v3/service/octavia.yml
+++ b/keystone/client/v3/service/octavia.yml
@@ -8,18 +8,8 @@
     octavia_service_protocol: http
   keystone:
     client:
-      server:
-        identity:
-          octavia:
-            api_version: 3
-        octavia_identity:
-          admin:
-            api_version: ''
-            user_domain_name: 'Default'
-            project_domain_name: 'Default'
       resources:
         v3:
-          cloud_name: 'octavia_identity'
           roles:
             global_load_balancer_member:
               name: load-balancer_member
diff --git a/kubernetes/common/init.yml b/kubernetes/common/init.yml
index b0ebf53..b4cf429 100644
--- a/kubernetes/common/init.yml
+++ b/kubernetes/common/init.yml
@@ -8,6 +8,7 @@
     kubernetes_hyperkube_repo: ${_param:mcp_binary_registry}/mirantis/kubernetes/hyperkube-binaries
     kubernetes_contrail_cni_repo: ${_param:mcp_docker_registry}/mirantis/kubernetes
     kubernetes_contrail_network_controller_repo: ${_param:mcp_docker_registry}/mirantis/kubernetes/contrail-integration
+    kubernetes_contrail_registry: ${_param:mcp_docker_registry}/opencontrail-${_param:linux_repo_contrail_component}
     kubernetes_netchecker_agent_repo: mirantis
     kubernetes_netchecker_server_repo: mirantis
     kubernetes_virtlet_repo: mirantis
@@ -72,6 +73,11 @@
     kubernetes_calico_cni_image: ${_param:mcp_docker_registry}/mirantis/projectcalico/calico/cni:v3.1.3
     kubernetes_calico_calicoctl_image: ${_param:mcp_docker_registry}/mirantis/projectcalico/calico/ctl:v3.1.3
 
+    kubernetes_opencontrail_controller_image: ${_param:kubernetes_contrail_registry}/opencontrail-controller:${_param:apt_mk_version}
+    kubernetes_opencontrail_analyticsdb_image: ${_param:kubernetes_contrail_registry}/opencontrail-analyticsdb:${_param:apt_mk_version}
+    kubernetes_opencontrail_analytics_image: ${_param:kubernetes_contrail_registry}/opencontrail-analytics:${_param:apt_mk_version}
+    kubernetes_opencontrail_kube_manager_image: ${_param:kubernetes_contrail_registry}/opencontrail-kube-manager:${_param:apt_mk_version}
+
     kubelet_fail_on_swap: true
     kubernetes_dashboard_enabled: true
     kubernetes_kubedns_enabled: false
@@ -159,6 +165,15 @@
         contrail_network_controller:
           enabled: ${_param:kubernetes_contrail_network_controller_enabled}
           image: ${_param:kubernetes_contrail_network_controller_image}
+        opencontrail:
+          controller:
+            image: ${_param:kubernetes_opencontrail_controller_image}
+          analyticsdb:
+            image: ${_param:kubernetes_opencontrail_analyticsdb_image}
+          analytics:
+            image: ${_param:kubernetes_opencontrail_analytics_image}
+          kube_manager:
+            image: ${_param:kubernetes_opencontrail_kube_manager_image}
         flannel:
           image: ${_param:kubernetes_flannel_image}
         telegraf:
diff --git a/neutron/client/service/octavia.yml b/neutron/client/service/octavia.yml
index 90a4a4e..f9cc934 100644
--- a/neutron/client/service/octavia.yml
+++ b/neutron/client/service/octavia.yml
@@ -1,8 +1,6 @@
 classes:
 - service.neutron.client
 parameters:
-  _param:
-    octavia_hm_bind_ip: '192.168.0.12'
   neutron:
     client:
       server:
@@ -14,10 +12,10 @@
               admin_state_up: True
               subnet:
                 lb-mgmt-subnet:
-                  cidr: 192.168.0.0/24
+                  cidr: ${_param:octavia_lb_mgmt_cidr}
                   allocation_pools:
-                    - start: 192.168.0.2
-                      end: 192.168.0.200
+                    - start: ${_param:octavia_lb_mgmt_allocation_pool_start}
+                      end: ${_param:octavia_lb_mgmt_allocation_pool_end}
               port:
                 octavia-health-manager-listen-port:
                   fixed_ips: