Giuseppe Lavagetto has submitted this change and it was merged.

Change subject: base::grub: allow enabling the memory cgroup controller
......................................................................


base::grub: allow enabling the memory cgroup controller

It's disabled by default on debian because of the potential performance
hit, but in some cases (most relevant one are the appservers) we might
need the functionality.

Also:
 - remove redundant declaration in base::labs and move it here
 - restrict effectively to debian jessie only because labs trustys (as
 opposed to prod) are failing.

Change-Id: I8b7b5b50f2e56a33b2307e0005615521c91193f3
---
M hieradata/labs.yaml
M modules/base/manifests/grub.pp
M modules/base/manifests/labs.pp
3 files changed, 15 insertions(+), 13 deletions(-)

Approvals:
  Giuseppe Lavagetto: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/hieradata/labs.yaml b/hieradata/labs.yaml
index c2bbf31..13a746b 100644
--- a/hieradata/labs.yaml
+++ b/hieradata/labs.yaml
@@ -12,6 +12,8 @@
   mathoid: "%{::site}"
   aqs: 'eqiad'
 
+# Labs has the memory cgroup controller enabled by default on all jessies
+base::grub::enable_memory_cgroup: true
 
 # dns
 labsdnsconfig:
diff --git a/modules/base/manifests/grub.pp b/modules/base/manifests/grub.pp
index 1bf3787..695f93c 100644
--- a/modules/base/manifests/grub.pp
+++ b/modules/base/manifests/grub.pp
@@ -1,8 +1,16 @@
-class base::grub($ioscheduler = 'deadline') {
+class base::grub($ioscheduler = 'deadline', $enable_memory_cgroup = false) {
     # The augeas Shellvars_list lens can't handle backticks for
     # versions < 1.2.0 (practically every distro older than jessie).
     # We fallback to the legacy grep/sed method in that case.
-    if versioncmp($::augeasversion, '1.2.0') >= 0 {
+    if versioncmp($::augeasversion, '1.2.0') >= 0 and os_version('Debian >= 
jessie') {
+        $cgroup_line = $enable_memory_cgroup ? {
+            true => 'set GRUB_CMDLINE_LINUX/value[. = "cgroup_enable=memory"] 
cgroup_enable=memory',
+            false => 'rm GRUB_CMDLINE_LINUX/value[. = "cgroup_enable=memory"]'
+        }
+        $swapaccount_line = $enable_memory_cgroup ? {
+            true => 'set GRUB_CMDLINE_LINUX/value[. = "swapaccount=1"] 
swapaccount=1',
+            false => 'rm GRUB_CMDLINE_LINUX/value[. = "swapaccount=1"]'
+        }
 
         augeas { 'grub2':
             incl    => '/etc/default/grub',
@@ -17,9 +25,12 @@
                 'rm GRUB_CMDLINE_LINUX_DEFAULT/value[. = "splash"]',
                 # Sets the ioscheduler to a specific value. Default is deadline
                 "set GRUB_CMDLINE_LINUX/value[. =~ glob(\"elevator=*\")] 
elevator=${ioscheduler}",
+                $cgroup_line,
+                $swapaccount_line,
             ],
             notify  => Exec['update-grub'],
         }
+
     } else {
         # Disable the 'quiet' kernel command line option so console messages
         # will be printed.
diff --git a/modules/base/manifests/labs.pp b/modules/base/manifests/labs.pp
index 394a3b8..a074d23 100644
--- a/modules/base/manifests/labs.pp
+++ b/modules/base/manifests/labs.pp
@@ -21,17 +21,6 @@
             mode   => '0444',
             source => 'puppet:///modules/base/labs/nfs-common.default',
         }
-
-        # enable memory cgroups
-        augeas { 'grub2':
-            incl    => '/etc/default/grub',
-            lens    => 'Shellvars_list.lns',
-            changes => [
-                'set GRUB_CMDLINE_LINUX/value[. = "cgroup_enable=memory"] 
cgroup_enable=memory',
-                'set GRUB_CMDLINE_LINUX/value[. = "swapaccount=1"] 
swapaccount=1',
-            ],
-            notify  => Exec['update-grub'],
-        }
     }
 
     file { '/usr/local/sbin/puppetalert.py':

-- 
To view, visit https://gerrit.wikimedia.org/r/291772
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I8b7b5b50f2e56a33b2307e0005615521c91193f3
Gerrit-PatchSet: 5
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: Gehel <gleder...@wikimedia.org>
Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to