Skip to content

Commit

Permalink
purge: do not purge infra pkgs by default
Browse files Browse the repository at this point in the history
By default infra pkgs will remain installed after the cluster
purge as they might already be there at Ceph installation and could be
used by other processes on the nodes.

Fixes: #239

Signed-off-by: Teoman ONAY <[email protected]>
  • Loading branch information
asm0deuz committed Nov 29, 2023
1 parent 90e8370 commit 93104a4
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 12 deletions.
5 changes: 3 additions & 2 deletions ceph_defaults/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@ ceph_ibm_key: https://public.dhe.ibm.com/ibmdl/export/pub/storage/ceph/RPM-GPG-K
ceph_release: quincy
upgrade_ceph_packages: false
ceph_pkgs:
- chrony
- cephadm
- podman
- ceph-common
ceph_client_pkgs:
- chrony
- ceph-common
infra_pkgs:
- chrony
- podman
client_group: clients
2 changes: 1 addition & 1 deletion cephadm-preflight.yml
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@

- name: install prerequisites packages
package:
name: "{{ ceph_pkgs }}"
name: "{{ ceph_pkgs + infra_pkgs }}"
state: "{{ (upgrade_ceph_packages | bool) | ternary('latest', 'present') }}"
register: result
until: result is succeeded
Expand Down
21 changes: 12 additions & 9 deletions cephadm-purge-cluster.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@


- name: check cluster hosts have cephadm and the required fsid {{ fsid }}
hosts: all
hosts: all,!{{ client_group }}
gather_facts: false
become: true
any_errors_fatal: true
Expand All @@ -70,30 +70,26 @@
register: cephadm_exists
changed_when: false
failed_when: false
when: group_names != [client_group]

- name: fail if cephadm is not available
fail:
msg: |
The cephadm binary is missing on {{ inventory_hostname }}. To purge the cluster you must have cephadm installed
on ALL ceph hosts. Install manually or use the preflight playbook.
when:
- group_names != [client_group]
- cephadm_exists.rc

- name: check fsid directory given is valid across the cluster
stat:
path: /var/lib/ceph/{{ fsid }}
register: fsid_exists
when: group_names != [client_group]

- name: fail if the fsid directory is missing
fail:
msg: |
The fsid directory '/var/lib/ceph/{{ fsid }}' can not be found on {{ inventory_hostname }}
Is the fsid correct?
when:
- group_names != [client_group]
- not fsid_exists.stat.exists | bool


Expand Down Expand Up @@ -133,7 +129,7 @@


- name: Purge ceph daemons from all hosts in the cluster
hosts: all
hosts: all,!{{ client_group }}
become: true
gather_facts: false
any_errors_fatal: true
Expand All @@ -144,7 +140,6 @@

- name: purge ceph daemons

Check failure on line 141 in cephadm-purge-cluster.yml

View workflow job for this annotation

GitHub Actions / build

no-changed-when Commands should not change things if nothing needs doing
command: "cephadm rm-cluster --force --zap-osds --fsid {{ fsid }}"
when: group_names != [client_group]


- name: remove ceph packages
Expand All @@ -157,9 +152,17 @@
import_role:
name: ceph_defaults

- name: remove ceph packages
- name: remove ceph packages on servers
package:
name: "{{ ceph_pkgs | unique }}"
state: absent
register: result
until: result is succeeded

- name: remove ceph packages on clients
package:
name: "{{ 'ceph-common' if group_names == [client_group] else ceph_pkgs | unique }}"
name: ceph-common
state: absent
register: result
until: result is succeeded

0 comments on commit 93104a4

Please sign in to comment.