diff options
37 files changed, 439 insertions, 139 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/scenario/os-odl-bgpvpn-noha.yaml b/mcp/config/scenario/os-odl-bgpvpn-noha.yaml index d49fcf677..1b2e2d0fb 100644 --- a/mcp/config/scenario/os-odl-bgpvpn-noha.yaml +++ b/mcp/config/scenario/os-odl-bgpvpn-noha.yaml @@ -14,7 +14,6 @@ cluster: - neutron_gateway - quagga - networks - - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-nofeature-ha.yaml b/mcp/config/scenario/os-odl-nofeature-ha.yaml index 61a28891d..51d476de5 100644 --- a/mcp/config/scenario/os-odl-nofeature-ha.yaml +++ b/mcp/config/scenario/os-odl-nofeature-ha.yaml @@ -12,7 +12,6 @@ cluster: - opendaylight - openstack_ha - networks - - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-nofeature-noha.yaml b/mcp/config/scenario/os-odl-nofeature-noha.yaml index b43f790ce..3133d0e62 100644 --- a/mcp/config/scenario/os-odl-nofeature-noha.yaml +++ b/mcp/config/scenario/os-odl-nofeature-noha.yaml @@ -13,7 +13,6 @@ cluster: - openstack_noha - neutron_gateway - networks - - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-ovs-noha.yaml b/mcp/config/scenario/os-odl-ovs-noha.yaml index 02f652bee..e2df6a476 100644 --- a/mcp/config/scenario/os-odl-ovs-noha.yaml +++ b/mcp/config/scenario/os-odl-ovs-noha.yaml @@ -14,7 +14,6 @@ cluster: - openstack_noha - neutron_gateway - networks - - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/scenario/os-odl-sfc-noha.yaml b/mcp/config/scenario/os-odl-sfc-noha.yaml index 88ad1037b..8611b0261 100644 --- a/mcp/config/scenario/os-odl-sfc-noha.yaml +++ b/mcp/config/scenario/os-odl-sfc-noha.yaml @@ -14,7 +14,6 @@ cluster: - neutron_gateway - tacker - networks - - sqlalchemy_update virtual: nodes: control: diff --git a/mcp/config/states/openstack_ha b/mcp/config/states/openstack_ha index 924dc30f1..a45d397d3 100755 --- a/mcp/config/states/openstack_ha +++ b/mcp/config/states/openstack_ha @@ -15,7 +15,8 @@ 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" -wait_for 5.0 "salt -C 'I@rabbitmq:server and *01*' state.sls rabbitmq" +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:cluster:role:master' state.sls rabbitmq" salt -I 'rabbitmq:server' state.sls rabbitmq salt -I 'rabbitmq:server' cmd.run "rabbitmqctl cluster_status" @@ -34,9 +35,8 @@ salt -I 'haproxy:proxy' state.sls haproxy salt -I 'haproxy:proxy' service.status haproxy salt -I 'haproxy:proxy' service.restart rsyslog -set +e; salt -I 'keystone:server' state.sls keystone.server -b 1; set -e -salt -I 'keystone:server' service.restart apache2 salt -I 'keystone:server' state.sls keystone.server -b 1 +salt -I 'keystone:server' service.restart apache2 wait_for 30.0 "salt -I 'keystone:client' state.sls keystone.client" salt -I 'keystone:server' cmd.run ". /root/keystonercv3; openstack service list" diff --git a/mcp/config/states/openstack_noha b/mcp/config/states/openstack_noha index 44360e5e9..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" @@ -23,17 +24,14 @@ salt -I 'mysql:server' state.sls mysql salt -I 'memcached:server' state.sls memcached salt -I 'haproxy:proxy' state.sls haproxy -set +e; salt -I 'keystone:server' state.sls keystone.server; set -e -salt -I 'keystone:server' service.restart apache2 salt -I 'keystone:server' state.sls keystone.server +salt -I 'keystone:server' service.restart apache2 salt -I 'keystone:server' state.sls keystone.client salt -I 'keystone:server' cmd.run ". /root/keystonercv3; openstack service list" salt -I 'glance:server' state.sls glance -# apply nova state twice to complete broken db sync -salt -I 'nova:controller' state.sls nova salt -I 'nova:controller' state.sls nova salt -I 'heat:server' state.sls heat diff --git a/mcp/config/states/sqlalchemy_update b/mcp/config/states/sqlalchemy_update deleted file mode 100755 index d4901a9c5..000000000 --- a/mcp/config/states/sqlalchemy_update +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -e -############################################################################## -# 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 -############################################################################## - -sqlalchemy_ver=1.2.1 - -salt -I 'neutron:server' pkg.install python-pip -salt -I 'neutron:server' cmd.run \ - "sudo -H -u neutron pip install --user SQLAlchemy==${sqlalchemy_ver}" - -salt -I 'neutron:server' service.restart neutron-server 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..39b146495 --- /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..62fe935fe --- /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/all-mcp-arch-common/infra/maas.yml.j2 b/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/maas.yml.j2 index 4b11478e4..18d208134 100644 --- a/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/maas.yml.j2 +++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/infra/maas.yml.j2 @@ -82,8 +82,8 @@ parameters: armband: name: armband enabled: '1' - url: 'http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename}' - distributions: '${_param:openstack_version}-armband' + url: 'http://linux.enea.com/mcp-repos/${_param:armband_repo_version}/${_param:linux_system_codename}' + distributions: '${_param:armband_repo_version}-armband' components: 'main' arches: 'arm64' key: ${_param:armband_key} diff --git a/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 index dfa1d89cc..b0ca10205 100644 --- a/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 +++ b/mcp/reclass/classes/cluster/all-mcp-arch-common/init.yml.j2 @@ -12,7 +12,7 @@ classes: - cluster.all-mcp-arch-common.passwords parameters: _param: - openstack_version: queens + openstack_version: rocky apt_mk_version: nightly mcp_repo_version: 1.1 diff --git a/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml.j2 index 6b344efac..349d4f1c8 100644 --- a/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-ha/infra/kvm.yml.j2 @@ -8,6 +8,7 @@ {%- import 'net_map.j2' as nm with context %} --- classes: + - system.linux.system.repo.mcp.mirror.v1.openstack - service.keepalived.cluster.single - system.glusterfs.server.volume.glance - system.glusterfs.server.volume.keystone diff --git a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 index 41625e8ff..0770f5c45 100644 --- a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_control.yml.j2 @@ -28,6 +28,7 @@ classes: - system.glusterfs.client.cluster - system.glusterfs.client.volume.glance - system.glusterfs.client.volume.keystone + - cluster.mcp-common-ha.glusterfs_repo {%- if not conf.MCP_VCP %} # sync from kvm - service.keepalived.cluster.single @@ -44,7 +45,6 @@ classes: # - system.salt.control.cluster.stacklight_server_cluster # - system.salt.control.cluster.stacklight_log_cluster # - system.salt.control.cluster.stacklight_telemetry_cluster - - cluster.mcp-common-ha.glusterfs_repo - cluster.mcp-common-ha.infra.kvm_pdf - cluster.all-mcp-arch-common.opnfv.maas_proxy - cluster.all-mcp-arch-common.opnfv.lab_proxy_pdf diff --git a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_init.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_init.yml.j2 index bb76fdb10..2434a9117 100644 --- a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_init.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_init.yml.j2 @@ -7,8 +7,6 @@ ############################################################################## {%- import 'net_map.j2' as nm with context %} --- -classes: - - cluster.all-mcp-arch-common.uca_repo parameters: _param: # openstack service addresses @@ -123,6 +121,7 @@ parameters: neutron_compute_agent_mode: legacy neutron_compute_external_access: 'True' galera_server_cluster_name: openstack_cluster + armband_repo_version: 'queens' # ${_param:openstack_version} glance_version: ${_param:openstack_version} glance_service_host: ${_param:openstack_control_address} keystone_version: ${_param:openstack_version} @@ -197,18 +196,13 @@ parameters: # billometer_identity_token: ${_param:keystone_service_token} linux: system: - repo: - uca: - pin: - - pin: 'release o=Canonical' - priority: 1200 - package: 'libvirt* qemu* openvswitch* python-openvswitch ovn* dpdk* libdpdk*' {%- if 'aarch64' in nm.cluster.arch %} + repo: armband_3: # Should be in sync with the repo config generated via curtin/MaaS - source: "deb http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version}-armband main" + source: "deb http://linux.enea.com/mcp-repos/${_param:armband_repo_version}/${_param:linux_system_codename} ${_param:armband_repo_version}-armband main" key: ${_param:armband_key} pin: - - pin: 'release a=${_param:openstack_version}-armband' + - pin: 'release a=${_param:armband_repo_version}-armband' priority: 1201 package: '*' {%- endif %} diff --git a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_telemetry.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_telemetry.yml.j2 index fad9052cc..7f2f269a7 100644 --- a/mcp/reclass/classes/cluster/mcp-common-ha/openstack_telemetry.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-ha/openstack_telemetry.yml.j2 @@ -49,7 +49,7 @@ parameters: kernel/mm/transparent_hugepage/enabled: never redis: server: - version: 3.0 + version: 5.0 appendfsync: 'no' bind: address: ${_param:single_address} diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml index f3c668f08..41841c922 100644 --- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml +++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_compute.yml @@ -15,7 +15,7 @@ classes: - system.ceilometer.client.nova_compute - system.ceilometer.client.cinder_volume - system.ceilometer.agent.polling.default - - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.mirror.v1.openstack - service.barbican.client.single - cluster.mcp-common-noha.openstack_compute_pdf parameters: diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2 index 02a9168d0..d36d5830a 100644 --- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_control.yml.j2 @@ -8,7 +8,7 @@ --- classes: - system.linux.system.lowmem - - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.mirror.v1.openstack - service.nfs.server - system.ceilometer.client - system.ceilometer.client.neutron @@ -164,7 +164,7 @@ parameters: ~database: ~ redis: server: - version: 3.0 + version: 5.0 appendfsync: 'no' bind: address: ${_param:single_address} diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml index f29cb867c..499749d82 100644 --- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml +++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_gateway.yml @@ -7,7 +7,7 @@ ############################################################################## --- classes: - - system.linux.system.repo.mcp.openstack + - system.linux.system.repo.mcp.mirror.v1.openstack - cluster.mcp-common-noha.openstack_gateway_pdf parameters: _param: diff --git a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2 b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2 index 54df34cc6..8147b8c47 100644 --- a/mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2 +++ b/mcp/reclass/classes/cluster/mcp-common-noha/openstack_init.yml.j2 @@ -7,8 +7,6 @@ ############################################################################## {%- import 'net_map.j2' as nm with context %} --- -classes: - - cluster.all-mcp-arch-common.uca_repo parameters: _param: openstack_region: RegionOne @@ -34,6 +32,7 @@ parameters: cluster_node02_address: ${_param:opnfv_openstack_control_node02_address} cluster_node03_hostname: ctl03 cluster_node03_address: ${_param:opnfv_openstack_control_node03_address} + armband_repo_version: 'queens' # ${_param:openstack_version} glance_version: ${_param:openstack_version} glance_service_host: ${_param:cluster_local_address} keystone_version: ${_param:openstack_version} @@ -83,18 +82,13 @@ parameters: net.ipv4.tcp_congestion_control: yeah net.ipv4.tcp_slow_start_after_idle: 0 net.ipv4.tcp_fin_timeout: 30 - repo: - uca: - pin: - - pin: 'release o=Canonical' - priority: 1200 - package: 'openvswitch* python-openvswitch ovn* dpdk* libdpdk*' {%- if 'aarch64' in nm.cluster.arch %} + repo: armband_3: # Should be in sync with the repo config generated via curtin/MaaS - source: "deb http://linux.enea.com/mcp-repos/${_param:openstack_version}/${_param:linux_system_codename} ${_param:openstack_version}-armband main" + source: "deb http://linux.enea.com/mcp-repos/${_param:armband_repo_version}/${_param:linux_system_codename} ${_param:armband_repo_version}-armband main" key: ${_param:armband_key} pin: - - pin: 'release a=${_param:openstack_version}-armband' + - pin: 'release a=${_param:armband_repo_version}-armband' priority: 1201 package: '*' {%- 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|" \ |