From 3e879e6faa94e46427c5d7b350a3734fcd5c4c02 Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Thu, 1 Oct 2015 15:37:17 +1300 Subject: Ensure present/latest for puppet driven package updates This change updates yum_update.sh so that we set set a boolean output when "managed" packages should get updated. The output is named 'update_managed_packages' and for the puppet implementation it is wired up so that it directly sets tripleo::packages::enable_upgrade to control whether packages are updated. It also modifies yum_update.sh to build a yum update excludes list for packages managed by puppet. The exclude lists are being generated via puppet-tripleo as well via the new 'write_package_names' function that is now wired into all the role manifests. This change does not actually trigger the puppet apply. The fix for Related-Bug: #1463092 will be used to trigger the puppet run when the hiera changes. As a minor tweak to this logic we append the UpdateIdentifier to the config_identifier so that we ensure puppet gets executed on an update where other (non-related) hiera changes also occur. Co-Authored-By: Dan Prince Change-Id: I343c3959517eae38bbcd43648ed56f610272864d --- extraconfig/tasks/yum_update.sh | 9 +++++++++ extraconfig/tasks/yum_update.yaml | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'extraconfig') diff --git a/extraconfig/tasks/yum_update.sh b/extraconfig/tasks/yum_update.sh index 3d4c772b..e74c4d8b 100755 --- a/extraconfig/tasks/yum_update.sh +++ b/extraconfig/tasks/yum_update.sh @@ -8,6 +8,7 @@ # command_arguments - yum command arguments, defaults to "" echo "Started yum_update.sh on server $deploy_server_id at `date`" +echo -n "false" > $heat_outputs_path.update_managed_packages if [[ -z "$update_identifier" ]]; then echo "Not running due to unset update_identifier" @@ -17,6 +18,12 @@ fi timestamp_dir=/var/lib/overcloud-yum-update mkdir -p $timestamp_dir +command_arguments=${command_arguments:-} +# exclude upgrading packages that are handled by config management tooling +for exclude in $(cat /var/lib/tripleo/installed-packages/* | sort -u); do + command_arguments="$command_arguments --exclude $exclude" +done + # sanitise to remove unusual characters update_identifier=${update_identifier//[^a-zA-Z0-9-_]/} @@ -36,6 +43,8 @@ return_code=$? echo "$result" echo "yum return code: $return_code" +echo -n "true" > $heat_outputs_path.update_managed_packages + echo "Finished yum_update.sh on server $deploy_server_id at `date`" exit $return_code diff --git a/extraconfig/tasks/yum_update.yaml b/extraconfig/tasks/yum_update.yaml index e918149e..d313ca9f 100644 --- a/extraconfig/tasks/yum_update.yaml +++ b/extraconfig/tasks/yum_update.yaml @@ -20,7 +20,10 @@ resources: - name: command_arguments description: yum command arguments, defaults to "" default: '' + outputs: + - name: update_managed_packages + description: boolean value indicating whether to upgrade managed packages outputs: OS::stack_id: - value: {get_resource: config} \ No newline at end of file + value: {get_resource: config} -- cgit 1.2.3-korg