Rush has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/284978

Change subject: cgred changes for toollabs bastions use case
......................................................................

cgred changes for toollabs bastions use case

- all explicit ordering of fragments for cgrules.conf
- puge unmanaged entries for conf and rules
- raise shell memory limits
- use '%' to match across subsystems

Bug: T131541
Change-Id: I5959482c2bdc4cfaf5dd94a9e4082ff21b7d02c4
---
M modules/cgred/manifests/group.pp
M modules/cgred/manifests/init.pp
M modules/toollabs/manifests/bastion.pp
3 files changed, 77 insertions(+), 56 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/78/284978/1

diff --git a/modules/cgred/manifests/group.pp b/modules/cgred/manifests/group.pp
index e1318a4..5a1d237 100644
--- a/modules/cgred/manifests/group.pp
+++ b/modules/cgred/manifests/group.pp
@@ -18,11 +18,31 @@
 #            '*:foo.sh subsystem /cgroup',
 #        ]
 #    }
+#
+#
+# The docs say 'First rule which matches the criteria will be executed.'
+#
+# - This applies even across different subsystems
+# - Use the '%' keyword char to apply multiple lines upon first match.
+# - Keep in mind cgroups are inherited by child processes
+#
+# Example that results in membership only in cpu shell cgroup:
+#
+#  *:/bin/bash           cpu         /shell
+#  *:/bin/bash           memory      /shell
+#
+# Example that results in membershp in cpu and memory shell cgroup:
+#
+#  *:/bin/bash           cpu         /shell
+#  %                     memory      /shell
+#
+# See: man cgrules.conf
 
 define cgred::group (
     $ensure = 'present',
     $config = {},
     $rules  = [],
+    $order  = '50',
 )
     {
 
@@ -37,7 +57,7 @@
         notify  => Base::Service_unit['cgrulesengd'],
     }
 
-    file {"/etc/cgrules.d/${name}.conf":
+    file {"/etc/cgrules.d/${order}-${name}.conf":
         ensure  => $ensure,
         mode    => '0444',
         owner   => 'root',
diff --git a/modules/cgred/manifests/init.pp b/modules/cgred/manifests/init.pp
index 0763413..6b35192 100644
--- a/modules/cgred/manifests/init.pp
+++ b/modules/cgred/manifests/init.pp
@@ -17,10 +17,12 @@
     file { [
         '/etc/cgconfig.d/',
         '/etc/cgrules.d/']:
-            ensure => directory,
-            mode   => '0555',
-            owner  => 'root',
-            group  => 'root',
+            ensure  => directory,
+            mode    => '0555',
+            owner   => 'root',
+            group   => 'root',
+            recurse => true,
+            purge   => true,
     }
 
     file { '/etc/cgrules.d/README':
diff --git a/modules/toollabs/manifests/bastion.pp 
b/modules/toollabs/manifests/bastion.pp
index a464876..4c0ce5a 100644
--- a/modules/toollabs/manifests/bastion.pp
+++ b/modules/toollabs/manifests/bastion.pp
@@ -19,6 +19,25 @@
 
     if $::operatingsystem == 'Ubuntu' {
 
+        # lint:ignore:arrow_alignment
+        cgred::group {'shell':
+            order  => '01',
+            config => {
+                memory => {
+                    'memory.limit_in_bytes' => '4611686018427387903',
+                },
+            },
+            rules  => [
+                '*:/bin/sh             memory     /shell',
+                '*:/bin/dash           memory     /shell',
+                '*:/bin/bash           memory     /shell',
+                '*:/usr/bin/zsh        memory     /shell',
+                '*:/usr/bin/screen     memory     /shell',
+                '*:/usr/bin/tmux       memory     /shell',
+                '*:/usr/bin/lshell     memory     /shell',
+            ],
+        }
+
         # misc group for on-the-fly classification
         # of expensive processes as opposed to kill
         # lint:ignore:arrow_alignment
@@ -34,24 +53,6 @@
         }
 
         # lint:ignore:arrow_alignment
-        cgred::group {'shell':
-            config => {
-                memory => {
-                    'memory.limit_in_bytes' => '2305843009213693951',
-                },
-            },
-            rules  => [
-                '*:/bin/sh             memory     /shell',
-                '*:/bin/dash           memory     /shell',
-                '*:/bin/bash           memory     /shell',
-                '*:/usr/bin/zsh        memory     /shell',
-                '*:/usr/bin/screen     memory     /shell',
-                '*:/usr/bin/tmux       memory     /shell',
-                '*:/usr/bin/lshell     memory     /shell',
-            ],
-        }
-
-        # lint:ignore:arrow_alignment
         cgred::group {'user-daemons':
             config => {
                 cpu    => {
@@ -62,9 +63,9 @@
             },
         },
             rules  => [
-                '*:/usr/lib/openssh/sftp-server  cpu    /daemon',
-                '*:/usr/lib/openssh/sftp-server  memory /daemon',
-                '*:/usr/bin/mosh-server          memory /daemon',
+                '*:/usr/bin/mosh-server             memory /daemon',
+                '*:/usr/lib/openssh/sftp-server     cpu    /daemon',
+                '%                                  memory /daemon',
             ],
         }
 
@@ -80,21 +81,21 @@
             },
             rules  => [
                 '*:/usr/bin/ruby            cpu      /scripts',
-                '*:/usr/bin/ruby            memory   /scripts',
+                '%                          memory   /scripts',
                 '*:/usr/bin/ruby1.9.1       cpu      /scripts',
-                '*:/usr/bin/ruby1.9.3       memory   /scripts',
+                '%                          memory   /scripts',
                 '*:/usr/bin/python          cpu      /scripts',
-                '*:/usr/bin/python          memory   /scripts',
+                '%                          memory   /scripts',
                 '*:/usr/bin/python2.7       cpu      /scripts',
-                '*:/usr/bin/python2.7       memory   /scripts',
+                '%                          memory   /scripts',
                 '*:/usr/bin/python3         cpu      /scripts',
-                '*:/usr/bin/python3         memory   /scripts',
+                '%                          memory   /scripts',
                 '*:/usr/bin/python3.4       cpu      /scripts',
-                '*:/usr/bin/python3.4       memory   /scripts',
+                '%                          memory   /scripts',
                 '*:/usr/bin/perl            cpu      /scripts',
-                '*:/usr/bin/perl            memory   /scripts',
+                '%                          memory   /scripts',
                 '*:/usr/bin/perl5.18.2      cpu      /scripts',
-                '*:/usr/bin/perl5.18.2      memory   /scripts',
+                '%                          memory   /scripts',
             ],
         }
 
@@ -115,47 +116,45 @@
                 '*:/usr/bin/vim.tiny          memory  /utilities',
                 '*:/usr/bin/nano              memory  /utilities',
                 '*:/bin/tar                   cpu     /utilities',
-                '*:/bin/tar                   memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/bin/gzip                  cpu     /utilities',
-                '*:/bin/gzip                  memory  /utilities',
-                '*:/bin/gzip                  memory  /utilities',
-                '*:/usr/bin/nano              memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/md5sum            cpu     /utilities',
-                '*:/usr/bin/md5sum            memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/sha1sum           cpu     /utilities',
-                '*:/usr/bin/sha1sum           memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/sha224sum         cpu     /utilities',
-                '*:/usr/bin/sha224sum         memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/sha256sum         cpu     /utilities',
-                '*:/usr/bin/sha256sum         memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/sha384sum         cpu     /utilities',
-                '*:/usr/bin/sha384sum         memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/sha512sum         cpu     /utilities',
-                '*:/usr/bin/sha512sum         memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/make              cpu     /utilities',
-                '*:/usr/bin/make              memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/gcc               cpu     /utilities',
-                '*:/usr/bin/gcc               memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/g++               cpu     /utilities',
-                '*:/usr/bin/g++               memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/gcc-4.8           cpu     /utilities',
-                '*:/usr/bin/gcc-4.8           memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/find              cpu     /utilities',
-                '*:/usr/bin/find              memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/top               cpu     /utilities',
-                '*:/usr/bin/top               memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/htop              cpu     /utilities',
-                '*:/usr/bin/htop              memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/sort              cpu     /utilities',
-                '*:/usr/bin/sort              memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/sed               cpu     /utilities',
-                '*:/usr/bin/sed               memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/mawk              cpu     /utilities',
-                '*:/usr/bin/mawk              memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/awk               cpu     /utilities',
-                '*:/usr/bin/awk               memory  /utilities',
+                '%                            memory  /utilities',
                 '*:/usr/bin/wc                cpu     /utilities',
-                '*:/usr/bin/wc                memory  /utilities',
+                '%                            memory  /utilities',
             ],
         }
     }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5959482c2bdc4cfaf5dd94a9e4082ff21b7d02c4
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Rush <r...@wikimedia.org>

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

Reply via email to