Upgrading Rook Ceph

Notes on manually upgrading the Rook Operator and Ceph

Upgrading Rook Ceph

Previous versions of Replicated were bundled with Rook version 0.8. When upgrading Replicated the Rook Operator will not be upgraded to the current version.

Rook supports upgrading from one minor version to the next. Rook must first be upgraded from a 0.8 to a 0.9 release before upgrading to a 1.0 release.

Upgrading from release 0.8 to 0.9

Manual steps for upgrading from a 0.8 release to a 0.9 release can be followed using this guide with some amendments below.

NOTE: This guide was created as of release 0.9.3.

Amendments (v0.9)

  1. The 0.9.3 release can be downloaded with the link https://github.com/rook/rook/archive/v0.9.3.tar.gz.
  2. In the “Upgrade Process” 2. Update modifed/added resources section there are no pod security policies enabled.
  3. In the “Upgrade Process” 8. Update optional components section there are no ancillary components to be updated.
  4. The Ceph Daemon Upgrades section can be skipped as we will upgrade to Nautilus directly following the upgrade from release 0.9 to 1.0.

Upgrading from release 0.9 to 1.0

Manual steps for upgrading from a 0.9 release to a 1.0 release can be followed using this guide with some amendments below.

NOTE: This guide was created as of release 1.0.2.

Amendments (v1.0)

  1. The 1.0.2 release can be downloaded with the link https://github.com/rook/rook/archive/v1.0.2.tar.gz.
  2. In “Upgrade Process” 4. Wait for the upgrade to complete the tools pod will not get the rook-version label.
  3. In “Upgrade Process” 6. Update the Mon Ports you must follow steps 1-5 for each mon waiting the full 5+ minutes for each mon failover before moving on to the next. The mons will follow the pattern rook-ceph-mon0 rather than rook-ceph-mon-a as stated in the guide.
  4. The Ceph Version Upgrades section must be completed. Replicated recommends the Ceph version NEW_CEPH_IMAGE='ceph/ceph:v14.2.0-20190410'.

Ceph Dashboard

In order to get the new Ceph dashboard running with Rook 1.0 the following steps must be taken.

  1. Edit the rook-ceph CephCluster to enable the Ceph dashboard.

    1. Edit the rook-ceph CephCluster:

      kubectl -n $ROOK_NAMESPACE edit CephCluster rook-ceph
      
    2. Add the following to the spec:

        dashboard:
          enabled: true
          urlPrefix: /ceph
          port: 7000
          ssl: false
      
  2. Set the CEPH_DASHBOARD_USER and CEPH_DASHBOARD_PASSWORD environment variables in the replicated-ui container of the replicated deployment.

    1. To obtain the CEPH_DASHBOARD_PASSWORD run the following:

      kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o jsonpath="{['data']['password']}" | base64 --decode
      
    2. Edit the replicated deployment

      kubectl edit deploy replicated
      
    3. Add the following to the replicated-ui container env.

              - name: CEPH_DASHBOARD_USER
                value: admin
              - name: CEPH_DASHBOARD_PASSWORD
                value: "<the password>"