Merge "Increase default netdev_budget values"
diff --git a/defaults/init.yml b/defaults/init.yml
index 6c30995..ef1fe8c 100644
--- a/defaults/init.yml
+++ b/defaults/init.yml
@@ -9,6 +9,7 @@
 - system.defaults.linux_system_repo
 - system.defaults.linux_system_file
 - system.defaults.git
+- system.defaults.jenkins
 - system.defaults.maas
 - system.defaults.openstack
 - system.defaults.galera
diff --git a/defaults/jenkins.yml b/defaults/jenkins.yml
new file mode 100644
index 0000000..36bcbfb
--- /dev/null
+++ b/defaults/jenkins.yml
@@ -0,0 +1,5 @@
+parameters:
+  _param:
+    jenkins_master_port: 8081
+    jenkins_master_protocol: http
+    jenkins_pipelines_branch: "master"
diff --git a/docker/swarm/stack/jenkins/slave_base.yml b/docker/swarm/stack/jenkins/slave_base.yml
index 3af4cc3..91601ab 100644
--- a/docker/swarm/stack/jenkins/slave_base.yml
+++ b/docker/swarm/stack/jenkins/slave_base.yml
@@ -3,7 +3,6 @@
 parameters:
   _param:
     jenkins_master_host: ${_param:control_vip_address}
-    jenkins_master_port: 8081
     jenkins_master_url: http://${_param:jenkins_master_host}:${_param:jenkins_master_port}
     jenkins_slave_user: ${_param:jenkins_client_user}
     jenkins_slave_password: ${_param:jenkins_client_password}
diff --git a/ironic/api/cluster.yml b/ironic/api/cluster.yml
index aa45ec2..7119872 100644
--- a/ironic/api/cluster.yml
+++ b/ironic/api/cluster.yml
@@ -40,3 +40,4 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
diff --git a/ironic/api/single.yml b/ironic/api/single.yml
index 5eb290b..47b64de 100644
--- a/ironic/api/single.yml
+++ b/ironic/api/single.yml
@@ -38,3 +38,4 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
diff --git a/ironic/conductor/cluster.yml b/ironic/conductor/cluster.yml
index 2394a29..917b8d0 100644
--- a/ironic/conductor/cluster.yml
+++ b/ironic/conductor/cluster.yml
@@ -3,6 +3,8 @@
 - system.salt.minion.cert.rabbitmq.clients.openstack.ironic
 - service.ironic.conductor.cluster
 parameters:
+  _param:
+    ironic_conductor_api_url_protocol: 'http'
   linux:
     system:
       package:
@@ -11,7 +13,7 @@
           version: latest
   ironic:
     conductor:
-      api_url: 'http://${_param:cluster_baremetal_vip_address}:6385'
+      api_url: '${_param:ironic_conductor_api_url_protocol}://${_param:cluster_baremetal_vip_address}:6385'
       database:
         x509:
           enabled: ${_param:openstack_mysql_x509_enabled}
@@ -36,6 +38,7 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
       automated_clean: true
       erase_devices_priority: 0
       erase_devices_metadata_priority: 1
@@ -45,3 +48,4 @@
         - ipmitool-shellinabox
         - ipmitool-socat
         - no-console
+      pxe_append_params: 'nofb nomodeset vga=normal ipa-insecure=1'
diff --git a/ironic/conductor/single.yml b/ironic/conductor/single.yml
index e5005da..9cd2e06 100644
--- a/ironic/conductor/single.yml
+++ b/ironic/conductor/single.yml
@@ -37,6 +37,7 @@
           secret_key: ${_param:ironic_memcache_secret_key}
       identity:
         region: ${_param:openstack_region}
+        protocol: ${_param:cluster_internal_protocol}
       automated_clean: true
       erase_devices_priority: 0
       erase_devices_metadata_priority: 1
@@ -46,3 +47,4 @@
         - ipmitool-shellinabox
         - ipmitool-socat
         - no-console
+      pxe_append_params: 'nofb nomodeset vga=normal ipa-insecure=1'
diff --git a/jenkins/client/init.yml b/jenkins/client/init.yml
index 4f0b3f4..d5b7875 100644
--- a/jenkins/client/init.yml
+++ b/jenkins/client/init.yml
@@ -8,9 +8,7 @@
     jenkins_client_user: none
     jenkins_client_password: none
     jenkins_master_host: ${_param:control_vip_address}
-    jenkins_master_port: 8081
     jenkins_aptly_storages: "local"
-    jenkins_pipelines_branch: "master"
   jenkins:
     client:
       master:
diff --git a/jenkins/slave/init.yml b/jenkins/slave/init.yml
index c445c14..20dc641 100644
--- a/jenkins/slave/init.yml
+++ b/jenkins/slave/init.yml
@@ -9,8 +9,6 @@
     jenkins_slave_user: none
     jenkins_slave_password: none
     jenkins_master_host: ${_param:control_vip_address}
-    jenkins_master_port: 8081
-    jenkins_master_protocol: http
   java:
     environment:
       headless: true
diff --git a/neutron/client/service/contrail_public.yml b/neutron/client/service/contrail_public.yml
new file mode 100644
index 0000000..211582e
--- /dev/null
+++ b/neutron/client/service/contrail_public.yml
@@ -0,0 +1,22 @@
+classes:
+- service.neutron.client
+parameters:
+  neutron:
+    client:
+      server:
+        admin_identity:
+          endpoint_type: internalURL
+          network:
+            public:
+              tenant: admin
+              shared: False
+              router_external: True
+              admin_state_up: True
+              subnet:
+                public-subnet:
+                  cidr: ${_param:openstack_public_neutron_subnet_cidr}
+                  allocation_pools:
+                    - start: ${_param:openstack_public_neutron_subnet_allocation_start}
+                      end: ${_param:openstack_public_neutron_subnet_allocation_end}
+                  gateway_ip: ${_param:openstack_public_neutron_subnet_gateway}
+                  enable_dhcp: False
diff --git a/neutron/client/service/contrail_public_v2.yml b/neutron/client/service/contrail_public_v2.yml
new file mode 100644
index 0000000..b94bb98
--- /dev/null
+++ b/neutron/client/service/contrail_public_v2.yml
@@ -0,0 +1,21 @@
+classes:
+- service.neutron.client
+parameters:
+  neutron:
+    client:
+      resources:
+        v2:
+          admin_identity:
+            network:
+              public:
+                shared: False
+                router_external: True
+                subnet:
+                  public-subnet:
+                    cidr: ${_param:openstack_public_neutron_subnet_cidr}
+                    gateway_ip: ${_param:openstack_public_neutron_subnet_gateway}
+                    allocation_pools:
+                      - start: ${_param:openstack_public_neutron_subnet_allocation_start}
+                        end: ${_param:openstack_public_neutron_subnet_allocation_end}
+                    enable_dhcp: False
+                    ip_version: 4
diff --git a/nginx/server/proxy/openstack_web.yml b/nginx/server/proxy/openstack_web.yml
index 2de6606..db4453a 100644
--- a/nginx/server/proxy/openstack_web.yml
+++ b/nginx/server/proxy/openstack_web.yml
@@ -5,12 +5,14 @@
     nginx_proxy_openstack_web_buffer_size:
       number: 4
       size: 256
+    # starting from 2019.2.0 horizon is running under haproxy in HA mode.
+    nginx_server_site_nginx_proxy_openstack_web_enabled: False
   nginx:
     server:
       enabled: true
       site:
         nginx_proxy_openstack_web:
-          enabled: true
+          enabled: ${_param:nginx_server_site_nginx_proxy_openstack_web_enabled}
           type: nginx_proxy
           name: openstack_web
           proxy:
@@ -30,7 +32,7 @@
             protocol: ${_param:horizon_public_protocol}
           ssl: ${_param:nginx_proxy_ssl}
         nginx_ssl_redirect_openstack_web:
-          enabled: true
+          enabled: ${_param:nginx_server_site_nginx_proxy_openstack_web_enabled}
           type: nginx_redirect
           name: openstack_web_redirect
           host: