|
| 1 | +--- |
| 2 | +title: Introducing KubeStash v2025.4.30 |
| 3 | +date: "2025-04-30" |
| 4 | +weight: 10 |
| 5 | +authors: |
| 6 | +- Md Anisur Rahman |
| 7 | +tags: |
| 8 | +- backup |
| 9 | +- backup-verification |
| 10 | +- disaster-recovery |
| 11 | +- kubernetes |
| 12 | +- kubestash |
| 13 | +- restore |
| 14 | +--- |
| 15 | + |
| 16 | +We are pleased to announce the release of [KubeStash v2025.4.30](https://kubestash.com/docs/v2025.4.30/setup/), packed with new features and important bug fixes. You can check out the full changelog [HERE](https://github.com/kubestash/CHANGELOG/blob/master/releases/v2025.4.30/README.md). |
| 17 | + |
| 18 | +### New Features |
| 19 | + |
| 20 | +Here, we are going to highlight the new features that have been introduced in this release. |
| 21 | + |
| 22 | +#### KubeDB managed Cassandra Backup/Restore |
| 23 | + |
| 24 | +KubeDB now supports backup and restore for Cassandra databases using KubeStash and the Medusa plugin. This enables reliable data protection with cloud storage backends (e.g., S3, GCS). |
| 25 | + |
| 26 | +**Backup and Restore Workflow** |
| 27 | + |
| 28 | +- **BackupStorage**: Specifies the cloud storage backend. |
| 29 | +- **RetentionPolicy**: Defines how long backup data is retained. |
| 30 | +- **Secrets**: Stores backend access credentials. |
| 31 | +- **BackupConfiguration**: Configures the target database, backend, and addon. |
| 32 | +- **RestoreSession**: Restores data from a specified snapshot. |
| 33 | + |
| 34 | +In below given the example of a `BackupConfiguration` for a `Cassandra` database |
| 35 | + |
| 36 | +```yaml |
| 37 | +apiVersion: core.kubestash.com/v1alpha1 |
| 38 | +kind: BackupConfiguration |
| 39 | +metadata: |
| 40 | + name: cass-backup |
| 41 | + namespace: default |
| 42 | +spec: |
| 43 | + target: |
| 44 | + apiGroup: kubedb.com |
| 45 | + kind: Cassandra |
| 46 | + namespace: default |
| 47 | + name: cass-sample |
| 48 | +--- |
| 49 | + addon: |
| 50 | + name: cassandra-addon |
| 51 | + tasks: |
| 52 | + - name: logical-backup |
| 53 | + jobTemplate: |
| 54 | + spec: |
| 55 | + serviceAccountName: cluster-resource-reader |
| 56 | +``` |
| 57 | +
|
| 58 | +And for `Cassandra` database below is the example of a `RestoreSession`: |
| 59 | + |
| 60 | +```yaml |
| 61 | +apiVersion: core.kubestash.com/v1alpha1 |
| 62 | +kind: RestoreSession |
| 63 | +metadata: |
| 64 | + name: restore-cas |
| 65 | + namespace: default |
| 66 | +spec: |
| 67 | + target: |
| 68 | + apiGroup: kubedb.com |
| 69 | + kind: Cassandra |
| 70 | + namespace: default |
| 71 | + name: cass-sample |
| 72 | +--- |
| 73 | + addon: |
| 74 | + name: cassandra-addon |
| 75 | + tasks: |
| 76 | + - name: logical-backup-restore |
| 77 | + jobTemplate: |
| 78 | + spec: |
| 79 | + serviceAccountName: cluster-resource-reader |
| 80 | +``` |
| 81 | + |
| 82 | +### Introduce Workload Manifest Backup/Restore along with RBAC resources |
| 83 | + |
| 84 | +KubeStash now supports backing up and restoring Kubernetes workload manifests, including associated RBAC resources such as Role, RoleBinding, ClusterRole, and ClusterRoleBinding. This enhancement enables users to capture not just application data but also the complete configuration of workloads for comprehensive disaster recovery. |
| 85 | + |
| 86 | +Here is an example of `BackupConfiguration`: |
| 87 | + |
| 88 | +```yaml |
| 89 | +apiVersion: core.kubestash.com/v1alpha1 |
| 90 | +kind: BackupConfiguration |
| 91 | +--- |
| 92 | +sessions: |
| 93 | + - name: workload-backup |
| 94 | + addon: |
| 95 | + name: workload-addon |
| 96 | + tasks: |
| 97 | + - name: manifest-backup |
| 98 | + params: |
| 99 | + includeRBACResources: "true" |
| 100 | + jobTemplate: |
| 101 | + spec: |
| 102 | + serviceAccountName: cluster-resource-reader |
| 103 | +``` |
| 104 | +Here, |
| 105 | +- Set `includeRBACResources: "true"` to include `RBAC` resources in the backup. |
| 106 | +- A custom `serviceAccountName` with appropriate cluster-level RBAC permissions is required for accessing these resources. |
| 107 | + |
| 108 | + |
| 109 | +Here is an example of `RestoreSession`: |
| 110 | + |
| 111 | +```yaml |
| 112 | +apiVersion: core.kubestash.com/v1alpha1 |
| 113 | +kind: RestoreSession |
| 114 | +--- |
| 115 | +addon: |
| 116 | + name: workload-addon |
| 117 | + tasks: |
| 118 | + - name: manifest-restore |
| 119 | + params: |
| 120 | + includeRBACResources: "true" |
| 121 | + overrideResources: "true" |
| 122 | + jobTemplate: |
| 123 | + spec: |
| 124 | + serviceAccountName: cluster-resource-reader |
| 125 | +``` |
| 126 | +Here, |
| 127 | +- `includeRBACResources: "true"` restores the `RBAC` resources associated with the workloads. |
| 128 | +- `overrideResources: "true"` ensures existing resources in the cluster are replaced with the restored versions. |
| 129 | +
|
| 130 | +
|
| 131 | +> By default, both `includeRBACResources` and `overrideResources` are set to false. Enable them explicitly if needed for your use case. |
| 132 | + |
| 133 | +### Improvements & Bug Fixes |
| 134 | + |
| 135 | +#### Improved Pod Discovery for Deployment Backup/Restore |
| 136 | +Previously, the system assumed that each Deployment would have only one associated ReplicaSet, which is not always true. We've updated the logic to identify the most recent ReplicaSet to accurately locate the active Pod during backup and restore operations. |
| 137 | + |
| 138 | +#### Fixed Workload-Only Manifest Backup/Restore |
| 139 | +Resolved an issue where backups and restores targeting only workload manifests were not functioning correctly. This fix ensures reliable handling of workload-only manifest operations. |
| 140 | + |
| 141 | +## What Next? |
| 142 | +Please try the latest release and give us your valuable feedback. |
| 143 | + |
| 144 | +- If you want to install KubeStash in a clean cluster, please follow the installation instruction from [HERE](https://kubestash.com/docs/v2025.2.10/setup/install/kubestash/). |
| 145 | +- If you want to upgrade KubeStash from a previous version, please follow the upgrade instruction from [HERE](https://kubestash.com/docs/v2025.2.10/setup/upgrade/). |
| 146 | + |
| 147 | +### Support |
| 148 | + |
| 149 | +To speak with us, please leave a message on [our website](https://appscode.com/contact/). |
| 150 | + |
0 commit comments