Enable the memory cgroup for the Docker plugin.

This will allow for the enforcement and tracking of memory limits and usage.
This commit is contained in:
Victor Marmol 2014-06-22 05:54:44 +00:00
parent 19c3986d12
commit fb8507c0f4
2 changed files with 16 additions and 0 deletions

View file

@ -21,3 +21,4 @@ def resolve_tasks(taskset, manifest):
taskset.add(tasks.AddDockerDeps) taskset.add(tasks.AddDockerDeps)
taskset.add(tasks.AddDockerBinary) taskset.add(tasks.AddDockerBinary)
taskset.add(tasks.AddDockerInit) taskset.add(tasks.AddDockerInit)
taskset.add(tasks.EnableMemoryCgroup)

View file

@ -1,6 +1,8 @@
from bootstrapvz.base import Task from bootstrapvz.base import Task
from bootstrapvz.common import phases from bootstrapvz.common import phases
from bootstrapvz.common.tasks import boot
from bootstrapvz.common.tasks import initd from bootstrapvz.common.tasks import initd
from bootstrapvz.providers.gce.tasks import boot as gceboot
import os import os
import os.path import os.path
import shutil import shutil
@ -45,3 +47,16 @@ class AddDockerInit(Task):
default_src = os.path.join(ASSETS_DIR, 'default/docker') default_src = os.path.join(ASSETS_DIR, 'default/docker')
default_dest = os.path.join(info.root, 'etc/default/docker') default_dest = os.path.join(info.root, 'etc/default/docker')
shutil.copy(default_src, default_dest) shutil.copy(default_src, default_dest)
class EnableMemoryCgroup(Task):
description = 'Change grub configuration to enable the memory cgroup'
phase = phases.system_modification
successors = [boot.InstallGrub]
predecessors = [boot.ConfigureGrub, gceboot.ConfigureGrub]
@classmethod
def run(cls, info):
from bootstrapvz.common.tools import sed_i
grub_config = os.path.join(info.root, 'etc/default/grub')
sed_i(grub_config, r'^(GRUB_CMDLINE_LINUX*=".*)"\s*$', r'\1 cgroup_enable=memory"')