diff options
-rw-r--r-- | ci/environments/scenario001-multinode-containers.yaml | 3 | ||||
-rw-r--r-- | ci/environments/scenario001-multinode.yaml | 3 | ||||
-rw-r--r-- | common/major_upgrade_steps.j2.yaml | 27 | ||||
-rw-r--r-- | docker/services/nova-compute.yaml | 11 | ||||
-rw-r--r-- | docker/services/nova-conductor.yaml | 12 | ||||
-rw-r--r-- | docker/services/pacemaker/database/mysql.yaml | 4 | ||||
-rw-r--r-- | extraconfig/tasks/tripleo_upgrade_node.sh | 46 | ||||
-rw-r--r-- | overcloud.j2.yaml | 37 | ||||
-rw-r--r-- | puppet/role.role.j2.yaml | 15 |
9 files changed, 60 insertions, 98 deletions
diff --git a/ci/environments/scenario001-multinode-containers.yaml b/ci/environments/scenario001-multinode-containers.yaml index 0cdbef13..b625f716 100644 --- a/ci/environments/scenario001-multinode-containers.yaml +++ b/ci/environments/scenario001-multinode-containers.yaml @@ -97,6 +97,8 @@ parameter_defaults: ControllerExtraConfig: nova::compute::libvirt::services::libvirt_virt_type: qemu nova::compute::libvirt::libvirt_virt_type: qemu + # This makes the job twice as fast + ceilometer::agent::polling::polling_interval: 15 Debug: true #NOTE(gfidente): not great but we need this to deploy on ext4 #http://docs.ceph.com/docs/jewel/rados/configuration/filesystem-recommendations/ @@ -128,6 +130,7 @@ parameter_defaults: GlanceBackend: rbd GnocchiBackend: rbd CinderEnableIscsiBackend: false + GnocchiArchivePolicy: 'high' BannerText: | ****************************************************************** * This system is for the use of authorized users only. Usage of * diff --git a/ci/environments/scenario001-multinode.yaml b/ci/environments/scenario001-multinode.yaml index bab08a30..302b0344 100644 --- a/ci/environments/scenario001-multinode.yaml +++ b/ci/environments/scenario001-multinode.yaml @@ -94,6 +94,8 @@ parameter_defaults: ControllerExtraConfig: nova::compute::libvirt::services::libvirt_virt_type: qemu nova::compute::libvirt::libvirt_virt_type: qemu + # This makes the job twice as fast + ceilometer::agent::polling::polling_interval: 15 Debug: true #NOTE(gfidente): not great but we need this to deploy on ext4 #http://docs.ceph.com/docs/jewel/rados/configuration/filesystem-recommendations/ @@ -114,6 +116,7 @@ parameter_defaults: GlanceBackend: rbd GnocchiBackend: rbd CinderEnableIscsiBackend: false + GnocchiArchivePolicy: 'high' BannerText: | ****************************************************************** * This system is for the use of authorized users only. Usage of * diff --git a/common/major_upgrade_steps.j2.yaml b/common/major_upgrade_steps.j2.yaml index 11113eec..7fc91153 100644 --- a/common/major_upgrade_steps.j2.yaml +++ b/common/major_upgrade_steps.j2.yaml @@ -54,7 +54,6 @@ resources: params: ROLE_NAME: {{role.name}} - get_file: ../extraconfig/tasks/pacemaker_common_functions.sh - - get_file: ../extraconfig/tasks/run_puppet.sh - get_file: ../extraconfig/tasks/tripleo_upgrade_node.sh {{role.name}}DeliverUpgradeScriptDeployment: @@ -129,32 +128,6 @@ resources: {%- endfor %} {%- endfor %} -# Dump the puppet manifests to be apply later when disable_upgrade_deployment -# is to true -{% for role in roles if role.disable_upgrade_deployment|default(false) %} - {{role.name}}DeliverPuppetConfig: - type: OS::Heat::SoftwareConfig - properties: - group: script - config: - list_join: - - '' - - - str_replace: - template: | - #!/bin/bash - cat > /root/{{role.name}}_puppet_config.pp << ENDOFCAT - PUPPET_CLASSES - ENDOFCAT - params: - PUPPET_CLASSES: {get_param: [role_data, {{role.name}}, step_config]} - - {{role.name}}DeliverPuppetDeployment: - type: OS::Heat::SoftwareDeploymentGroup - properties: - servers: {get_param: [servers, {{role.name}}]} - config: {get_resource: {{role.name}}DeliverPuppetConfig} -{% endfor %} - # Upgrade Steps for all roles {%- for step in range(0, upgrade_steps_max) %} # Config resources for step {{step}} diff --git a/docker/services/nova-compute.yaml b/docker/services/nova-compute.yaml index 39d1740c..bf7841be 100644 --- a/docker/services/nova-compute.yaml +++ b/docker/services/nova-compute.yaml @@ -41,6 +41,10 @@ parameters: description: Port that dockerized nova migration target sshd service binds to. type: number + UpgradeLevelNovaCompute: + type: string + description: Nova Compute upgrade level + default: '' resources: @@ -142,6 +146,13 @@ outputs: path: /etc/ceph state: directory upgrade_tasks: + - name: Set compute upgrade level to auto + tags: step1 + ini_file: + str_replace: + template: "dest=/etc/nova/nova.conf section=upgrade_levels option=compute value=LEVEL" + params: + LEVEL: {get_param: UpgradeLevelNovaCompute} - name: Stop and disable nova-compute service tags: step2 service: name=openstack-nova-compute state=stopped enabled=no diff --git a/docker/services/nova-conductor.yaml b/docker/services/nova-conductor.yaml index ae737056..17d137cc 100644 --- a/docker/services/nova-conductor.yaml +++ b/docker/services/nova-conductor.yaml @@ -36,7 +36,10 @@ parameters: default: {} description: Parameters specific to the role type: json - + UpgradeLevelNovaCompute: + type: string + description: Nova Compute upgrade level + default: '' resources: @@ -108,6 +111,13 @@ outputs: path: /var/log/containers/nova state: directory upgrade_tasks: + - name: Set compute upgrade level to auto + tags: step1 + ini_file: + str_replace: + template: "dest=/etc/nova/nova.conf section=upgrade_levels option=compute value=LEVEL" + params: + LEVEL: {get_param: UpgradeLevelNovaCompute} - name: Stop and disable nova_conductor service tags: step2 service: name=openstack-nova-conductor state=stopped enabled=no diff --git a/docker/services/pacemaker/database/mysql.yaml b/docker/services/pacemaker/database/mysql.yaml index 3de1696d..f57f779e 100644 --- a/docker/services/pacemaker/database/mysql.yaml +++ b/docker/services/pacemaker/database/mysql.yaml @@ -162,13 +162,13 @@ outputs: # Kolla bootstraps aren't idempotent, explicitly checking if bootstrap was done command: - 'bash' - - '-ec' + - '-ecx' - list_join: - "\n" - - 'if [ -e /var/lib/mysql/mysql ]; then exit 0; fi' - 'kolla_start' - - 'mysqld_safe --skip-networking --wsrep-on=OFF &' + - 'mysqld_safe --skip-networking --wsrep-on=OFF --wsrep-provider=none &' - 'timeout ${DB_MAX_TIMEOUT} /bin/bash -c ''until mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" ping 2>/dev/null; do sleep 1; done''' - 'mysql -uroot -p"${DB_ROOT_PASSWORD}" -e "CREATE USER ''clustercheck''@''localhost'' IDENTIFIED BY ''${DB_CLUSTERCHECK_PASSWORD}'';"' - 'mysql -uroot -p"${DB_ROOT_PASSWORD}" -e "GRANT PROCESS ON *.* TO ''clustercheck''@''localhost'' WITH GRANT OPTION;"' diff --git a/extraconfig/tasks/tripleo_upgrade_node.sh b/extraconfig/tasks/tripleo_upgrade_node.sh index baf838e4..95de99be 100644 --- a/extraconfig/tasks/tripleo_upgrade_node.sh +++ b/extraconfig/tasks/tripleo_upgrade_node.sh @@ -26,52 +26,8 @@ fi DEBUG="true" SCRIPT_NAME=$(basename $0) $(declare -f log_debug) -$(declare -f manage_systemd_service) -$(declare -f systemctl_swift) -$(declare -f special_case_ovs_upgrade_if_needed) -# pin nova messaging +-1 for the nova-compute service -if [[ -n \$NOVA_COMPUTE ]]; then - crudini --set /etc/nova/nova.conf upgrade_levels compute auto -fi - -special_case_ovs_upgrade_if_needed - -if [[ -n \$SWIFT_STORAGE ]]; then - systemctl_swift stop -fi - -yum -y update - -if [[ -n \$SWIFT_STORAGE ]]; then - systemctl_swift start -fi -# Due to bug#1640177 we need to restart compute agent -if [[ -n \$NOVA_COMPUTE ]]; then - log_debug "Restarting openstack ceilometer agent compute" - systemctl restart openstack-ceilometer-compute - yum install -y openstack-nova-migration - # https://bugs.launchpad.net/tripleo/+bug/1707926 stop&disable libvirtd - log_debug "Stop and disable libvirtd service for upgrade to containers" - systemctl stop libvirtd - systemctl disable libvirtd - log_debug "Stop and disable openstack-nova-compute for upgrade to containers" - systemctl stop openstack-nova-compute - systemctl disable openstack-nova-compute -fi - -# Apply puppet manifest to converge just right after the ${ROLE} upgrade -$(declare -f run_puppet) -for step in 1 2 3 4 5 6; do - log_debug "Running puppet step \$step for ${ROLE}" - if ! run_puppet /root/${ROLE}_puppet_config.pp ${ROLE} \${step}; then - log_debug "Puppet failure at step \${step}" - exit 1 - fi - log_debug "Completed puppet step \$step" -done - -log_debug "TripleO upgrade run completed." +log_debug "$UPGRADE_SCRIPT has completed - moving onto ansible playbooks" ENDOFCAT diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 2e398671..2514f809 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -188,15 +188,16 @@ parameters: doing an update which requires removal of specific resources. Example format ComputeRemovalPolicies: [{'resource_list': ['0']}] -{% if role.name != 'Compute' %} {{role.name}}SchedulerHints: + type: json description: Optional scheduler hints to pass to nova -{% else %} - NovaComputeSchedulerHints: - description: DEPRECATED - use ComputeSchedulerHints instead -{% endif %} + default: {} +{%- if role.deprecated_param_scheduler_hints is defined %} + {{role.deprecated_param_scheduler_hints}}: type: json + description: DEPRECATED - use {{role.name}}SchedulerHints instead default: {} +{%- endif %} {{role.name}}Parameters: type: json @@ -229,6 +230,19 @@ parameters: description: > List of server hostnames to blacklist from any triggered deployments. +{% for role in roles %} +{%- if role.deprecated_param_scheduler_hints is defined %} +{%- if not parameter_groups_defined|default(false) %} +parameter_groups: +- label: deprecated + description: Do not use deprecated params, they will be removed. + parameters: +{%- set parameter_groups_defined = true %} +{%- endif %} + - {{role.deprecated_param_scheduler_hints}} +{%- endif %} +{%- endfor %} + conditions: add_vips_to_etc_hosts: {equals : [{get_param: AddVipsToEtcHosts}, True]} @@ -525,11 +539,14 @@ resources: params: '%stackname%': {get_param: 'OS::stack_name'} NodeIndex: '%index%' - {% if role.name != 'Compute' %} - {{role.name}}SchedulerHints: {get_param: {{role.name}}SchedulerHints} - {% else %} - NovaComputeSchedulerHints: {get_param: NovaComputeSchedulerHints} - {% endif %} + # Note, SchedulerHints must be defined here, not only in the + # nested template, as it can contain %index% + {{role.name}}SchedulerHints: + map_merge: +{%- if role.deprecated_param_scheduler_hints is defined %} + - {get_param: {{role.deprecated_param_scheduler_hints}}} +{%- endif %} + - {get_param: {{role.name}}SchedulerHints} ServiceConfigSettings: {get_attr: [{{role.name}}ServiceConfigSettings, value]} ServiceNames: {get_attr: [{{role.name}}ServiceNames, value]} MonitoringSubscriptions: {get_attr: [{{role.name}}ServiceChainRoleData, value, monitoring_subscriptions]} diff --git a/puppet/role.role.j2.yaml b/puppet/role.role.j2.yaml index 5453e65c..f58f7409 100644 --- a/puppet/role.role.j2.yaml +++ b/puppet/role.role.j2.yaml @@ -148,12 +148,6 @@ parameters: type: json description: Optional scheduler hints to pass to nova default: {} -{%- if role.deprecated_param_scheduler_hints is defined %} - {{role.deprecated_param_scheduler_hints}}: - type: json - description: DEPRECATED - use {{role.name}}SchedulerHints instead - default: {} -{%- endif %} NodeIndex: type: number default: 0 @@ -239,7 +233,7 @@ parameter_groups: description: Do not use deprecated params, they will be removed. parameters: {%- for property in role %} -{%- if property.startswith('deprecated_param_') %} +{%- if property.startswith('deprecated_param_') and not role[property].endswith('SchedulerHints') %} - {{role[property]}} {%- endif %} {%- endfor %} @@ -317,12 +311,7 @@ resources: {%- endif %} - {get_param: {{role.name}}ServerMetadata} - {get_param: ServiceMetadataSettings} - scheduler_hints: - map_merge: -{%- if role.deprecated_param_scheduler_hints is defined %} - - {get_param: {{role.deprecated_param_scheduler_hints}}} -{%- endif %} - - {get_param: {{role.name}}SchedulerHints} + scheduler_hints: {get_param: {{role.name}}SchedulerHints} deployment_swift_data: if: - deployment_swift_data_map_unset |