When using docker 1.13.1, the current condition:
```
{% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version_compare('13', '>=')) or container_binary == 'podman' -%}
```
is wrong because it compares the first digit (1) whereas it should
compare the second one.
It means we always use `--cpu-quota` although documentation recommend
using `--cpus` when docker version is 1.13.1 or higher.
From the doc:
> --cpu-quota=<value> Impose a CPU CFS quota on the container. The number of
> microseconds per --cpu-period that the container is limited to before
> throttled. As such acting as the effective ceiling.
> If you use Docker 1.13 or higher, use --cpus instead.
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit
3e262e072b0e86bbb431c47bc691bcad70783443)
- import_role:
name: ceph-handler
- - name: with docker configuration
- when: container_binary == 'docker'
- block:
- - name: get docker version
- command: docker --version
- changed_when: false
- check_mode: no
- register: ceph_docker_version
-
- - name: set_fact ceph_docker_version ceph_docker_version.stdout.split
- set_fact:
- ceph_docker_version: "{{ ceph_docker_version.stdout.split(' ')[2] }}"
-
- name: set_fact docker2podman and container_binary
set_fact:
docker2podman: True
- name: include prerequisites.yml
include_tasks: prerequisites.yml
-- name: get docker version
- block:
- - name: get docker version
- command: docker --version
- changed_when: false
- check_mode: no
- register: ceph_docker_version
-
- - name: set_fact ceph_docker_version ceph_docker_version.stdout.split
- set_fact:
- ceph_docker_version: "{{ ceph_docker_version.stdout.split(' ')[2] }}"
- when: container_binary == 'docker'
-
- name: include registry.yml
include_tasks: registry.yml
when: ceph_docker_registry_auth | bool
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_rbd_target_api_docker_memory_limit }} \
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ ceph_rbd_target_api_docker_cpu_limit }} \
- {% else -%}
- --cpu-quota={{ ceph_rbd_target_api_docker_cpu_limit * 100000 }} \
- {% endif -%}
-v /etc/localtime:/etc/localtime:ro \
--privileged \
--net=host \
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_rbd_target_gw_docker_memory_limit }} \
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ ceph_rbd_target_gw_docker_cpu_limit }} \
- {% else -%}
- --cpu-quota={{ ceph_rbd_target_gw_docker_cpu_limit * 100000 }} \
- {% endif -%}
-v /etc/localtime:/etc/localtime:ro \
--privileged \
--net=host \
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_tcmu_runner_docker_memory_limit }} \
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ ceph_tcmu_runner_docker_cpu_limit }} \
- {% else -%}
- --cpu-quota={{ ceph_tcmu_runner_docker_cpu_limit * 100000 }} \
- {% endif -%}
-v /etc/localtime:/etc/localtime:ro \
--privileged \
--net=host \
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_mds_docker_memory_limit }} \
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ cpu_limit }} \
- {% else -%}
- --cpu-quota={{ cpu_limit * 100000 }} \
- {% endif -%}
-v /var/lib/ceph:/var/lib/ceph:z \
-v /etc/ceph:/etc/ceph:z \
-v /var/run/ceph:/var/run/ceph:z \
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_mgr_docker_memory_limit }} \
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ ceph_mgr_docker_cpu_limit }} \
- {% else -%}
- --cpu-quota={{ ceph_mgr_docker_cpu_limit * 100000 }} \
- {% endif -%}
-v /var/lib/ceph:/var/lib/ceph:z,rshared \
-v /etc/ceph:/etc/ceph:z \
-v /var/run/ceph:/var/run/ceph:z \
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_mon_docker_memory_limit }} \
-{% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ ceph_mon_docker_cpu_limit }} \
-{% else -%}
- --cpu-quota={{ ceph_mon_docker_cpu_limit * 100000 }} \
-{% endif -%}
-v /var/lib/ceph:/var/lib/ceph:z,rshared \
-v /etc/ceph:/etc/ceph:z \
-v /var/run/ceph:/var/run/ceph:z \
{% if osd_objectstore == 'filestore' -%}
--memory={{ ceph_osd_docker_memory_limit }} \
{% endif -%}
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ cpu_limit }} \
- {% else -%}
- --cpu-quota={{ cpu_limit * 100000 }} \
- {% endif -%}
{% if ceph_osd_docker_cpuset_cpus is defined -%}
--cpuset-cpus='{{ ceph_osd_docker_cpuset_cpus }}' \
{% endif -%}
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_rbd_mirror_docker_memory_limit }} \
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ ceph_rbd_mirror_docker_cpu_limit }} \
- {% else -%}
- --cpu-quota={{ ceph_rbd_mirror_docker_cpu_limit * 100000 }} \
- {% endif -%}
-v /var/lib/ceph:/var/lib/ceph:z \
-v /etc/ceph:/etc/ceph:z \
-v /var/run/ceph:/var/run/ceph:z \
-d --log-driver journald --conmon-pidfile /%t/%n-pid --cidfile /%t/%n-cid \
{% endif %}
--memory={{ ceph_rgw_docker_memory_limit }} \
- {% if (container_binary == 'docker' and ceph_docker_version.split('.')[0] is version('13', '>=')) or container_binary == 'podman' -%}
--cpus={{ cpu_limit }} \
- {% else -%}
- --cpu-quota={{ cpu_limit * 100000 }} \
- {% endif -%}
{% if ceph_rgw_docker_cpuset_cpus is defined -%}
--cpuset-cpus="{{ ceph_rgw_docker_cpuset_cpus }}" \
{% endif -%}