aboutsummaryrefslogtreecommitdiffstats
path: root/manifests/packages.pp
diff options
context:
space:
mode:
authorEmilien Macchi <emilien@redhat.com>2016-10-14 10:15:01 -0400
committerEmilien Macchi <emilien@redhat.com>2016-10-14 18:17:30 -0400
commit45783d1c643b7a47454207b3a90575f1ed8ab46d (patch)
treea07a43436587228af019dae3ba015c917fb264f6 /manifests/packages.pp
parent33be802c705c857ce94a80252bc22b2e01e27fa8 (diff)
packages: run upgrade at 'setup' stage
Instead of using an operator to make sure we upgrade package before any service, which causes dependency cycles with iptables puppet module, let's do another approach where we upgrade rpms in the 'setup' stage, which is a stage that runs before configure and running services. In that way, we'll remove dependency cycles and make sure packages are upgrades before configure and running TripleO services. Change-Id: I1be83f88be1959885c980ab4f428477d412751f7
Diffstat (limited to 'manifests/packages.pp')
-rw-r--r--manifests/packages.pp36
1 files changed, 9 insertions, 27 deletions
diff --git a/manifests/packages.pp b/manifests/packages.pp
index 5e111fa..ec2635a 100644
--- a/manifests/packages.pp
+++ b/manifests/packages.pp
@@ -32,6 +32,9 @@ class tripleo::packages (
$enable_upgrade = false,
) {
+ # required for stages
+ include ::stdlib
+
if !$enable_install and !$enable_upgrade {
case $::osfamily {
'RedHat': {
@@ -45,33 +48,12 @@ class tripleo::packages (
if $enable_upgrade {
Package <| |> { ensure => 'latest' }
-
- case $::osfamily {
- 'RedHat': {
- $pkg_upgrade_cmd = 'yum -y update'
- }
- default: {
- warning('Please specify a package upgrade command for distribution.')
- }
- }
-
- exec { 'package-upgrade':
- command => $pkg_upgrade_cmd,
- path => '/usr/bin',
- timeout => 0,
- }
- # A resource chain to ensure the upgrade ordering we want:
- # 1) Upgrade all packages via exec.
- # Note: The Package Puppet resources can be managed after or before package-upgrade,
- # it does not matter. what we need to make sure is that they'll notify their
- # respective services (if they have ~> in their manifests or here with the ->)
- # for the other packages, they'll be upgraded before any Service notify.
- # This approach prevents from Puppet dependencies cycle.
- # 2) This upgrade will be run before any Service notified & managed by Puppet.
- # Note: For example, during the Puppet catalog, configuration will change for most of
- # the services so the Services will be likely restarted after the package upgrade.
- Exec['package-upgrade'] -> Service <| |>
-
+ # Running the package upgrade before managing Services in the main stage.
+ # So we're sure that services will be able to restart with the new version
+ # of the package.
+ ensure_resource('class', 'tripleo::packages::upgrades', {
+ 'stage' => 'setup',
+ })
}
}