Skip to content

Upgrade existing Ceph Controller to Pelagia#

In the new version of k0rdent virtualization, k0rdent is moving to use the upstream Pelagia Ceph controller. This change allows us to leverage the latest features and improvements from the Pelagia Ceph community while maintaining enterprise-grade stability and support.

If the cluster already has Ceph installed using an older controller, follow the steps below to upgrade to the Pelagia controller without downtime.

Supported Versions#

The Pelagia controller supports Ceph version 18.2 (Reef) and 19.2 (Squid).

Prerequisites#

Before upgrading to the Pelagia controller, ensure that:

  • Your current Ceph deployment is healthy and all PVCs are bound
  • You have performed a backup of all critical data

Upgrade Steps#

To upgrade the Ceph Controller to the Pelagia version on k0rdent, follow these steps:

  1. Create a new ServiceTemplate with migration chart:

    apiVersion: k0rdent.mirantis.com/v1beta1
    kind: ServiceTemplate
    metadata:
      name: ceph-1-2-2
      namespace: kcm-system
    spec:
      helm:
        chartSpec:
          chart: ceph-operator
          interval: 10m0s
          reconcileStrategy: ChartVersion
          sourceRef:
            kind: HelmRepository
            name: ceph-templates
            version: 1.2.2
    
    2. After ceph-1-2-2 ServiceTemplate becomes valid, edit the ClusterDeployment to update to migration chart:

    ...
    spec:
      serviceSpec:
        services:
        ...
        - name: ceph
          namespace: ceph-lcm-mirantis
          template: ceph-1-2-2
          values: |
            global:
              namespace: ""
            pelagia-ceph:
              rookConfig:
                csiKubeletPath: /var/lib/k0s/kubelet
            controllers:
              cephMaintenance:
                enabled: false
            installNamespaces: false
            <existing values>
    
  2. Wait for the migration to complete. Monitor the logs of the Ceph Controller pod in the ceph-lcm-mirantis namespace to track the progress of the migration:

    kubectl -n ceph-lcm-mirantis logs -l app=ceph-controller -f
    

  3. After migration is complete, Ceph cluster will be running with the Pelagia controller. You can verify the CephDeployment status:

    kubectl get cephdeployment -n ceph-lcm-mirantis