From f2058ced8e80c49659601ef38c784bf96a157fe7 Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Fri, 4 Jan 2013 14:16:06 -0500 Subject: [PATCH] Updates to the cgroups manifest to work on RHEL. Add a new cgroup package parameter. Update the cgroups.pp manifest to use the package params. Also, updates the cgconfig.erb template to support Red Hat which has slightly different cgroup mounts than Ubuntu. Change-Id: I9bf34c93fe987c085040929ab16d5a5f5406ad47 Reviewed-on: https://review.openstack.org/18999 Reviewed-by: Clark Boylan Reviewed-by: Jeremy Stanley Reviewed-by: James E. Blair Approved: James E. Blair Tested-by: Jenkins --- modules/jenkins/manifests/cgroups.pp | 9 ++++++--- modules/jenkins/manifests/params.pp | 2 ++ modules/jenkins/templates/cgconfig.erb | 15 +++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/modules/jenkins/manifests/cgroups.pp b/modules/jenkins/manifests/cgroups.pp index 732640049d..91b936d0cb 100644 --- a/modules/jenkins/manifests/cgroups.pp +++ b/modules/jenkins/manifests/cgroups.pp @@ -2,8 +2,11 @@ # class jenkins::cgroups { - package { 'cgroup-bin': + include jenkins::params + + package { 'cgroups': ensure => present, + name => $::jenkins::params::cgroups_package, } file { '/etc/cgconfig.conf': @@ -27,14 +30,14 @@ class jenkins::cgroups { service { 'cgconfig': ensure => running, enable => true, - require => Package['cgroup-bin'], + require => Package['cgroups'], subscribe => File['/etc/cgconfig.conf'], } service { 'cgred': ensure => running, enable => true, - require => Package['cgroup-bin'], + require => Package['cgroups'], subscribe => File['/etc/cgrules.conf'], } } diff --git a/modules/jenkins/manifests/params.pp b/modules/jenkins/manifests/params.pp index 3d684d819c..8e881af889 100644 --- a/modules/jenkins/manifests/params.pp +++ b/modules/jenkins/manifests/params.pp @@ -42,6 +42,7 @@ class jenkins::params { $unzip_package = 'unzip' $xslt_package = 'libxslt' $xvfb_package = 'xorg-x11-server-Xvfb' + $cgroups_package = 'libcgroup' } 'Debian', 'Ubuntu': { # common packages @@ -78,6 +79,7 @@ class jenkins::params { $unzip_package = 'unzip' $xslt_package = 'xsltproc' $xvfb_package = 'xvfb' + $cgroups_package = 'cgroup-bin' } default: { fail("Unsupported osfamily: ${::osfamily} The 'jenkins' module only supports osfamily Ubuntu or Redhat(slaves only).") diff --git a/modules/jenkins/templates/cgconfig.erb b/modules/jenkins/templates/cgconfig.erb index d947b51b06..6236ca8fb5 100644 --- a/modules/jenkins/templates/cgconfig.erb +++ b/modules/jenkins/templates/cgconfig.erb @@ -1,3 +1,17 @@ +<% if osfamily == "RedHat" then %> + +mount { + cpuset = /cgroup/cpuset; + cpu = /cgroup/cpu; + cpuacct = /cgroup/cpuacct; + memory = /cgroup/memory; + devices = /cgroup/devices; + freezer = /cgroup/freezer; + net_cls = /cgroup/net_cls; + blkio = /cgroup/blkio; +} + +<% else %> mount { cpu = /sys/fs/cgroup/cpu; cpuacct = /sys/fs/cgroup/cpuacct; @@ -5,6 +19,7 @@ mount { memory = /sys/fs/cgroup/memory; freezer = /sys/fs/cgroup/freezer; } +<% end %> group jenkins { perm {