Introducing KubeStash v2024.8.30

We are very excited to announce the release of KubeStash v2024.8.30 , packed with new features and important bug fixes. You can check out the full changelog HERE .

In this post, we’ll highlight the key updates for both the v2024.8.14 and v2024.8.30 releases. Since the blog post for our v2024.8.14 release has been delayed, we will be combining the updates for both the releases into a single blog post. This will allow us to cover all the key updates and improvements in one comprehensive overview.

New Features

Here, we are going to highlight the new features that have been introduced in v2024.8.14 release.

KubeDB Managed MSSQLServer Database Backup & Restore

We’ve introduced functionality to backup and restore KubeDB managed MSSQLServer database.

Here is an example of BackupConfiguration that takes backup of a MSSQLServer:

apiVersion: core.kubestash.com/v1alpha1
kind: BackupConfiguration
metadata:
  name: mssql-backup
  namespace: demo
spec:
  target:
    apiGroup: kubedb.com
    kind: MSSQLServer
    name: mssqlserver-ag
    namespace: demo
  backends:
  - name: gcs-backend
    storageRef:
      name: gcs-storage
      namespace: demo
    retentionPolicy:
      name: demo-retention
      namespace: demo
  sessions:
  - name: frequent-backup
    sessionHistoryLimit: 1
    scheduler:
      schedule: "*/5 * * * *"
      successfulJobsHistoryLimit: 1
      failedJobsHistoryLimit: 1
      jobTemplate:
        backoffLimit: 1
    repositories:
    - name: gcs-mssql-repo
      backend: gcs-backend
      directory: /mssql
      encryptionSecret:
        name: encrypt-secret
        namespace: demo
    addon:
      name: mssqlserver-addon
      jobTemplate:
        spec:
          securityContext:
            runAsUser: 0
      tasks:
      - name: logical-backup
        params:
          databases: agdb1, agdb2

In the spec.sessions[*].addon.tasks[*].params section, you can specify the databases parameter. This parameter should contain a comma-separated list of the database names you want to backup.

Note: To run the backup job, you must use root user privilege because WAL-G, the tool we use for backups, requires this permission to function properly.

Here is the example of RestoreSession that restores the MSSQLServer:

apiVersion: core.kubestash.com/v1alpha1
kind: RestoreSession
metadata:
  name: mssql-restore
  namespace: demo
spec:
  target:
    apiGroup: kubedb.com
    kind: MSSQLServer
    name: restored-mssqlserver-ag
    namespace: demo
  dataSource:
    snapshot: latest
    repository: gcs-mssql-repo
  addon:
    name: mssqlserver-addon
    jobTemplate:
      spec:
        securityContext:
          runAsUser: 0
    tasks:
    - name: logical-backup-restore
      params:
        databases: agdb1

In the spec.addon.tasks[*].params section, you can specify the databases parameter. This parameter should contain a comma-separated list of the database names you want to restore.

Note: To run the restore job, you must use root user privilege because WAL-G, the tool we use for restore, requires this permission to function properly.

KubeDB Managed MSSQLServer Manifest Backup & Restore

KubeStash now supports manifest backup and restore for KubeDB managed MSSQLServer .

Here is an example of a BackupConfiguration for MSSQLServer manifest backup:

apiVersion: core.kubestash.com/v1alpha1
kind: BackupConfiguration
metadata:
  name: mssql-manifest-backup
  namespace: demo
spec:
  target:
    apiGroup: kubedb.com
    kind: MSSQLServer
    namespace: demo
    name: mssqlserver-ag
  backends:
  - name: gcs-backend
    storageRef:
      name: gcs-storage
      namespace: demo
    retentionPolicy:
      name: demo-retention
      namespace: demo
  sessions:
  - name: frequent-backup
    sessionHistoryLimit: 1
    scheduler:
      schedule: "*/2 * * * *"
      successfulJobsHistoryLimit: 1
      failedJobsHistoryLimit: 1
      jobTemplate:
        backoffLimit: 1
    repositories:
    - name: gcs-mssql-manifest-repo
      backend: gcs-backend
      directory: /mssql-manifest
      encryptionSecret:
        name: encrypt-secret
        namespace: demo
    addon:
      name: mssqlserver-addon
      tasks:
      - name: manifest-backup

Here’s an example of a RestoreSession that restores the manifest of MSSQLServer:

apiVersion: core.kubestash.com/v1alpha1
kind: RestoreSession
metadata:
  name: sample-restoresession
  namespace: demo
spec:
  manifestOptions:
    restoreNamespace: demo
    msSQLServer:
      db: true
      dbName: new-mssqlserver
      authSecret: true
      authSecretName: new-authsecret-mssqlserver
      internalAuthIssuerRef:
        apiGroup: cert-manager.io
        kind: Issuer
        name: mssqlserver-issuer
      tlsIssuerRef:
        apiGroup: "cert-manager.io"
        kind: Issuer
        name: mssqlserver-issuer
  dataSource:
    snapshot: latest
    repository: gcs-mssql-manifest-repo
    encryptionSecret:
      name: encrypt-secret
      namespace: demo
  addon:
    name: mssqlserver-addon
    tasks:
    - name: manifest-restore

Here,

  • spec.manifestOptions.msSQLServer.internalAuthIssuerRef refers to an issuer that must be created before applying the RestoreSession for an AvailabilityGroup database. This issuer is used by the restored MSSQLServer instance to authenticate internal communications.

  • spec.manifestOptions.msSQLServer.tlsIssuerRef refers to an issuer that must be created before applying RestoreSession. The restored MSSQLServer instance will use this issuer to configure TLS for secure communication.

Improvements

In the v2024.8.30 release, we’ve added support to trigger an instant backup as soon as the BackupConfiguration is ready. This ensures that a backup is created immediately upon the BackupConfiguration’s creation, without having to wait for the next scheduled CronJob.

What Next?

Please try the latest release and give us your valuable feedback.

  • If you want to install KubeStash in a clean cluster, please follow the installation instruction from HERE .
  • If you want to upgrade KubeStash from a previous version, please follow the upgrade instruction from HERE .

Support

To speak with us, please leave a message on our website .

To receive product announcements, follow us on Twitter/X .


TAGS

Get Up and Running Quickly

Deploy, manage, upgrade Kubernetes on any cloud and automate deployment, scaling, and management of containerized applications.