From: Dimitri Savineau Date: Thu, 16 Apr 2020 16:17:12 +0000 (-0400) Subject: docker2podman: manage dashboard nodes X-Git-Tag: v4.0.24~9 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=a97e24fee9a84079384a6fee03737ce7c45c05cc;p=ceph-ansible.git docker2podman: manage dashboard nodes The dashboard nodes (alertmanager, grafana, node-exporter, and prometheus) were not manage during the docker to podman migration. This adds the systemd container template of those services to a dedicated file (systemd.yml) in order to include it in the docker2podman playbook. This also adds the dashboard container images pull from docker to podman. Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1829389 Signed-off-by: Dimitri Savineau (cherry picked from commit 252e78b4e4e90bc1c21d9dfd4a7c9bd132e94730) --- diff --git a/infrastructure-playbooks/docker-to-podman.yml b/infrastructure-playbooks/docker-to-podman.yml index a27b1fd8a..fa83b1ca6 100644 --- a/infrastructure-playbooks/docker-to-podman.yml +++ b/infrastructure-playbooks/docker-to-podman.yml @@ -46,6 +46,7 @@ - "{{ mgr_group_name | default('mgrs') }}" - "{{ iscsi_gw_group_name | default('iscsigws') }}" - "{{ rbdmirror_group_name | default('rbdmirrors') }}" + - "{{ grafana_server_group_name|default('grafana-server') }}" gather_facts: false become: true tasks: @@ -99,6 +100,30 @@ inventory_hostname in groups.get(iscsi_gw_group_name, []) or inventory_hostname in groups.get(nfs_group_name, []) + - name: "pulling alertmanager/grafana/prometheus images from docker daemon" + command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ item }}" + changed_when: false + register: pull_image + until: pull_image.rc == 0 + retries: "{{ docker_pull_retry }}" + delay: 10 + loop: + - "{{ alertmanager_container_image }}" + - "{{ grafana_container_image }}" + - "{{ prometheus_container_image }}" + when: + - dashboard_enabled | bool + - inventory_hostname in groups.get(grafana_server_group_name, []) + + - name: "pulling {{ node_exporter_container_image }} image from docker daemon" + command: "{{ timeout_command }} {{ container_binary }} pull docker-daemon:{{ node_exporter_container_image }}" + changed_when: false + register: pull_image + until: pull_image.rc == 0 + retries: "{{ docker_pull_retry }}" + delay: 10 + when: dashboard_enabled | bool + - import_role: name: ceph-mon tasks_from: systemd.yml @@ -144,6 +169,28 @@ tasks_from: systemd.yml when: inventory_hostname in groups.get(rgw_group_name, []) + - name: dashboard configuration + when: dashboard_enabled | bool + block: + - import_role: + name: ceph-node-exporter + tasks_from: systemd.yml + + - import_role: + name: ceph-facts + tasks_from: grafana.yml + when: inventory_hostname in groups.get(grafana_server_group_name, []) + + - import_role: + name: ceph-grafana + tasks_from: systemd.yml + when: inventory_hostname in groups.get(grafana_server_group_name, []) + + - import_role: + name: ceph-prometheus + tasks_from: systemd.yml + when: inventory_hostname in groups.get(grafana_server_group_name, []) + - name: reload systemd daemon systemd: daemon_reload: yes \ No newline at end of file diff --git a/roles/ceph-grafana/tasks/setup_container.yml b/roles/ceph-grafana/tasks/setup_container.yml index a444ca8e2..33e6f61c8 100644 --- a/roles/ceph-grafana/tasks/setup_container.yml +++ b/roles/ceph-grafana/tasks/setup_container.yml @@ -10,13 +10,8 @@ - /etc/grafana - /var/lib/grafana -- name: ship systemd service - template: - src: grafana-server.service.j2 - dest: "/etc/systemd/system/grafana-server.service" - owner: root - group: root - mode: 0644 +- name: include_tasks systemd.yml + include_tasks: systemd.yml - name: start the grafana-server service systemd: diff --git a/roles/ceph-grafana/tasks/systemd.yml b/roles/ceph-grafana/tasks/systemd.yml new file mode 100644 index 000000000..d51387058 --- /dev/null +++ b/roles/ceph-grafana/tasks/systemd.yml @@ -0,0 +1,8 @@ +--- +- name: ship systemd service + template: + src: grafana-server.service.j2 + dest: "/etc/systemd/system/grafana-server.service" + owner: root + group: root + mode: 0644 diff --git a/roles/ceph-node-exporter/tasks/setup_container.yml b/roles/ceph-node-exporter/tasks/setup_container.yml index 2dd4dd100..4208fb7d2 100644 --- a/roles/ceph-node-exporter/tasks/setup_container.yml +++ b/roles/ceph-node-exporter/tasks/setup_container.yml @@ -1,11 +1,6 @@ --- -- name: ship systemd service - template: - src: node_exporter.service.j2 - dest: "/etc/systemd/system/node_exporter.service" - owner: root - group: root - mode: 0644 +- name: include_tasks systemd.yml + include_tasks: systemd.yml - name: start the node_exporter service systemd: diff --git a/roles/ceph-node-exporter/tasks/systemd.yml b/roles/ceph-node-exporter/tasks/systemd.yml new file mode 100644 index 000000000..4df992080 --- /dev/null +++ b/roles/ceph-node-exporter/tasks/systemd.yml @@ -0,0 +1,8 @@ +--- +- name: ship systemd service + template: + src: node_exporter.service.j2 + dest: "/etc/systemd/system/node_exporter.service" + owner: root + group: root + mode: 0644 diff --git a/roles/ceph-prometheus/handlers/main.yml b/roles/ceph-prometheus/handlers/main.yml index bd4a153f7..dca87676a 100644 --- a/roles/ceph-prometheus/handlers/main.yml +++ b/roles/ceph-prometheus/handlers/main.yml @@ -9,4 +9,5 @@ state: restarted with_items: - 'alertmanager' - - 'prometheus' \ No newline at end of file + - 'prometheus' + when: not docker2podman | default(False) | bool diff --git a/roles/ceph-prometheus/tasks/setup_container.yml b/roles/ceph-prometheus/tasks/setup_container.yml index b07354718..25eec6e96 100644 --- a/roles/ceph-prometheus/tasks/setup_container.yml +++ b/roles/ceph-prometheus/tasks/setup_container.yml @@ -1,15 +1,6 @@ --- -- name: ship systemd services - template: - src: "{{ item }}.j2" - dest: "/etc/systemd/system/{{ item }}" - owner: root - group: root - mode: 0644 - with_items: - - 'alertmanager.service' - - 'prometheus.service' - notify: service handler +- name: include_tasks systemd.yml + include_tasks: systemd.yml - name: start prometheus services systemd: diff --git a/roles/ceph-prometheus/tasks/systemd.yml b/roles/ceph-prometheus/tasks/systemd.yml new file mode 100644 index 000000000..eb587ac62 --- /dev/null +++ b/roles/ceph-prometheus/tasks/systemd.yml @@ -0,0 +1,12 @@ +--- +- name: ship systemd services + template: + src: "{{ item }}.j2" + dest: "/etc/systemd/system/{{ item }}" + owner: root + group: root + mode: 0644 + with_items: + - 'alertmanager.service' + - 'prometheus.service' + notify: service handler diff --git a/tests/functional/docker2podman/hosts b/tests/functional/docker2podman/hosts index 60e953a48..294792600 100644 --- a/tests/functional/docker2podman/hosts +++ b/tests/functional/docker2podman/hosts @@ -10,5 +10,5 @@ mon0 [mgrs] mon0 -#[all:vars] -#ansible_python_interpreter=/usr/bin/python3 \ No newline at end of file +[grafana-server] +mon0 \ No newline at end of file