]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: cephadm e2e start script: add --expanded option 42697/head
authorAlfonso Martínez <almartin@redhat.com>
Mon, 9 Aug 2021 13:14:21 +0000 (15:14 +0200)
committerAlfonso Martínez <almartin@redhat.com>
Mon, 9 Aug 2021 13:14:21 +0000 (15:14 +0200)
- Additional improvements: clean npm cache in jenkins env.; display mgr logs on error.

Fixes: https://tracker.ceph.com/issues/52082
Signed-off-by: Alfonso Martínez <almartin@redhat.com>
doc/dev/developer_guide/dash-devel.rst
src/pybind/mgr/dashboard/ci/cephadm/bootstrap-cluster.sh
src/pybind/mgr/dashboard/ci/cephadm/start-cluster.sh

index 9e99c019f25465d966dd4c09872b7ad04d0f450f..449118db5bb5e286e622cf6d394f27371f1a7605 100644 (file)
@@ -448,14 +448,24 @@ Start E2E tests by running::
   $ cd <your/ceph/repo/dir>
   $ sudo chown -R $(id -un) src/pybind/mgr/dashboard/frontend/{dist,node_modules,src/environments}
   $ ./src/pybind/mgr/dashboard/ci/cephadm/run-cephadm-e2e-tests.sh
-  $ kcli delete plan -y ceph  # After tests finish.
 
-You can also start a cluster in development mode and later run E2E tests by running::
+You can also start a cluster in development mode (so the frontend build starts in watch mode and you
+only have to reload the page for the changes to be reflected) by running::
 
   $ ./src/pybind/mgr/dashboard/ci/cephadm/start-cluster.sh --dev-mode
-  $ # Work on your feature, bug fix, ...
+
+Note:
+  Add ``--expanded`` if you need a cluster ready to deploy services (one with enough monitor
+  daemons spread across different hosts and enough OSDs).
+
+Test your changes by running:
+
   $ ./src/pybind/mgr/dashboard/ci/cephadm/run-cephadm-e2e-tests.sh
-  $ # Remember to kill the npm build watch process i.e.: pkill -f "ng build"
+
+Shutdown the cluster by running:
+
+  $ kcli delete plan -y ceph
+  $ # In development mode, also kill the npm build watch process (e.g., pkill -f "ng build")
 
 Other running options
 .....................
index af7ef81f43f3f5d182288e57e5d7d194aa79bee3..4bad63bc5973c64002e673ddba12a6fc56a06e08 100755 (executable)
@@ -10,6 +10,15 @@ mon_ip=$(ifconfig eth0  | grep 'inet ' | awk '{ print $2}')
 
 cephadm bootstrap --mon-ip $mon_ip --initial-dashboard-password {{ admin_password }} --allow-fqdn-hostname --dashboard-password-noupdate --shared_ceph_folder /mnt/{{ ceph_dev_folder }}
 
+fsid=$(cat /etc/ceph/ceph.conf | grep fsid | awk '{ print $3}')
+
 {% for number in range(1, nodes) %}
   ssh-copy-id -f -i /etc/ceph/ceph.pub  -o StrictHostKeyChecking=no root@{{ prefix }}-node-0{{ number }}.{{ domain }}
+  {% if expanded_cluster is defined %}
+    cephadm shell --fsid $fsid -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring ceph orch host add {{ prefix }}-node-0{{ number }}.{{ domain }}
+  {% endif %}
 {% endfor %}
+
+{% if expanded_cluster is defined %}
+  cephadm shell --fsid $fsid -c /etc/ceph/ceph.conf -k /etc/ceph/ceph.client.admin.keyring ceph orch apply osd --all-available-devices
+{% endif %}
index 61775d0bac4e6e36ed2c4d88c8da2fb36d996367..68c49bb11422458250d66ee84bb76190f032cb76 100755 (executable)
@@ -17,6 +17,8 @@ on_error() {
     if [ "$1" != "0" ]; then
         printf "\n\nERROR $1 thrown on line $2\n\n"
         printf "\n\nCollecting info...\n\n"
+        printf "\n\nDisplaying MGR logs:\n\n"
+        kcli ssh -u root -- ceph-node-00 'cephadm logs -n $(cephadm ls | grep -Eo "mgr\.ceph[0-9a-z.-]+" | head -n 1)'
         for vm_id in 0 1 2
         do
             local vm="ceph-node-0${vm_id}"
@@ -42,7 +44,8 @@ DEV_MODE=''
 for arg in "$@"; do
   shift
   case "$arg" in
-    "--dev-mode") DEV_MODE='true'; EXTRA_PARAMS="-P dev_mode=${DEV_MODE}" ;;
+    "--dev-mode") DEV_MODE='true'; EXTRA_PARAMS+=" -P dev_mode=${DEV_MODE}" ;;
+    "--expanded") EXTRA_PARAMS+=" -P expanded_cluster=true" ;;
   esac
 done
 
@@ -50,7 +53,11 @@ kcli delete plan -y ceph || true
 
 # Build dashboard frontend (required to start the module).
 cd ${CEPH_DEV_FOLDER}/src/pybind/mgr/dashboard/frontend
-NG_CLI_ANALYTICS=false npm ci
+export NG_CLI_ANALYTICS=false
+if [[ -n "$JENKINS_HOME" ]]; then
+    npm cache clean --force
+fi
+npm ci
 FRONTEND_BUILD_OPTS='-- --prod'
 if [[ -n "${DEV_MODE}" ]]; then
     FRONTEND_BUILD_OPTS+=' --deleteOutputPath=false --watch'