A newer version of Hazelcast Operator is available.

View latest

5.2 Release Notes

In this release, we introduced the Backup and Restore feature with support for PVC and hostPath. This feature uses Hazelcast Persistence under the hood.

New features

  • Back up data into PVC (via Hazelcast Persistence)

    The persistence feature needs to be enabled at Hazelcast CR:

    apiVersion: hazelcast.com/v1alpha1
    kind: Hazelcast
    metadata:
      name: hazelcast
    spec:
      ...
      licenseKeySecret: hazelcast-license-key
      persistence:
        baseDir: "/data/persistence/"
        clusterDataRecoveryPolicy: "FullRecoveryOnly"
        pvc:
          accessModes: ["ReadWriteOnce"]
          requestStorage: 20Gi

    You can take backup manually or automatically(scheduled):

    apiVersion: hazelcast.com/v1alpha1
    kind: HotBackup
    metadata:
      name: hot-backup
    spec:
      hazelcastResourceName: hazelcast
    apiVersion: hazelcast.com/v1alpha1
    kind: HotBackup
    metadata:
      name: hot-backup
    spec:
      hazelcastResourceName: hazelcast
      schedule: "* 0-23/6 * * *"
  • Restore data from PVC (via Hazelcast Persistence)

    apiVersion: hazelcast.com/v1alpha1
    kind: Hazelcast
    metadata:
      name: hazelcast
    spec:
      ...
      licenseKeySecret: hazelcast-license-key
      persistence:
        baseDir: "/data/persistence/"
        clusterDataRecoveryPolicy: "FullRecoveryOnly"
        pvc:
          accessModes: ["ReadWriteOnce"]
          requestStorage: 20Gi
  • Backup and Restore Hazelcast data to/from hostPath

    apiVersion: hazelcast.com/v1alpha1
    kind: Hazelcast
    metadata:
      name: hazelcast
    spec:
      ...
      licenseKeySecret: hazelcast-license-key
      persistence:
        ...
        hostPath: "/tmp/hazelcast"
      scheduling:
        topologySpreadConstraints:
          - maxSkew: 1
            topologyKey: kubernetes.io/hostname
            whenUnsatisfiable: DoNotSchedule
            labelSelector:
              matchLabels:
                app.kubernetes.io/instance: hazelcast
  • Auto Force Start support. The Platform Operator to detect failed Hazelcast members and automatically trigger a force-start

    apiVersion: hazelcast.com/v1alpha1
    kind: Hazelcast
    metadata:
      name: hazelcast
    spec:
      ...
      licenseKeySecret: hazelcast-license-key
      persistence:
        baseDir: "/data/persistence/"
        clusterDataRecoveryPolicy: "FullRecoveryOnly"
        autoForceStart: true
  • ImagePullSecrets configuration for Hazelcast and Management Center CRs

  • Management Center can be started with existing PV claim:

    apiVersion: hazelcast.com/v1alpha1
    kind: ManagementCenter
    metadata:
      name: managementcenter
    spec:
      ...
      persistence:
        enabled: true
        existingVolumeClaimName: existing-pvc
  • Pod scheduling support for Management Center CR.

  • topologySpreadConstraints scheduling support for Hazelcast and Management Center CRs.

Changes

  • Upgrade Hazelcast and MC versions to 5.1.x (https://github.com/hazelcast/hazelcast-platform-operator/pull/148)

  • Improve Operator Logging and add Ginkgo v2 CLI for better test verbosity (https://github.com/hazelcast/hazelcast-platform-operator/pull/151)

  • Detailed member statuses (https://github.com/hazelcast/hazelcast-platform-operator/pull/138) Sample failed member:

    Status:
      Hazelcast Cluster Status:
        Ready Members:  0/3
      Members:
        Connected:  false
        Ip:         10.164.2.23
        Message:    back-off 10s restarting failed container=hazelcast pod=hazelcast-0_default(07c1a692-1be9-408d-b245-bb93cf01af66)
        Pod Name:   hazelcast-0
        Reason:     CrashLoopBackOff
      Message:      multiple (1) errors: pod hazelcast-0 in namespace default failed for back-off 10s restarting failed container=hazelcast pod=hazelcast-0_default(07c1a692-1be9-408d-b245-bb93cf01af66):

    Successful one:

    Status:
      Hazelcast Cluster Status:
        Ready Members:  3/3
      Members:
        Connected:  true
        Ip:         10.164.2.27
        UID:        85eeb6f3-00a3-4bed-aa4c-30959d6bda67
        Version:    5.0.2
        Connected:  true
        Ip:         10.164.1.12
        UID:        e546754e-209d-4ac5-9fd0-119a6d8bf371
        Version:    5.0.2
        Connected:  true
        Ip:         10.164.0.14
        UID:        5a7b1a1f-4a1c-47ff-8151-24db0e5db51e
        Version:    5.0.2
      Phase:        Running
  • Show external IP of Hazelcast members and Management Center URL at CR statuses:

    $ kubectl get hazelcast
    NAME               STATUS    MEMBERS   EXTERNAL-ADDRESSES
    hazelcast  Running   3/3         <EXTERNAL_IP>:5701

Fixed Issues