saltstack-formulas / docker-formula

Install and set up Docker
http://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html
Other
136 stars 330 forks source link

[FEATURE] Ability to change cgroupdriver to systemd #293

Open MurzNN opened 3 years ago

MurzNN commented 3 years ago

Is your feature request related to a problem?

When we install kubernetes, it recommends the systemd driver for Docker:

[preflight] Running pre-flight checks
        [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/

So I try to set it via creating file:

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

But formula removes it on every state apply. Other way is to change systemd docker service via setting

ExecStart=/usr/bin/dockerd --exec-opt native.cgroupdriver=systemd

Describe the solution you'd like

Will be good to have this setting in Docker formula.

Describe alternatives you've considered

Alternative is not deleting the /etc/docker/daemon.json file, but separate setting in formula will be much better.

MurzNN commented 3 years ago

Seems this can be implemented using docker.pkg.environ option, I'll try this and report results.

danny-smit commented 3 years ago

The latest version of the formula has support to add settings to the daemon.json. Is that what what you're looking for?

For example:

docker:
  pkg:
    docker:
      daemon_config: 
        exec-opts: 
          - native.cgroupdriver=systemd
        log-driver: json-file
        log-opts: 
          max-size: 100m
        storage-driver: overlay2
B1ue-W01f commented 2 years ago

Thanks, this appears to be the solution. Adding to pillar example may be useful.