summaryrefslogtreecommitdiffstats
path: root/qa/suites/orch/cephadm/workunits
diff options
context:
space:
mode:
Diffstat (limited to 'qa/suites/orch/cephadm/workunits')
-rw-r--r--qa/suites/orch/cephadm/workunits/task/test_adoption.yaml11
-rw-r--r--qa/suites/orch/cephadm/workunits/task/test_extra_daemon_features.yaml74
-rw-r--r--qa/suites/orch/cephadm/workunits/task/test_host_drain.yaml72
-rw-r--r--qa/suites/orch/cephadm/workunits/task/test_orch_cli.yaml17
-rw-r--r--qa/suites/orch/cephadm/workunits/task/test_orch_cli_mon.yaml45
5 files changed, 146 insertions, 73 deletions
diff --git a/qa/suites/orch/cephadm/workunits/task/test_adoption.yaml b/qa/suites/orch/cephadm/workunits/task/test_adoption.yaml
deleted file mode 100644
index e04fc1eea..000000000
--- a/qa/suites/orch/cephadm/workunits/task/test_adoption.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-roles:
-- [mon.a, mgr.x, osd.0, client.0]
-tasks:
-- install:
-- exec:
- mon.a:
- - yum install -y python3 || apt install -y python3
-- workunit:
- clients:
- client.0:
- - cephadm/test_adoption.sh
diff --git a/qa/suites/orch/cephadm/workunits/task/test_extra_daemon_features.yaml b/qa/suites/orch/cephadm/workunits/task/test_extra_daemon_features.yaml
new file mode 100644
index 000000000..b5e0ec98f
--- /dev/null
+++ b/qa/suites/orch/cephadm/workunits/task/test_extra_daemon_features.yaml
@@ -0,0 +1,74 @@
+roles:
+- - host.a
+ - mon.a
+ - mgr.a
+ - osd.0
+- - host.b
+ - mon.b
+ - mgr.b
+ - osd.1
+tasks:
+- install:
+- cephadm:
+- exec:
+ all-hosts:
+ - mkdir /etc/cephadm_testing
+- cephadm.apply:
+ specs:
+ - service_type: mon
+ placement:
+ host_pattern: '*'
+ extra_container_args:
+ - "--cpus=2"
+ extra_entrypoint_args:
+ - "--debug_ms 10"
+ - service_type: container
+ service_id: foo
+ placement:
+ host_pattern: '*'
+ spec:
+ image: "quay.io/fedora/fedora:latest"
+ entrypoint: "bash"
+ extra_container_args:
+ - "-v"
+ - "/etc/cephadm_testing:/root/cephadm_testing"
+ extra_entrypoint_args:
+ - "/root/write_thing_to_file.sh"
+ - "-c"
+ - "testing_custom_containers"
+ - "-o"
+ - "/root/cephadm_testing/testing.txt"
+ custom_configs:
+ - mount_path: "/root/write_thing_to_file.sh"
+ content: |
+ while getopts "o:c:" opt; do
+ case ${opt} in
+ o )
+ OUT_FILE=${OPTARG}
+ ;;
+ c )
+ CONTENT=${OPTARG}
+ esac
+ done
+ echo $CONTENT > $OUT_FILE
+ sleep infinity
+- cephadm.wait_for_service:
+ service: mon
+- cephadm.wait_for_service:
+ service: container.foo
+- exec:
+ host.a:
+ - |
+ set -ex
+ FSID=$(/home/ubuntu/cephtest/cephadm shell -- ceph fsid)
+ sleep 60
+ # check extra container and entrypoint args written to mon unit run file
+ grep "\-\-cpus=2" /var/lib/ceph/$FSID/mon.*/unit.run
+ grep "\-\-debug_ms 10" /var/lib/ceph/$FSID/mon.*/unit.run
+ # check that custom container properly wrote content to file.
+ # This requires the custom config, extra container args, and
+ # entrypoint args to all be working in order for this to have
+ # been written. The container entrypoint was set up with custom_configs,
+ # the content and where to write to with the entrypoint args, and the mounting
+ # of the /etc/cephadm_testing dir with extra container args
+ grep "testing_custom_containers" /etc/cephadm_testing/testing.txt
diff --git a/qa/suites/orch/cephadm/workunits/task/test_host_drain.yaml b/qa/suites/orch/cephadm/workunits/task/test_host_drain.yaml
new file mode 100644
index 000000000..c195bc052
--- /dev/null
+++ b/qa/suites/orch/cephadm/workunits/task/test_host_drain.yaml
@@ -0,0 +1,72 @@
+roles:
+- - host.a
+ - mon.a
+ - mgr.a
+ - osd.0
+ - osd.1
+- - host.b
+ - mon.b
+ - mgr.b
+ - osd.2
+ - osd.3
+- - host.c
+ - mon.c
+ - osd.4
+ - osd.5
+tasks:
+- install:
+- cephadm:
+- cephadm.shell:
+ host.a:
+ - |
+ set -ex
+ HOSTNAMES=$(ceph orch host ls --format json | jq -r '.[] | .hostname')
+ for host in $HOSTNAMES; do
+ # find the hostname for "host.c" which will have no mgr
+ HAS_MGRS=$(ceph orch ps --hostname ${host} --format json | jq 'any(.daemon_type == "mgr")')
+ if [ "$HAS_MGRS" == "false" ]; then
+ HOST_C="${host}"
+ fi
+ done
+ # One last thing to worry about before draining the host
+ # is that the teuthology test tends to put the explicit
+ # hostnames in the placement for the mon service.
+ # We want to make sure we can drain without providing
+ # --force and there is a check for the host being removed
+ # being listed explicitly in the placements. Therefore,
+ # we should remove it from the mon placement.
+ ceph orch ls mon --export > mon.yaml
+ sed /"$HOST_C"/d mon.yaml > mon_adjusted.yaml
+ ceph orch apply -i mon_adjusted.yaml
+ # now drain that host
+ ceph orch host drain $HOST_C --zap-osd-devices
+ # wait for drain to complete
+ HOST_C_DAEMONS=$(ceph orch ps --hostname $HOST_C)
+ while [ "$HOST_C_DAEMONS" != "No daemons reported" ]; do
+ sleep 15
+ HOST_C_DAEMONS=$(ceph orch ps --hostname $HOST_C)
+ done
+ # we want to check the ability to remove the host from
+ # the CRUSH map, so we should first verify the host is in
+ # the CRUSH map.
+ ceph osd getcrushmap -o compiled-crushmap
+ crushtool -d compiled-crushmap -o crushmap.txt
+ CRUSH_MAP=$(cat crushmap.txt)
+ if ! grep -q "$HOST_C" <<< "$CRUSH_MAP"; then
+ printf "Expected to see $HOST_C in CRUSH map. Saw:\n\n$CRUSH_MAP"
+ exit 1
+ fi
+ # If the drain was successful, we should be able to remove the
+ # host without force with no issues. If there are still daemons
+ # we will get a response telling us to drain the host and a
+ # non-zero return code
+ ceph orch host rm $HOST_C --rm-crush-entry
+ # verify we've successfully removed the host from the CRUSH map
+ sleep 30
+ ceph osd getcrushmap -o compiled-crushmap
+ crushtool -d compiled-crushmap -o crushmap.txt
+ CRUSH_MAP=$(cat crushmap.txt)
+ if grep -q "$HOST_C" <<< "$CRUSH_MAP"; then
+ printf "Saw $HOST_C in CRUSH map after it should have been removed.\n\n$CRUSH_MAP"
+ exit 1
+ fi
diff --git a/qa/suites/orch/cephadm/workunits/task/test_orch_cli.yaml b/qa/suites/orch/cephadm/workunits/task/test_orch_cli.yaml
deleted file mode 100644
index ec65fb116..000000000
--- a/qa/suites/orch/cephadm/workunits/task/test_orch_cli.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-roles:
-- - host.a
- - osd.0
- - osd.1
- - osd.2
- - mon.a
- - mgr.a
- - client.0
-tasks:
-- install:
-- cephadm:
-- cephadm.shell:
- host.a:
- - ceph orch apply mds a
-- cephfs_test_runner:
- modules:
- - tasks.cephadm_cases.test_cli
diff --git a/qa/suites/orch/cephadm/workunits/task/test_orch_cli_mon.yaml b/qa/suites/orch/cephadm/workunits/task/test_orch_cli_mon.yaml
deleted file mode 100644
index 2a33dc839..000000000
--- a/qa/suites/orch/cephadm/workunits/task/test_orch_cli_mon.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-roles:
-- - host.a
- - osd.0
- - osd.1
- - osd.2
- - mon.a
- - mgr.a
- - client.0
-- - host.b
- - osd.3
- - osd.4
- - osd.5
- - mon.b
- - mgr.b
- - client.1
-- - host.c
- - osd.6
- - osd.7
- - osd.8
- - mon.c
- - mgr.c
- - client.2
-- - host.d
- - osd.9
- - osd.10
- - osd.11
- - mon.d
- - mgr.d
- - client.3
-- - host.e
- - osd.12
- - osd.13
- - osd.14
- - mon.e
- - mgr.e
- - client.4
-tasks:
-- install:
-- cephadm:
-- cephadm.shell:
- host.a:
- - ceph orch apply mds a
-- cephfs_test_runner:
- modules:
- - tasks.cephadm_cases.test_cli_mon