1. 16 Oct, 2019 8 commits
  2. 15 Oct, 2019 4 commits
    • Dimitri Savineau's avatar
      ceph-handler: group listen topics and condition · 3313bc5c
      Dimitri Savineau authored
      
      
      We are using multiple listen topics with the handlers. That means that
      we are notifying 4 tasks for each handler.
      Instead we can group the listen on an include_tasks and based on the
      group condition.
      
      Before:
      
      NOTIFIED HANDLER ceph-handler : set _mon_handler_called before restart for mon0
      NOTIFIED HANDLER ceph-handler : copy mon restart script for mon0
      NOTIFIED HANDLER ceph-handler : restart ceph mon daemon(s) for mon0
      NOTIFIED HANDLER ceph-handler : set _mon_handler_called after restart for mon0
      NOTIFIED HANDLER ceph-handler : set _osd_handler_called before restart for mon0
      NOTIFIED HANDLER ceph-handler : copy osd restart script for mon0
      NOTIFIED HANDLER ceph-handler : restart ceph osds daemon(s) for mon0
      NOTIFIED HANDLER ceph-handler : set _osd_handler_called after restart for mon0
      NOTIFIED HANDLER ceph-handler : set _mds_handler_called before restart for mon0
      NOTIFIED HANDLER ceph-handler : copy mds restart script for mon0
      NOTIFIED HANDLER ceph-handler : restart ceph mds daemon(s) for mon0
      NOTIFIED HANDLER ceph-handler : set _mds_handler_called after restart for mon0
      NOTIFIED HANDLER ceph-handler : set _rgw_handler_called before restart for mon0
      NOTIFIED HANDLER ceph-handler : copy rgw restart script for mon0
      NOTIFIED HANDLER ceph-handler : restart ceph rgw daemon(s) for mon0
      NOTIFIED HANDLER ceph-handler : set _rgw_handler_called after restart for mon0
      NOTIFIED HANDLER ceph-handler : set _mgr_handler_called before restart for mon0
      NOTIFIED HANDLER ceph-handler : copy mgr restart script for mon0
      NOTIFIED HANDLER ceph-handler : restart ceph mgr daemon(s) for mon0
      NOTIFIED HANDLER ceph-handler : set _mgr_handler_called after restart for mon0
      NOTIFIED HANDLER ceph-handler : set _rbdmirror_handler_called before restart for mon0
      NOTIFIED HANDLER ceph-handler : copy rbd mirror restart script for mon0
      NOTIFIED HANDLER ceph-handler : restart ceph rbd mirror daemon(s) for mon0
      NOTIFIED HANDLER ceph-handler : set _rbdmirror_handler_called after restart for mon0
      
      After:
      
      NOTIFIED HANDLER ceph-handler : mons handler for mon0
      NOTIFIED HANDLER ceph-handler : osds handler for mon0
      NOTIFIED HANDLER ceph-handler : mdss handler for mon0
      NOTIFIED HANDLER ceph-handler : rgws handler for mon0
      NOTIFIED HANDLER ceph-handler : mgrs handler for mon0
      NOTIFIED HANDLER ceph-handler : rbdmirrors handler for mon0
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit fe9c5b8c)
      3313bc5c
    • Guillaume Abrioux's avatar
      handler: followup on #4519 · 13f6a0a2
      Guillaume Abrioux authored
      
      
      This commit adds some missing `| bool` filters.
      Signed-off-by: default avatarGuillaume Abrioux <gabrioux@redhat.com>
      (cherry picked from commit ccc11cfc)
      13f6a0a2
    • Guillaume Abrioux's avatar
      handlers: refact osd handler · fd10fbc0
      Guillaume Abrioux authored
      
      
      This commit merges the two restart tasks into a single one, this way
      it's one task less to notify.
      Signed-off-by: default avatarGuillaume Abrioux <gabrioux@redhat.com>
      (cherry picked from commit 411bd07d)
      fd10fbc0
    • Dimitri Savineau's avatar
      Remove validate action and notario dependency · 8117ed34
      Dimitri Savineau authored
      The current ceph-validate role is using both validate action and fail
      module tasks to validate the ceph configuration.
      The validate action is based on the notario python library. When one of
      the notario validation fails then a python stack trace is reported to the
      ansible task. This output isn't understandable by users.
      
      This patch removes the validate action and the notario depencendy. The
      validation is now done with only fail ansible module.
      
      Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1654790
      
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit 0f978d96)
      8117ed34
  3. 14 Oct, 2019 1 commit
  4. 11 Oct, 2019 2 commits
  5. 10 Oct, 2019 1 commit
  6. 09 Oct, 2019 2 commits
    • Guillaume Abrioux's avatar
      dashboard: if no host is available, let's just skip these plays. · ebfe7f31
      Guillaume Abrioux authored
      If there is no host available, let's just skip these plays.
      
      Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1759917
      
      Signed-off-by: default avatarGuillaume Abrioux <gabrioux@redhat.com>
      (cherry picked from commit 0b245bd0)
      ebfe7f31
    • Dimitri Savineau's avatar
      dashboard: update layouts before the restart · eb51cc1b
      Dimitri Savineau authored
      
      
      If the mgr dashboard doesn't restart fast enough then the inject
      dashboard task will fail with a HTTP error 400.
      
      Error EINVAL: Traceback (most recent call last):
        File "/usr/share/ceph/mgr/mgr_module.py", line 914, in _handle_command
          return self.handle_command(inbuf, cmd)
        File "/usr/share/ceph/mgr/dashboard/module.py", line 450, in handle_command
          push_local_dashboards()
        File "/usr/share/ceph/mgr/dashboard/grafana.py", line 132, in push_local_dashboards
          retry()
        File "/usr/share/ceph/mgr/dashboard/grafana.py", line 89, in call
          result = self.func(*self.args, **self.kwargs)
        File "/usr/share/ceph/mgr/dashboard/grafana.py", line 127, in push
          grafana.push_dashboard(body)
        File "/usr/share/ceph/mgr/dashboard/grafana.py", line 54, in push_dashboard
          response.raise_for_status()
        File "/usr/lib/python2.7/site-packages/requests/models.py", line 834, in raise_for_status
          raise HTTPError(http_error_msg, response=self)
      HTTPError: 400 Client Error: Bad Request
      
      Instead we can trigger this task before the module restart.
      
      Closes: #4565
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit 3f6ff240)
      eb51cc1b
  7. 08 Oct, 2019 2 commits
  8. 07 Oct, 2019 11 commits
  9. 04 Oct, 2019 5 commits
    • Dimitri Savineau's avatar
      tests: fix rgw multisite vagrant variables · 067aa3aa
      Dimitri Savineau authored
      The secondary vagrant variables didn't have the grafana vm variable
      set which create an vagrant error.
      
      There was an error loading a Vagrantfile. The file being loaded
      and the error message are shown below. This is usually caused by
      an invalid or undefined variable.
      
      This patch also changes the ssh-extra-args parameter to ssh-common-args
      to get the same values for ssh/sftp/scp. Otherwise we can see warnings
      from ansible and some tasks are failing.
      
      [WARNING]: sftp transfer mechanism failed on [mon0]. Use ANSIBLE_DEBUG=1
      to see detailed information
      
      It also updates the ssh-common-args value for the rgw-multisite scenario
      to reflect the ANSIBLE_SSH_ARGS environment variable value.
      
      Finally changing the IP addresses due to the Vagrant refact done in the
      commit 778c51a0
      
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit 010158ff)
      067aa3aa
    • Dimitri Savineau's avatar
      ceph-dashboard: add cluster parameter to ceph cmd · 5bbd825a
      Dimitri Savineau authored
      
      
      The ceph dashboard tasks didn't use the cluster option if the cluster
      name isn't the default value.
      
      Closes: #4529
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit dd526cfe)
      5bbd825a
    • Dimitri Savineau's avatar
      dashboard: remove useless block section · ec1c57f6
      Dimitri Savineau authored
      
      
      The block section were used with the dashboard_enabled condition when
      the code was included in the main playbooks.
      Because this condition isn't present in the dashboard playbook anymore
      we can remove the block section.
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit cf47594b)
      ec1c57f6
    • Guillaume Abrioux's avatar
      Vagrantfile: support more than 9 nodes per daemon type · afd0670a
      Guillaume Abrioux authored
      
      
      because of the current ip address assignation, it's not possible to
      deploy more than 9 nodes per daemon type.
      This commit refact a bit and allows us to get around this limitation.
      Signed-off-by: default avatarGuillaume Abrioux <gabrioux@redhat.com>
      (cherry picked from commit 778c51a0)
      afd0670a
    • Dimitri Savineau's avatar
      ceph-handler: don't restart all OSDs with limit · 8ec632c4
      Dimitri Savineau authored
      
      
      When using the ansible --limit option on one or few OSD nodes and if the
      handler is triggered then we will restart the OSD service on all OSDs
      nodes instead of the hosts limited by the limit value.
      Even if the play is limited by the --limit value we are using all OSD
      nodes from the OSD group.
      
        with_items: '{{ groups[osd_group_name] }}'
      
      Instead we should iterate only on the nodes present in both OSD group and
      limit list.
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit 0346871f)
      8ec632c4
  10. 03 Oct, 2019 1 commit
  11. 02 Oct, 2019 2 commits
    • Guillaume Abrioux's avatar
      common: improve keyrings generation · 13ca0531
      Guillaume Abrioux authored
      
      
      There is no need to get n * number of nodes the different keyrings.
      Adding a `run_once: true` here avoid running a ceph command too many
      times which could be impacting large cluster deployment.
      Signed-off-by: default avatarGuillaume Abrioux <gabrioux@redhat.com>
      (cherry picked from commit 9bad239d)
      13ca0531
    • Dimitri Savineau's avatar
      ceph-facts: use --admin-daemon to get fsid · 5b24c66f
      Dimitri Savineau authored
      
      
      During the rolling_update scenario, the fsid value is retrieve from the
      current ceph cluster configuration via the ceph daemon config command.
      This command tries first to resolve the admin socket path via the
      ceph-conf command.
      Unfortunately this command won't work if you have a duplicate key in the
      ceph configuration even if it only produces a warning. As a result the
      task will fail.
      
      Can't get admin socket path: unable to get conf option admin_socket for
      mon.xxx: warning: line 13: 'osd_memory_target' in section 'osd' redefined
      
      Instead of using ceph daemon we can use the --admin-daemon option
      because we already know what the socket admin path value based on the
      ceph cluster and mon hostname values.
      
      Closes: #4492
      Signed-off-by: default avatarDimitri Savineau <dsavinea@redhat.com>
      (cherry picked from commit ec3b687d)
      5b24c66f
  12. 01 Oct, 2019 1 commit