Upgrading DataCore Puls8

Explore this Page

Overview

DataCore Puls8 supports in-place upgrades to deliver new features, performance enhancements, and stability improvements while preserving existing storage resources and configurations.

This document describes how to upgrade DataCore Puls8 from version 4.3 to version 4.4. It includes prerequisites, pre-upgrade validation, the upgrade procedure, post-upgrade checks, and rollback guidelines.

Upgrading to DataCore Puls8 4.4 provides access to the latest features, enhancements, and stability improvements.

Downgrading DataCore Puls8 to a previous version is not supported.

Upgrade Path Summary

  • Supported source version: DataCore Puls8 4.3
  • Target version: DataCore Puls8 4.4
  • Downgrade: Not supported
  • Expected downtime: Replicated PV Mayastor single-replica volumes may experience downtime during the upgrade. This behavior is expected. Downtime impact can be mitigated if applications are configured to run in high-availability mode, so that the application may retain business continuity despite losing availability on single instances of single-replica volume. For high availability, it is recommended to use multi-replica volumes.

Requirements

Cluster Requirements

  • A healthy Kubernetes cluster running a supported version.
  • DataCore Puls8 4.3 installed using the documented Helm installation process.
  • Adequate node resources to support rolling upgrades.

Access Requirements

  • Kubernetes cluster administrator privileges.
  • Ability to pull DataCore Puls8 4.4 container images.
  • Permission to install and execute the kubectl puls8 binary. You can download the kubectl puls8 plugin from the DataCore Downloads portal.

Network Requirements

No firewall or network policy restrictions blocking DataCore Puls8 control-plane components or image registries.

Pre-Upgrade Validation

  1. Validate node health.
    Copy
    Verify that all Kubernetes Nodes are in Ready State
    kubectl get nodes
  2. Validate DataCore Puls8 component health.
    Copy
    Confirm that Puls8 Pods are Running and Stable
    kubectl get pods -n <namespace>
  3. Check DiskPool status.
    Copy
    Ensure all DiskPools are Healthy and Online Before Upgrading
    kubectl get diskpools -n <namespace>
  4. Verify Persistent Volume Claim (PVC) and volume status.
    Copy
    Confirm that PVCs and Volumes are Bound and Stable
    kubectl puls8 mayastor get volumes -n <namespace>

Backup Recommendations

Although DataCore Puls8 upgrades do not alter user data or storage objects, it is recommended to retain backups of key configuration details:

Copy
Backup Existing Helm Values
helm get values <puls8-release-name> -n <namespace> > puls8-4.3-values-backup.yaml

You may also backup:

  • StorageClass manifests
  • DiskPool manifests
  • Application manifests referencing DataCore Puls8 volumes

Upgrade Procedure

  1. Before starting the upgrade, ensure that the installed kubectl puls8 plugin version matches the target Puls8 release version.
    Copy
    Verify Installed kubectl puls8 Plugin Version
    kubectl puls8 -V
  2. Download the Latest kubectl puls8 Binary/Puls8 Command Line Interface (CLI) plugin from the official GitHub Releases page.
  3. Start the upgrade.
    Copy
    Begin the Upgrade from Puls8 4.3 to Puls8 4.4
    kubectl puls8 upgrade -n <namespace>
  4. Monitor upgrade progress.
    Copy
    Monitor the Upgrade Process Until it Completes
    kubectl puls8 upgrade status -n <namespace>
  5. Delete upgrade records. (Optional)
    Copy
    Remove Upgrade Resources After Successful Completion
    kubectl puls8 upgrade delete -n <namespace>

Post-Upgrade Validation

  1. Verify component status.
    Copy
    Ensure that all Puls8 4.4 Pods are Running as Expected
    kubectl get pods -n <namespace>
  2. Verify DiskPools.
    Copy
    Confirm DiskPools Remain Healthy After the Upgrade
    kubectl get diskpools -n <namespace>
  3. Verify volumes and snapshots.
    Copy
    Confirm that Volumes, Snapshots, and PVCs have not been Impacted
    kubectl get pvc
    kubectl puls8 mayastor get volumes -n <namespace>
    kubectl get volumesnapshots
  4. Confirm upgraded version.
    Copy
    Verify that the Cluster Reports Puls8 version 4.4
    helm get metadata <puls8-release-name> -n <namespace>

Troubleshooting

Common upgrade issues include:

  • Namespace discrepancies when running upgrade commands
  • If the upgrade fails due to namespace mismatches, ensure that all kubectl puls8 commands explicitly specify the namespace where DataCore Puls8 is installed.

    Use the -n <namespace> flag consistently with all upgrade commands, for example:

    Copy
    Example
    kubectl puls8 upgrade -n <namespace>

    Replace <namespace> with the namespace in which DataCore Puls8 is deployed.

  • Image pull errors caused by registry access restrictions
  • If the upgrade fails due to container image pull errors, the cluster may not have access to the default container registry or repository. In such cases, explicitly specify the container registry and repository namespace when running the upgrade command using the following options:

    Copy
    Override Container Registry and Repository Namespace for the Upgrade
    --registry <REGISTRY>
        Specify the container registry for the upgrade-job image
    --repo-namespace <REPO_NAMESPACE>
        Specify the container namespace for the upgrade-job image
        (default: datacoresoftware)

View logs for debugging:

Copy
Inspect Puls8 Component Logs to Diagnose Issues
kubectl logs -n <namespace> job/puls8-upgrade-v4-4-0 -f

Learn More