Skip to content

Commit

Permalink
Add new container scenario
Browse files Browse the repository at this point in the history
Test with podman instead of docker and also support for python 3 only.

Signed-off-by: Sébastien Han <seb@redhat.com>
  • Loading branch information
leseb committed Nov 12, 2018
1 parent f7fcc01 commit 44807bb
Show file tree
Hide file tree
Showing 48 changed files with 333 additions and 135 deletions.
4 changes: 2 additions & 2 deletions roles/ceph-client/tasks/create_users_keys.yml
Expand Up @@ -27,7 +27,7 @@

- name: run a dummy container (sleep 300) from where we can create pool(s)/key(s)
command: >
docker run \
{{ container_binary }} run \
--rm \
-d \
-v {{ ceph_conf_key_directory }}:{{ ceph_conf_key_directory }}:z \
Expand All @@ -50,7 +50,7 @@

- name: set_fact docker_exec_cmd
set_fact:
docker_exec_cmd: "docker exec {% if groups.get(mon_group_name, []) | length > 0 -%} ceph-mon-{{ hostvars[delegated_node]['ansible_hostname'] }} {% else %} ceph-create-keys {% endif %}"
docker_exec_cmd: "{{ container_binary }} exec {% if groups.get(mon_group_name, []) | length > 0 -%} ceph-mon-{{ hostvars[delegated_node]['ansible_hostname'] }} {% else %} ceph-create-keys {% endif %}"
when:
- containerized_deployment

Expand Down
40 changes: 20 additions & 20 deletions roles/ceph-container-common/tasks/fetch_image.yml
@@ -1,7 +1,7 @@
---
# NOTE (leseb): we must check each inventory group so this will work with collocated daemons
- name: inspect ceph mon container
command: "docker inspect {{ ceph_mon_container_stat.stdout }}"
command: "{{ container_binary }} inspect {{ ceph_mon_container_stat.stdout }}"
changed_when: false
register: ceph_mon_inspect
when:
Expand All @@ -10,7 +10,7 @@
- ceph_mon_container_stat.get('stdout_lines', [])|length != 0

- name: inspect ceph osd container
command: "docker inspect {{ ceph_osd_container_stat.stdout }}"
command: "{{ container_binary }} inspect {{ ceph_osd_container_stat.stdout }}"
changed_when: false
register: ceph_osd_inspect
when:
Expand All @@ -19,7 +19,7 @@
- ceph_osd_container_stat.get('stdout_lines', [])|length != 0

- name: inspect ceph mds container
command: "docker inspect {{ ceph_mds_container_stat.stdout }}"
command: "{{ container_binary }} inspect {{ ceph_mds_container_stat.stdout }}"
changed_when: false
register: ceph_mds_inspect
when:
Expand All @@ -28,7 +28,7 @@
- ceph_mds_container_stat.get('stdout_lines', [])|length != 0

- name: inspect ceph rgw container
command: "docker inspect {{ ceph_rgw_container_stat.stdout }}"
command: "{{ container_binary }} inspect {{ ceph_rgw_container_stat.stdout }}"
changed_when: false
register: ceph_rgw_inspect
when:
Expand All @@ -37,7 +37,7 @@
- ceph_rgw_container_stat.get('stdout_lines', [])|length != 0

- name: inspect ceph mgr container
command: "docker inspect {{ ceph_mgr_container_stat.stdout }}"
command: "{{ container_binary }} inspect {{ ceph_mgr_container_stat.stdout }}"
changed_when: false
register: ceph_mgr_inspect
when:
Expand All @@ -46,7 +46,7 @@
- ceph_mgr_container_stat.get('stdout_lines', [])|length != 0

- name: inspect ceph rbd mirror container
command: "docker inspect {{ ceph_rbd_mirror_container_stat.stdout }}"
command: "{{ container_binary }} inspect {{ ceph_rbd_mirror_container_stat.stdout }}"
changed_when: false
register: ceph_rbd_mirror_inspect
when:
Expand All @@ -55,7 +55,7 @@
- ceph_rbd_mirror_container_stat.get('stdout_lines', [])|length != 0

- name: inspect ceph nfs container
command: "docker inspect {{ ceph_nfs_container_stat.stdout }}"
command: "{{ container_binary }} inspect {{ ceph_nfs_container_stat.stdout }}"
changed_when: false
register: ceph_nfs_inspect
when:
Expand All @@ -65,7 +65,7 @@

# NOTE(leseb): using failed_when to handle the case when the image is not present yet
- name: "inspecting ceph mon container image before pulling"
command: "docker inspect {{ (ceph_mon_inspect.stdout | from_json)[0].Image }}"
command: "{{ container_binary }} inspect {{ (ceph_mon_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
register: ceph_mon_container_inspect_before_pull
Expand All @@ -74,7 +74,7 @@
- ceph_mon_inspect.get('rc') == 0

- name: "inspecting ceph osd container image before pulling"
command: "docker inspect {{ (ceph_osd_inspect.stdout | from_json)[0].Image }}"
command: "{{ container_binary }} inspect {{ (ceph_osd_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
register: ceph_osd_container_inspect_before_pull
Expand All @@ -83,7 +83,7 @@
- ceph_osd_inspect.get('rc') == 0

- name: "inspecting ceph rgw container image before pulling"
command: "docker inspect {{ (ceph_rgw_inspect.stdout | from_json)[0].Image }}"
command: "{{ container_binary }} inspect {{ (ceph_rgw_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
register: ceph_rgw_container_inspect_before_pull
Expand All @@ -92,7 +92,7 @@
- ceph_rgw_inspect.get('rc') == 0

- name: "inspecting ceph mds container image before pulling"
command: "docker inspect {{ (ceph_mds_inspect.stdout | from_json)[0].Image }}"
command: "{{ container_binary }} inspect {{ (ceph_mds_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
register: ceph_mds_container_inspect_before_pull
Expand All @@ -101,7 +101,7 @@
- ceph_mds_inspect.get('rc') == 0

- name: "inspecting ceph mgr container image before pulling"
command: "docker inspect {{ (ceph_mgr_inspect.stdout | from_json)[0].Image }}"
command: "{{ container_binary }} inspect {{ (ceph_mgr_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
register: ceph_mgr_container_inspect_before_pull
Expand All @@ -110,7 +110,7 @@
- ceph_mgr_inspect.get('rc') == 0

- name: "inspecting ceph rbd mirror container image before pulling"
command: "docker inspect {{ (ceph_rbd_mirror_inspect.stdout | from_json)[0].Image }}"
command: "{{ container_binary }} inspect {{ (ceph_rbd_mirror_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
register: ceph_rbd_mirror_container_inspect_before_pull
Expand All @@ -119,7 +119,7 @@
- ceph_rbd_mirror_inspect.get('rc') == 0

- name: "inspecting ceph nfs container image before pulling"
command: "docker inspect {{ (ceph_nfs_inspect.stdout | from_json)[0].Image }}"
command: "{{ container_binary }} inspect {{ (ceph_nfs_inspect.stdout | from_json)[0].Image }}"
changed_when: false
failed_when: false
register: ceph_nfs_container_inspect_before_pull
Expand Down Expand Up @@ -176,8 +176,8 @@
- nfs_group_name in group_names
- ceph_nfs_container_inspect_before_pull.get('rc') == 0

- name: "pulling {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image"
command: "timeout {{ docker_pull_timeout }} docker pull {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
- name: "pulling {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image"
command: "timeout {{ docker_pull_timeout }} {{ container_binary }} pull {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
changed_when: false
register: docker_image
until: docker_image.rc == 0
Expand All @@ -186,8 +186,8 @@
when:
- (ceph_docker_dev_image is undefined or not ceph_docker_dev_image)

- name: "inspecting {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image after pulling"
command: "docker inspect {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
- name: "inspecting {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image after pulling"
command: "{{ container_binary }} inspect {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
changed_when: false
failed_when: false
register: image_inspect_after_pull
Expand Down Expand Up @@ -277,7 +277,7 @@

- name: export local ceph dev image
command: >
docker save -o "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
{{ container_binary }} save -o "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
"{{ ceph_docker_username }}/{{ ceph_docker_imagename }}:{{ ceph_docker_image_tag }}"
delegate_to: localhost
when:
Expand All @@ -292,7 +292,7 @@
- (ceph_docker_dev_image is defined and ceph_docker_dev_image)

- name: load ceph dev image
command: "docker load -i /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
command: "{{ container_binary }} load -i /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar"
when:
- (ceph_docker_dev_image is defined and ceph_docker_dev_image)

Expand Down
4 changes: 3 additions & 1 deletion roles/ceph-container-common/tasks/main.yml
Expand Up @@ -9,10 +9,12 @@
changed_when: false
check_mode: no
register: ceph_docker_version
when: not is_podman

- name: set_fact ceph_docker_version ceph_docker_version.stdout.split
set_fact:
ceph_docker_version: "{{ ceph_docker_version.stdout.split(' ')[2] }}"
when: not is_podman

- name: include checks.yml
include_tasks: checks.yml
Expand All @@ -31,7 +33,7 @@

- name: get ceph version
command: >
docker run --rm --entrypoint /usr/bin/ceph
{{ container_binary }} run --rm --entrypoint /usr/bin/ceph
{{ ceph_client_docker_registry }}/{{ ceph_client_docker_image }}:{{ ceph_client_docker_image_tag }}
--version
changed_when: false
Expand Down
17 changes: 16 additions & 1 deletion roles/ceph-defaults/tasks/facts.yml
Expand Up @@ -8,6 +8,21 @@
set_fact:
is_atomic: "{{ stat_ostree.stat.exists }}"

- name: check if podman binary is present
stat:
path: /usr/bin/podman
register: podman_binary

- name: set_fact is_podman
set_fact:
is_podman: "{{ podman_binary.stat.exists }}"
when: is_atomic

- name: set_fact container_binary
set_fact:
container_binary: "{{ 'podman' if is_atomic and is_podman else 'docker' }}"
when: containerized_deployment

- name: set_fact monitor_name ansible_hostname
set_fact:
monitor_name: "{{ ansible_hostname }}"
Expand All @@ -22,7 +37,7 @@

- name: set_fact docker_exec_cmd
set_fact:
docker_exec_cmd: "docker exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }}"
docker_exec_cmd: "{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }}"
delegate_to: "{{ groups[mon_group_name][0] }}"
when:
- containerized_deployment
Expand Down
20 changes: 10 additions & 10 deletions roles/ceph-handler/tasks/check_running_containers.yml
@@ -1,6 +1,6 @@
---
- name: check for a mon container
command: "docker ps -q --filter='name=ceph-mon-{{ ansible_hostname }}'"
command: "{{ container_binary }} ps -q --filter='name=ceph-mon-{{ ansible_hostname }}'"
register: ceph_mon_container_stat
changed_when: false
failed_when: false
Expand All @@ -9,7 +9,7 @@
- inventory_hostname in groups.get(mon_group_name, [])

- name: check for an osd container
command: "docker ps -q --filter='name=ceph-osd'"
command: "{{ container_binary }} ps -q --filter='name=ceph-osd'"
register: ceph_osd_container_stat
changed_when: false
failed_when: false
Expand All @@ -18,7 +18,7 @@
- inventory_hostname in groups.get(osd_group_name, [])

- name: check for a mds container
command: "docker ps -q --filter='name=ceph-mds-{{ ansible_hostname }}'"
command: "{{ container_binary }} ps -q --filter='name=ceph-mds-{{ ansible_hostname }}'"
register: ceph_mds_container_stat
changed_when: false
failed_when: false
Expand All @@ -27,7 +27,7 @@
- inventory_hostname in groups.get(mds_group_name, [])

- name: check for a rgw container
command: "docker ps -q --filter='name=ceph-rgw-{{ ansible_hostname }}'"
command: "{{ container_binary }} ps -q --filter='name=ceph-rgw-{{ ansible_hostname }}'"
register: ceph_rgw_container_stat
changed_when: false
failed_when: false
Expand All @@ -36,7 +36,7 @@
- inventory_hostname in groups.get(rgw_group_name, [])

- name: check for a mgr container
command: "docker ps -q --filter='name=ceph-mgr-{{ ansible_hostname }}'"
command: "{{ container_binary }} ps -q --filter='name=ceph-mgr-{{ ansible_hostname }}'"
register: ceph_mgr_container_stat
changed_when: false
failed_when: false
Expand All @@ -45,7 +45,7 @@
- inventory_hostname in groups.get(mgr_group_name, [])

- name: check for a rbd mirror container
command: "docker ps -q --filter='name=ceph-rbd-mirror-{{ ansible_hostname }}'"
command: "{{ container_binary }} ps -q --filter='name=ceph-rbd-mirror-{{ ansible_hostname }}'"
register: ceph_rbd_mirror_container_stat
changed_when: false
failed_when: false
Expand All @@ -54,7 +54,7 @@
- inventory_hostname in groups.get(rbdmirror_group_name, [])

- name: check for a nfs container
command: "docker ps -q --filter='name=ceph-nfs-{{ ansible_hostname }}'"
command: "{{ container_binary }} ps -q --filter='name=ceph-nfs-{{ ansible_hostname }}'"
register: ceph_nfs_container_stat
changed_when: false
failed_when: false
Expand All @@ -63,7 +63,7 @@
- inventory_hostname in groups.get(nfs_group_name, [])

- name: check for a tcmu-runner container
command: "docker ps -q --filter='name=tcmu-runner'"
command: "{{ container_binary }} ps -q --filter='name=tcmu-runner'"
register: ceph_tcmu_runner_stat
changed_when: false
failed_when: false
Expand All @@ -72,7 +72,7 @@
- inventory_hostname in groups.get(iscsi_gw_group_name, [])

- name: check for a rbd-target-api container
command: "docker ps -q --filter='name=rbd-target-api'"
command: "{{ container_binary }} ps -q --filter='name=rbd-target-api'"
register: ceph_rbd_target_api_stat
changed_when: false
failed_when: false
Expand All @@ -81,7 +81,7 @@
- inventory_hostname in groups.get(iscsi_gw_group_name, [])

- name: check for a rbd-target-gw container
command: "docker ps -q --filter='name=rbd-target-gw'"
command: "{{ container_binary }} ps -q --filter='name=rbd-target-gw'"
register: ceph_rbd_target_gw_stat
changed_when: false
failed_when: false
Expand Down
2 changes: 1 addition & 1 deletion roles/ceph-handler/templates/restart_mds_daemon.sh.j2
Expand Up @@ -4,7 +4,7 @@ RETRIES="{{ handler_health_mds_check_retries }}"
DELAY="{{ handler_health_mds_check_delay }}"
MDS_NAME="{{ mds_name }}"
{% if containerized_deployment %}
DOCKER_EXEC="docker exec ceph-mds-{{ ansible_hostname }}"
DOCKER_EXEC="{{ container_binary }} exec ceph-mds-{{ ansible_hostname }}"
{% endif %}

# Backward compatibility
Expand Down
2 changes: 1 addition & 1 deletion roles/ceph-handler/templates/restart_mgr_daemon.sh.j2
Expand Up @@ -4,7 +4,7 @@ RETRIES="{{ handler_health_mgr_check_retries }}"
DELAY="{{ handler_health_mgr_check_delay }}"
MGR_NAME="{{ ansible_hostname }}"
{% if containerized_deployment %}
DOCKER_EXEC="docker exec ceph-mgr-{{ ansible_hostname }}"
DOCKER_EXEC="{{ container_binary }} exec ceph-mgr-{{ ansible_hostname }}"
{% endif %}

# Backward compatibility
Expand Down
2 changes: 1 addition & 1 deletion roles/ceph-handler/templates/restart_mon_daemon.sh.j2
Expand Up @@ -4,7 +4,7 @@ RETRIES="{{ handler_health_mon_check_retries }}"
DELAY="{{ handler_health_mon_check_delay }}"
MONITOR_NAME="{{ monitor_name }}"
{% if containerized_deployment %}
DOCKER_EXEC="docker exec ceph-mon-{{ ansible_hostname }}"
DOCKER_EXEC="{{ container_binary }} exec ceph-mon-{{ ansible_hostname }}"
{% endif %}

# Backward compatibility
Expand Down
2 changes: 1 addition & 1 deletion roles/ceph-handler/templates/restart_nfs_daemon.sh.j2
Expand Up @@ -5,7 +5,7 @@ DELAY="{{ handler_health_nfs_check_delay }}"
NFS_NAME="ceph-nfs@{{ ceph_nfs_service_suffix | default(ansible_hostname) }}"
PID=/var/run/ganesha.pid
{% if containerized_deployment %}
DOCKER_EXEC="docker exec ceph-nfs-{{ ansible_hostname }}"
DOCKER_EXEC="{{ container_binary }} exec ceph-nfs-{{ ansible_hostname }}"
{% endif %}

# First, restart the daemon
Expand Down

0 comments on commit 44807bb

Please sign in to comment.