aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules26
-rwxr-xr-xmcp/config/states/openstack_ha1
-rwxr-xr-xmcp/config/states/openstack_noha1
-rw-r--r--mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch81
-rw-r--r--mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-openstack-repo.patch40
-rw-r--r--mcp/patches/reclass-system-salt-model/0004-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch39
-rw-r--r--mcp/patches/salt-formula-cinder/0001-Support-rocky-version.patch50
-rw-r--r--mcp/patches/salt-formula-heat/0001-Support-rocky-version.patch66
-rw-r--r--mcp/patches/salt-formula-horizon/0001-Support-rocky-version.patch30
-rw-r--r--mcp/patches/salt-formula-neutron/0001-Support-rocky-version.patch71
-rw-r--r--mcp/patches/salt-formula-nova/0001-Support-rocky-version.patch45
-rw-r--r--mcp/patches/salt-formula-oslo-templates/0001-Handle-lock_path-option-of-oslo.concurrency.patch40
-rw-r--r--mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml.j23
m---------mcp/salt-formulas/salt-formula-cinder0
m---------mcp/salt-formulas/salt-formula-heat0
m---------mcp/salt-formulas/salt-formula-horizon0
m---------mcp/salt-formulas/salt-formula-keystone0
m---------mcp/salt-formulas/salt-formula-neutron0
m---------mcp/salt-formulas/salt-formula-nova0
m---------mcp/salt-formulas/salt-formula-oslo-templates0
-rwxr-xr-xmcp/scripts/docker-compose/files/entrypoint.sh7
21 files changed, 418 insertions, 82 deletions
diff --git a/.gitmodules b/.gitmodules
index fbf1927fb..4c4f73044 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,7 +16,7 @@
branch = master
[submodule "salt-formula-keystone"]
path = mcp/salt-formulas/salt-formula-keystone
- url = https://github.com/salt-formulas/salt-formula-keystone
+ url = https://gerrit.mcp.mirantis.com/salt-formulas/keystone
branch = master
[submodule "salt-formula-maas"]
path = mcp/salt-formulas/salt-formula-maas
@@ -26,3 +26,27 @@
path = mcp/salt-formulas/salt-formula-redis
url = https://gerrit.mcp.mirantis.com/salt-formulas/redis
branch = master
+[submodule "salt-formula-cinder"]
+ path = mcp/salt-formulas/salt-formula-cinder
+ url = https://gerrit.mcp.mirantis.com/salt-formulas/cinder
+ branch = master
+[submodule "salt-formula-heat"]
+ path = mcp/salt-formulas/salt-formula-heat
+ url = https://gerrit.mcp.mirantis.com/salt-formulas/heat
+ branch = master
+[submodule "salt-formula-nova"]
+ path = mcp/salt-formulas/salt-formula-nova
+ url = https://gerrit.mcp.mirantis.com/salt-formulas/nova
+ branch = master
+[submodule "salt-formula-neutron"]
+ path = mcp/salt-formulas/salt-formula-neutron
+ url = https://gerrit.mcp.mirantis.com/salt-formulas/neutron
+ branch = master
+[submodule "salt-formula-oslo-templates"]
+ path = mcp/salt-formulas/salt-formula-oslo-templates
+ url = https://gerrit.mcp.mirantis.com/salt-formulas/oslo-templates
+ branch = master
+[submodule "salt-formula-horizon"]
+ path = mcp/salt-formulas/salt-formula-horizon
+ url = https://gerrit.mcp.mirantis.com/salt-formulas/horizon
+ branch = master
diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha
index 3bd1c51bd..72f401955 100755
--- a/mcp/config/states/openstack_ha
+++ b/mcp/config/states/openstack_ha
@@ -15,6 +15,7 @@ source "$(dirname "${BASH_SOURCE[0]}")/../../scripts/lib.sh"
wait_for 5.0 "salt -I 'keepalived:cluster' state.sls keepalived -b 1"
wait_for 5.0 "salt -I 'keepalived:cluster' pillar.get keepalived:cluster:instance:VIP:address"
+salt -I 'rabbitmq:server' cmd.run 'mkdir -p /etc/rabbitmq && echo HOSTNAME=localhost > /etc/rabbitmq/rabbitmq-env.conf'
wait_for 5.0 "salt -I 'rabbitmq:server:cluster:role:master' state.sls rabbitmq"
salt -I 'rabbitmq:server' state.sls rabbitmq
salt -I 'rabbitmq:server' cmd.run "rabbitmqctl cluster_status"
diff --git a/mcp/config/states/openstack_noha b/mcp/config/states/openstack_noha
index 98e2eff73..a81689e76 100755
--- a/mcp/config/states/openstack_noha
+++ b/mcp/config/states/openstack_noha
@@ -16,6 +16,7 @@ salt -I 'nfs:server' file.mkdir /srv/nova/instances
salt -I 'nfs:server' state.sls nfs
salt -I 'nfs:client' state.sls nfs
+salt -I 'rabbitmq:server' cmd.run 'mkdir -p /etc/rabbitmq && echo HOSTNAME=localhost > /etc/rabbitmq/rabbitmq-env.conf'
salt -I 'rabbitmq:server' state.sls rabbitmq
salt -I 'rabbitmq:server' cmd.run "rabbitmqctl status"
diff --git a/mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch b/mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch
new file mode 100644
index 000000000..3d2605786
--- /dev/null
+++ b/mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch
@@ -0,0 +1,81 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Thu, 7 Jun 2018 21:19:07 +0200
+Subject: [PATCH] linux.system.repo: Drop arch for mcp.mirror repo
+
+Extending the arch list to 'amd64,arm64' would lead to doubling repo
+metadata downloads on all archs, while dropping it will allow APT to
+only download the repo metadata for the current system arch.
+
+Setting the new linux_system_architectures is also problematic in the
+context of mixed-architecture clusters.
+
+To keep old behavior for amd64 and prevent multiple downloads, let's
+just drop the 'architectures' field.
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+
+diff --git a/keystone/client/os_client_config/admin_identity.yml b/keystone/client/os_client_config/admin_identity.yml
+index d31db498..f6b6e5d6 100644
+--- a/keystone/client/os_client_config/admin_identity.yml
++++ b/keystone/client/os_client_config/admin_identity.yml
+@@ -9,7 +9,7 @@ parameters:
+ clouds:
+ admin_identity:
+ region_name: ${_param:openstack_region}
+- identity_api_version: '3'
++ identity_api_version: 3
+ interface: 'internal'
+ auth:
+ username: 'admin'
+diff --git a/keystone/client/v3/service/heat.yml b/keystone/client/v3/service/heat.yml
+index 6c45bfe2..f1d500c7 100644
+--- a/keystone/client/v3/service/heat.yml
++++ b/keystone/client/v3/service/heat.yml
+@@ -6,6 +6,9 @@ parameters:
+ client:
+ resources:
+ v3:
++ domains:
++ heat_user_domain:
++ description: 'Contains users and projects created by heat'
+ roles:
+ heat_stack_user:
+ name: heat_stack_user
+@@ -21,6 +24,14 @@ parameters:
+ service_admin:
+ name: admin
+ project_id: service
++ heat_domain_admin:
++ password: ${_param:heat_domain_admin_password}
++ email: ${_param:admin_email}
++ roles:
++ heat_stack_admin:
++ name: admin
++ role_domain_id: heat_user_domain
++ domain_id: heat_user_domain
+ services:
+ heat:
+ type: orchestration
+diff --git a/linux/system/repo/mcp/mirror/v1/openstack.yml b/linux/system/repo/mcp/mirror/v1/openstack.yml
+index a4a369b2..12647495 100644
+--- a/linux/system/repo/mcp/mirror/v1/openstack.yml
++++ b/linux/system/repo/mcp/mirror/v1/openstack.yml
+@@ -7,9 +7,8 @@ parameters:
+ repo:
+ mirantis_openstack:
+ source: "deb http://mirror.mirantis.com/${_param:apt_mk_version}/openstack-${_param:openstack_version}/${_param:linux_system_codename} ${_param:linux_system_codename} main"
+- architectures: ${_param:linux_system_architecture}
+ clean_file: true
+- key_url: https://mirror.mirantis.com/${_param:apt_mk_version}/openstack-${_param:openstack_version}/${_param:linux_system_codename}/archive-${_param:openstack_version}.key
++ key_url: https://mirror.mirantis.com/${_param:apt_mk_version}/openstack-${_param:openstack_version}/${_param:linux_system_codename}/archive-openstack-${_param:openstack_version}.key
+ pin:
+ - pin: 'release o=Mirantis'
+ priority: 1100
diff --git a/mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-openstack-repo.patch b/mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-openstack-repo.patch
deleted file mode 100644
index 1da4a2124..000000000
--- a/mcp/patches/reclass-system-salt-model/0003-linux.system.repo-Drop-arch-for-openstack-repo.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Wed, 4 Apr 2018 20:08:55 +0200
-Subject: [PATCH] linux.system.repo: Drop arch for openstack repo
-
-Now that mcp-repos mirror has arm64 packages too, we can either extend
-the current architecture list or just drop it and let APT figure it
-out.
-
-Extending the arch list to 'amd64,arm64' would lead to doubling repo
-metadata downloads on all archs, while dropping it will allow APT to
-only download the repo metadata for the current system arch.
-
-To keep old behavior for amd64 and prevent multiple downloads, let's
-just drop the 'architectures' field.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- linux/system/repo/mcp/openstack.yml | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/linux/system/repo/mcp/openstack.yml b/linux/system/repo/mcp/openstack.yml
-index 465b75d0..8de17774 100644
---- a/linux/system/repo/mcp/openstack.yml
-+++ b/linux/system/repo/mcp/openstack.yml
-@@ -7,7 +7,6 @@ parameters:
- repo:
- mirantis_openstack:
- source: "deb http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version} main"
-- architectures: amd64
- key_url: "http://mirror.fuel-infra.org/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}/archive-mcp${_param:openstack_version}.key"
- pin:
- - pin: 'release l=${_param:openstack_version}'
diff --git a/mcp/patches/reclass-system-salt-model/0004-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch b/mcp/patches/reclass-system-salt-model/0004-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch
deleted file mode 100644
index b2337bcf3..000000000
--- a/mcp/patches/reclass-system-salt-model/0004-linux.system.repo-Drop-arch-for-mcp.mirror-repo.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
-:
-: All rights reserved. This program and the accompanying materials
-: are made available under the terms of the Apache License, Version 2.0
-: which accompanies this distribution, and is available at
-: http://www.apache.org/licenses/LICENSE-2.0
-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Thu, 7 Jun 2018 21:19:07 +0200
-Subject: [PATCH] linux.system.repo: Drop arch for mcp.mirror repo
-
-Extending the arch list to 'amd64,arm64' would lead to doubling repo
-metadata downloads on all archs, while dropping it will allow APT to
-only download the repo metadata for the current system arch.
-
-Setting the new linux_system_architectures is also problematic in the
-context of mixed-architecture clusters.
-
-To keep old behavior for amd64 and prevent multiple downloads, let's
-just drop the 'architectures' field.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- linux/system/repo/mcp/mirror/v1/openstack.yml | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/linux/system/repo/mcp/mirror/v1/openstack.yml b/linux/system/repo/mcp/mirror/v1/openstack.yml
-index a4a369b2..933bf53a 100644
---- a/linux/system/repo/mcp/mirror/v1/openstack.yml
-+++ b/linux/system/repo/mcp/mirror/v1/openstack.yml
-@@ -7,7 +7,6 @@ parameters:
- repo:
- mirantis_openstack:
- source: "deb http://mirror.mirantis.com/${_param:apt_mk_version}/openstack-${_param:openstack_version}/${_param:linux_system_codename} ${_param:linux_system_codename} main"
-- architectures: ${_param:linux_system_architecture}
- clean_file: true
- key_url: https://mirror.mirantis.com/${_param:apt_mk_version}/openstack-${_param:openstack_version}/${_param:linux_system_codename}/archive-${_param:openstack_version}.key
- pin:
diff --git a/mcp/patches/salt-formula-cinder/0001-Support-rocky-version.patch b/mcp/patches/salt-formula-cinder/0001-Support-rocky-version.patch
new file mode 100644
index 000000000..abbad47d8
--- /dev/null
+++ b/mcp/patches/salt-formula-cinder/0001-Support-rocky-version.patch
@@ -0,0 +1,50 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Thu, 29 Nov 2018 13:53:14 +0400
+Subject: [PATCH] Support rocky version
+
+Change-Id: I00450e0cdced03ea08ce22ac611b6baafc1c782e
+Related-Prod: PROD-23724
+
+diff --git a/cinder/controller.sls b/cinder/controller.sls
+index f103550..33e062f 100644
+--- a/cinder/controller.sls
++++ b/cinder/controller.sls
+@@ -58,7 +58,7 @@ cinder_controller_packages:
+ {%- set cinder_log_services = controller.services %}
+ {%- endif %}
+
+-{%- if controller.version not in ('ocata','pike','queens') %}
++{%- if controller.version not in ('ocata', 'pike', 'queens', 'rocky') %}
+ {%- do cinder_log_services.append('cinder-api') %}
+ {%- endif %}
+
+@@ -307,7 +307,7 @@ cinder_controller_services:
+ {#- Therefore if api_version is not defined and OpenStack version is mitaka or newton use v2.0. #}
+ {%- if 'api_version' in identity %}
+ {%- set keystone_api_version = identity.get('api_version') %}
+-{%- else %}
++{%- else %}
+ {%- if 'version' in controller and controller.version in ['mitaka', 'newton'] %}
+ {%- set keystone_api_version = 'v2.0' %}
+ {%- else %}
+diff --git a/cinder/map.jinja b/cinder/map.jinja
+index 18050cf..01a967d 100644
+--- a/cinder/map.jinja
++++ b/cinder/map.jinja
+@@ -77,7 +77,7 @@
+ 'BaseDefaults': default_params,
+ 'Debian': {
+ 'pkgs': ['cinder-volume', 'lvm2', 'sysfsutils', 'sg3-utils', 'python-cinder','python-mysqldb','p7zip', 'gettext-base', 'python-memcache', 'python-pycadf'],
+- 'openiscsi_pkgs': ['open-iscsi', 'tgt'],
++ 'openiscsi_pkgs': ['open-iscsi', 'tgt', 'thin-provisioning-tools'],
+ 'iscsitarget_pkgs': ['iscsitarget', 'iscsitarget-dkms'],
+ 'services': ['cinder-volume'],
+ 'iscsitarget_services': ['iscsitarget'],
diff --git a/mcp/patches/salt-formula-heat/0001-Support-rocky-version.patch b/mcp/patches/salt-formula-heat/0001-Support-rocky-version.patch
new file mode 100644
index 000000000..3998ab3dd
--- /dev/null
+++ b/mcp/patches/salt-formula-heat/0001-Support-rocky-version.patch
@@ -0,0 +1,66 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Wed, 28 Nov 2018 13:06:33 +0400
+Subject: [PATCH] Support rocky version
+
+Change-Id: I4116f8cf359f7a3187411577cfcafda115c7be59
+Related-Prod: PROD-23724
+
+diff --git a/heat/files/queens/heat.conf.Debian b/heat/files/queens/heat.conf.Debian
+index f5b4b13..6b90880 100644
+--- a/heat/files/queens/heat.conf.Debian
++++ b/heat/files/queens/heat.conf.Debian
+@@ -230,12 +230,12 @@ region_name_for_services = {{ server.region }}
+
+ # Keystone domain name which contains heat template-defined users. If
+ # `stack_user_domain_id` option is set, this option is ignored. (string value)
+-stack_user_domain_name = {{ server.stack_domain_admin.get('stack_user_domain_name', 'heat_user_domain') }}
++stack_user_domain_name = {{ server.stack_domain_admin.get('domain', 'heat_user_domain') }}
+
+ # Keystone username, a user with roles sufficient to manage users and projects
+ # in the stack_user_domain. (string value)
+ #stack_domain_admin = <None>
+-stack_domain_admin = heat_domain_admin
++stack_domain_admin = {{ server.stack_domain_admin.get('name', 'heat_domain_admin') }}
+
+ # Keystone password for stack_domain_admin user. (string value)
+ #stack_domain_admin_password = <None>
+@@ -257,7 +257,7 @@ stack_domain_admin_password = {{ server.stack_domain_admin.password }}
+ {%- endif %}
+
+ # Maximum raw byte size of any template. (integer value)
+-max_template_size = {{ server.get('max_template_size', 5440000) }}
++max_template_size = {{ server.get('max_template_size', 5440000) }}
+
+ # Maximum depth allowed when using nested stacks. (integer value)
+ #max_nested_stack_depth = 5
+diff --git a/heat/server.sls b/heat/server.sls
+index 02e73b4..037c28a 100644
+--- a/heat/server.sls
++++ b/heat/server.sls
+@@ -156,11 +156,16 @@ keystonercv3:
+ {%- endif %}
+
+ {%- if not grains.get('virtual_subtype', None) == "Docker" %}
+-{%- if server.version != 'juno' %}
++{%- if server.version not in ['juno', 'rocky'] %}
+
+ heat_keystone_setup:
+ cmd.run:
+- - name: 'source /root/keystonercv3; heat-keystone-setup-domain --stack-user-domain-name heat_user_domain --stack-domain-admin heat_domain_admin --stack-domain-admin-password {{ server.stack_domain_admin.password }}'
++ - name: >-
++ source /root/keystonercv3;
++ heat-keystone-setup-domain
++ --stack-user-domain-name {{ server.stack_domain_admin.domain|default('heat_user_domain') }}
++ --stack-domain-admin {{ server.stack_domain_admin.name|default('heat_domain_admin') }}
++ --stack-domain-admin-password {{ server.stack_domain_admin.password }}
+ - shell: /bin/bash
+ - require:
+ - file: /etc/heat/heat.conf
diff --git a/mcp/patches/salt-formula-horizon/0001-Support-rocky-version.patch b/mcp/patches/salt-formula-horizon/0001-Support-rocky-version.patch
new file mode 100644
index 000000000..aff7dfcf0
--- /dev/null
+++ b/mcp/patches/salt-formula-horizon/0001-Support-rocky-version.patch
@@ -0,0 +1,30 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Thu, 20 Dec 2018 16:35:02 +0100
+Subject: [PATCH] Support rocky version
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+
+diff --git a/horizon/files/local_settings/rocky_settings.py b/horizon/files/local_settings/rocky_settings.py
+new file mode 120000
+index 0000000..30ad409
+--- /dev/null
++++ b/horizon/files/local_settings/rocky_settings.py
+@@ -0,0 +1 @@
++queens_settings.py
+\ No newline at end of file
+diff --git a/horizon/files/policy/rocky b/horizon/files/policy/rocky
+new file mode 120000
+index 0000000..06aba54
+--- /dev/null
++++ b/horizon/files/policy/rocky
+@@ -0,0 +1 @@
++queens/
+\ No newline at end of file
diff --git a/mcp/patches/salt-formula-neutron/0001-Support-rocky-version.patch b/mcp/patches/salt-formula-neutron/0001-Support-rocky-version.patch
new file mode 100644
index 000000000..41795486d
--- /dev/null
+++ b/mcp/patches/salt-formula-neutron/0001-Support-rocky-version.patch
@@ -0,0 +1,71 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Tue, 11 Dec 2018 17:27:40 +0400
+Subject: [PATCH] Support rocky version
+
+Change-Id: Ie9439cf50b5dcfb73f63acd1f01c1dcb034358ee
+Related-Prod: PROD-23722
+
+diff --git a/metadata/service/compute/ovn/single.yml b/metadata/service/compute/ovn/single.yml
+index 1665ac8..187f180 100644
+--- a/metadata/service/compute/ovn/single.yml
++++ b/metadata/service/compute/ovn/single.yml
+@@ -33,3 +33,5 @@ parameters:
+ enabled: ${_param:openstack_fluentd_handler_enabled}
+ ossyslog:
+ enabled: ${_param:openstack_ossyslog_handler_enabled}
++ concurrency:
++ lock_path: /var/lock/neutron
+diff --git a/metadata/service/compute/single.yml b/metadata/service/compute/single.yml
+index 96f4268..baeb03c 100644
+--- a/metadata/service/compute/single.yml
++++ b/metadata/service/compute/single.yml
+@@ -47,3 +47,5 @@ parameters:
+ enabled: ${_param:openstack_fluentd_handler_enabled}
+ ossyslog:
+ enabled: ${_param:openstack_ossyslog_handler_enabled}
++ concurrency:
++ lock_path: /var/lock/neutron
+diff --git a/metadata/service/control/cluster.yml b/metadata/service/control/cluster.yml
+index 33ddaa2..4753725 100644
+--- a/metadata/service/control/cluster.yml
++++ b/metadata/service/control/cluster.yml
+@@ -46,6 +46,8 @@ parameters:
+ enabled: ${_param:openstack_fluentd_handler_enabled}
+ ossyslog:
+ enabled: ${_param:openstack_ossyslog_handler_enabled}
++ concurrency:
++ lock_path: /var/lock/neutron
+ message_queue:
+ engine: rabbitmq
+ host: ${_param:cluster_vip_address}
+diff --git a/metadata/service/control/single.yml b/metadata/service/control/single.yml
+index 939856c..448d6fe 100644
+--- a/metadata/service/control/single.yml
++++ b/metadata/service/control/single.yml
+@@ -50,6 +50,8 @@ parameters:
+ enabled: ${_param:openstack_fluentd_handler_enabled}
+ ossyslog:
+ enabled: ${_param:openstack_ossyslog_handler_enabled}
++ concurrency:
++ lock_path: /var/lock/neutron
+ message_queue:
+ engine: rabbitmq
+ host: ${_param:single_address}
+diff --git a/metadata/service/gateway/single.yml b/metadata/service/gateway/single.yml
+index 2649449..631e749 100644
+--- a/metadata/service/gateway/single.yml
++++ b/metadata/service/gateway/single.yml
+@@ -42,3 +42,5 @@ parameters:
+ enabled: ${_param:openstack_fluentd_handler_enabled}
+ ossyslog:
+ enabled: ${_param:openstack_ossyslog_handler_enabled}
++ concurrency:
++ lock_path: /var/lock/neutron
diff --git a/mcp/patches/salt-formula-nova/0001-Support-rocky-version.patch b/mcp/patches/salt-formula-nova/0001-Support-rocky-version.patch
new file mode 100644
index 000000000..f9b08f7a9
--- /dev/null
+++ b/mcp/patches/salt-formula-nova/0001-Support-rocky-version.patch
@@ -0,0 +1,45 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Wed, 28 Nov 2018 17:55:45 +0400
+Subject: [PATCH] Support rocky version
+
+Change-Id: Ie7061f1b68ef3b203d4e169b60996a97ee6778c6
+Related-Prod: PROD-23724
+
+diff --git a/nova/map.jinja b/nova/map.jinja
+index 370f517..d977d8d 100644
+--- a/nova/map.jinja
++++ b/nova/map.jinja
+@@ -18,12 +18,14 @@
+ } %}
+
+ {%- if grains.os_family == "Debian" %}
+-{%- set pkgs_list = [ 'nova-common', 'nova-consoleproxy', 'novnc', 'nova-api', 'nova-conductor', 'nova-consoleauth', 'nova-doc', 'nova-scheduler', 'python-novaclient', 'python-memcache', 'gettext-base', 'python-pycadf'] %}
++{%- set pkgs_list = ['nova-api', 'nova-conductor', 'nova-consoleauth', 'nova-scheduler', 'python-novaclient'] %}
+ {%- set services_list = ['nova-conductor', 'nova-api', 'nova-consoleauth', 'nova-scheduler', 'nova-novncproxy'] %}
+-{%- if pillar.nova.controller is defined and pillar.nova.controller.get('version',{}) in ["juno", "kilo", "liberty", "mitaka"] %}
++{%- set ost_version = pillar.nova.controller is defined and pillar.nova.controller.get('version', None) %}
++{%- if ost_version in ['juno', 'kilo', 'liberty', 'mitaka'] %}
+ {%- do pkgs_list.append('nova-cert') %}
+ {%- do services_list.append('nova-cert') %}
+ {%- endif %}
++{%- do pkgs_list.append('nova-novncproxy' if ost_version in ['rocky'] else 'nova-consoleproxy') %}
+ {%- endif %}
+
+ {%- if grains.os_family == "RedHat" %}
+@@ -174,7 +176,7 @@ BaseDefaults: {{ default_params }}
+ Debian:
+ pkgs:
+ - nova-common
+- - nova-compute-kvm
++ - nova-compute
+ - python-novaclient
+ - pm-utils
+ - sysfsutils
diff --git a/mcp/patches/salt-formula-oslo-templates/0001-Handle-lock_path-option-of-oslo.concurrency.patch b/mcp/patches/salt-formula-oslo-templates/0001-Handle-lock_path-option-of-oslo.concurrency.patch
new file mode 100644
index 000000000..61b19c30d
--- /dev/null
+++ b/mcp/patches/salt-formula-oslo-templates/0001-Handle-lock_path-option-of-oslo.concurrency.patch
@@ -0,0 +1,40 @@
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+: Copyright (c) 2018 Mirantis Inc., Enea AB and others.
+:
+: All rights reserved. This program and the accompanying materials
+: are made available under the terms of the Apache License, Version 2.0
+: which accompanies this distribution, and is available at
+: http://www.apache.org/licenses/LICENSE-2.0
+::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+From: Michael Polenchuk <mpolenchuk@mirantis.com>
+Date: Tue, 18 Dec 2018 11:59:51 +0400
+Subject: [PATCH] Handle lock_path option of oslo.concurrency
+
+Neutron agents requires lock_path option to be set
+to perform concurrency actions.
+
+Change-Id: If0a297fc2bb6f01bb8be9b31237f8e135d254a14
+Related-Prod: PROD-23722
+
+diff --git a/oslo_templates/files/queens/oslo/_concurrency.conf b/oslo_templates/files/queens/oslo/_concurrency.conf
+index 856ae0d..cd6b7ed 100644
+--- a/oslo_templates/files/queens/oslo/_concurrency.conf
++++ b/oslo_templates/files/queens/oslo/_concurrency.conf
+@@ -16,3 +16,6 @@ disable_process_locking = {{ _data.disable_process_locking }}
+ # tempfile.gettempdir function to find a suitable location. If
+ # external locks are used, a lock path must be set. (string value)
+ #lock_path = /tmp
++{%- if _data.lock_path is defined %}
++lock_path = {{ _data.lock_path }}
++{%- endif %}
+diff --git a/oslo_templates/files/rocky/oslo/_concurrency.conf b/oslo_templates/files/rocky/oslo/_concurrency.conf
+index 856ae0d..cd6b7ed 100644
+--- a/oslo_templates/files/rocky/oslo/_concurrency.conf
++++ b/oslo_templates/files/rocky/oslo/_concurrency.conf
+@@ -16,3 +16,6 @@ disable_process_locking = {{ _data.disable_process_locking }}
+ # tempfile.gettempdir function to find a suitable location. If
+ # external locks are used, a lock path must be set. (string value)
+ #lock_path = /tmp
++{%- if _data.lock_path is defined %}
++lock_path = {{ _data.lock_path }}
++{%- endif %}
diff --git a/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml.j2 b/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml.j2
index 135b82d23..aba648c67 100644
--- a/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml.j2
+++ b/mcp/reclass/classes/cluster/mcp-odl-noha/opendaylight/control.yml.j2
@@ -7,8 +7,7 @@
##############################################################################
---
classes:
- - system.linux.system.repo.mcp.openstack
- - system.linux.system.repo.mcp.extra
+ - system.linux.system.repo.mcp.mirror.v1.openstack
- service.opendaylight.server.single
- service.quagga.server.single
- cluster.mcp-odl-noha
diff --git a/mcp/salt-formulas/salt-formula-cinder b/mcp/salt-formulas/salt-formula-cinder
new file mode 160000
+Subproject 8dad216af1b86a3297f6d1a7b4dd1abe5586fdb
diff --git a/mcp/salt-formulas/salt-formula-heat b/mcp/salt-formulas/salt-formula-heat
new file mode 160000
+Subproject f27b09d94f677fc3df2e55c28a3cd5711c32476
diff --git a/mcp/salt-formulas/salt-formula-horizon b/mcp/salt-formulas/salt-formula-horizon
new file mode 160000
+Subproject 79f291a971dafeaad5adf27d3c4ba7559e19183
diff --git a/mcp/salt-formulas/salt-formula-keystone b/mcp/salt-formulas/salt-formula-keystone
-Subproject df75142aaf6487c3af9e2868f4f12ef18228ca9
+Subproject e2bb1e90901ae0c9e9e5c14fd9495809cfd47f5
diff --git a/mcp/salt-formulas/salt-formula-neutron b/mcp/salt-formulas/salt-formula-neutron
new file mode 160000
+Subproject e58671b2069e8ceae87d55052b770d35c688cda
diff --git a/mcp/salt-formulas/salt-formula-nova b/mcp/salt-formulas/salt-formula-nova
new file mode 160000
+Subproject 430d1f71274acbd33c3e628ee3a5d5e926bffd5
diff --git a/mcp/salt-formulas/salt-formula-oslo-templates b/mcp/salt-formulas/salt-formula-oslo-templates
new file mode 160000
+Subproject 47ecec73a582f2f0634b297c05b97077fac300e
diff --git a/mcp/scripts/docker-compose/files/entrypoint.sh b/mcp/scripts/docker-compose/files/entrypoint.sh
index 0199c3901..eb549bc28 100755
--- a/mcp/scripts/docker-compose/files/entrypoint.sh
+++ b/mcp/scripts/docker-compose/files/entrypoint.sh
@@ -69,6 +69,13 @@ for formula in /usr/share/salt-formulas/reclass/service/*; do
ln -sf "${formula}" "/srv/salt/reclass/classes/service/$(basename ${formula})"
done
+# Temporary link queens configs to rocky
+for f in /srv/salt/env/prd/*/files/queens; do
+ if [ ! -d "$f/../rocky" ]; then
+ ln -sf "$f" "$f/../rocky"
+ fi
+done
+
# Tini init system resembles upstart very much, but needs a little adjustment
sed -i -e "s|return 'start/running' in |return 'is running' in |" \
-e "s|ret = _default_runlevel|return _default_runlevel|" \