Add tripleo::packages
authorDan Prince <dprince@redhat.com>
Fri, 19 Jun 2015 01:44:27 +0000 (21:44 -0400)
committerDan Prince <dprince@redhat.com>
Thu, 25 Jun 2015 18:23:11 +0000 (14:23 -0400)
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

manifests/packages.pp [new file with mode: 0644]

diff --git a/manifests/packages.pp b/manifests/packages.pp
new file mode 100644 (file)
index 0000000..6a5813a
--- /dev/null
@@ -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' }
+  }
+
+}
+