summaryrefslogtreecommitdiffstats
path: root/manifests
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2015-06-18 21:44:27 -0400
committerDan Prince <dprince@redhat.com>2015-06-25 14:23:11 -0400
commitfdb0ec212f9c9ba9dea83e414abef6cb37b68014 (patch)
treea3b98d438569d3278b74161dbe2093112802f3e3 /manifests
parent1d0d69d59dad889f57d9faf19414f8fb1514f9fb (diff)
Add tripleo::packages
This adds a new class to help configure package installation and upgrades. The previous approach was to use a global package declaration at the top of each manifest within the tripleo-heat-templates. The new approach is to use a Package collector (<| |>) to allow us to configure the package provider within a class. This should help remove some of the duplicated logic within the triplo-heat-template manifests and is also a good fit for puppet-tripleo in that is generic and unlikely to change that often. In addition to installation this class also support upgrades to puppet managed packages as well. Change-Id: Ie8fbc344149bc8c9977e127de77636903607617a
Diffstat (limited to 'manifests')
-rw-r--r--manifests/packages.pp54
1 files changed, 54 insertions, 0 deletions
diff --git a/manifests/packages.pp b/manifests/packages.pp
new file mode 100644
index 0000000..6a5813a
--- /dev/null
+++ b/manifests/packages.pp
@@ -0,0 +1,54 @@
+# Copyright 2015 Red Hat, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+# == Class: tripleo::packages
+#
+# Configure package installation/upgrade defaults.
+#
+# === Parameters:
+#
+# [*enable_install*]
+# Whether to enable package installation via Puppet.
+# Defaults to false
+#
+# [*enable_upgrade*]
+# Upgrades all puppet managed packages to latest.
+# Defaults to false
+#
+class tripleo::packages (
+ $enable_install = false,
+ $enable_upgrade = false,
+) {
+
+ if !$enable_install {
+ case $::osfamily {
+ 'RedHat': {
+ Package <| |> { provider => 'norpm' }
+ }
+ default: {
+ warning('enable_install option not supported for this distro.')
+ }
+ }
+ }
+
+ if $enable_upgrade {
+ if !$enable_install {
+ fail('Package upgrades require that enable_install be set to true')
+ }
+ Package <| |> { ensure => 'latest' }
+ }
+
+}
+