How to Migrate Built-In Blueprints to User-Managed Blueprints

KB ID: 4956
Product: Veeam Kasten for Kubernetes
Published: 2026-10-26
Last Modified: 2026-10-26
mailbox
Get weekly article updates
By subscribing, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.

Cheers for trusting us with the spot in your mailbox!

Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest

error icon

Oops! Something went wrong.

Please, try again later.

Purpose

Before Veeam Kasten for Kubernetes deprecates built-in blueprints, replace them with an equivalent user-managed Blueprint custom resource (CR).

Veeam Kasten for Kubernetes ships 3 built-in blueprints: K8ssandra, Crunchy PGO and RDS PostgreSQL. Kasten plans to deprecate these built-in blueprints in a future release. A user-managed blueprint gives you full visibility and control over the backup and restore logic. Veeam Kasten for Kubernetes hardcodes a built-in blueprint, and only Veeam Kasten for Kubernetes can inspect or modify it.

Solution

Prerequisites

  • Veeam Kasten for Kubernetes runs in the cluster that hosts the application.
  • You have kubectl access to the cluster, with permission to create Blueprint and BlueprintBinding CRs.
  • You know which built-in blueprint the application uses:
    • K8ssandra: the application includes a CassandraDatacenter CR.
    • Crunchy PGO: the application includes a PostgresCluster CR.
    • RDS PostgreSQL: a ConfigMap carries the kanister.kasten.io/rds: rds-postgres annotation.
  • You have permission to update the Veeam Kasten for Kubernetes Helm release, if the application uses K8ssandra or Crunchy PGO.

Procedure

  1. Open the Kanister blueprints repository page for the matching application:

    These pages always reflect the current, supported version of each blueprint. Refer to the repository directly, rather than a copy of its contents. This way, you always pick up the latest fixes.

  2. Download the blueprint YAML file from the repository page, and save it to your workstation.
  3. Apply the blueprint to the namespace where Veeam Kasten for Kubernetes runs (kasten-io by default):
kubectl apply -f <blueprint-file>.yaml --namespace kasten-io

Alternatively, open the Blueprints page in the Veeam Kasten for Kubernetes dashboard. Click Add Blueprint, paste the blueprint YAML and click Validate and Save.

  1. Bind the blueprint to the application.
    1. For K8ssandra or Crunchy PGO, create a Blueprint Binding that selects the CassandraDatacenter or PostgresCluster resource type. A Blueprint Binding covers every matching resource, including ones created later, so you do not need to annotate each instance. See the Blueprint Binding API reference for the full resource selector syntax.

      Alternatively, add the kanister.kasten.io/blueprint: <blueprint-name> annotation directly to a single CassandraDatacenter or PostgresCluster resource. In the Veeam Kasten for Kubernetes dashboard, do this from the Applications page. Select the resource, open its ellipsis menu and choose Configure Blueprints. Then select the blueprint from the Blueprint Annotation dropdown. See Managing Blueprint Resources for the full walkthrough.

    2. For RDS PostgreSQL, create a Blueprint Binding that selects ConfigMaps by resource type and a label or annotation you control. A Blueprint Binding matches every ConfigMap that carries your chosen label or annotation, in any namespace. You do not need to repeat the step for each namespace. Do not select on the kanister.kasten.io/rds: rds-postgres annotation itself. Step 5b removes that annotation, which would also stop the Blueprint Binding from matching.

      Alternatively, add the kanister.kasten.io/blueprint: <blueprint-name> annotation directly to each ConfigMap. Unlike a Blueprint Binding, this requires a separate step for every ConfigMap. In the Veeam Kasten for Kubernetes dashboard, do this from the Applications page. Select the ConfigMap, open its ellipsis menu and choose Configure Blueprints. Then select the blueprint from the Blueprint Annotation dropdown. See Managing Blueprint Resources for the full walkthrough.

  2. Disable the built-in blueprint.
    1. For K8ssandra or Crunchy PGO, set the Helm value kanister.managedDataServicesBlueprintsEnabled to false, and upgrade the Veeam Kasten for Kubernetes release. This value applies to every K8ssandra and Crunchy PGO application in the cluster. Before you change it, confirm that each application has a user-managed blueprint.

      Note: This setting stops Veeam Kasten for Kubernetes from using the built-in blueprint. It does not delete the built-in Blueprint CR that Veeam Kasten for Kubernetes already created. That CR is named k10-k8ssandra-bp-<version> or k10-pgo-bp-<version>, in the kasten-io namespace, and it is now unused. You can delete it manually once you confirm the new blueprint works.

    2. For RDS PostgreSQL, remove the kanister.kasten.io/rds: rds-postgres annotation from the ConfigMap. Veeam Kasten for Kubernetes uses this annotation to trigger the built-in blueprint, independently of any Blueprint Binding or kanister.kasten.io/blueprint annotation. The built-in blueprint stops running once you remove it. You do not need a Helm change.
  3. Run a manual backup to confirm Veeam Kasten for Kubernetes uses the new blueprint. In the dashboard, go to the Policies page and click Run Once on the application's policy. Alternatively, open the Policy View page and click the Run Once button there. See Manual Policy Runs for details.

Verification

Veeam Kasten for Kubernetes creates an ActionSet CR for each backup or restore run, and deletes it again once the run completes. Immediately after you start the manual backup, watch for it:

kubectl get actionsets.cr.kanister.io --namespace kasten-io --watch

While the ActionSet still exists, confirm it references your new blueprint, not the built-in one:

kubectl get actionset <actionset-name> --namespace kasten-io \
-o jsonpath='{.spec.actions[*].blueprint}'
  • Confirm the resulting restore point contains the artifacts that the new blueprint's backup action produces.
  • Before you rely on the new blueprint for production recovery, run a test restore from the new restore point. Use a non-production namespace where possible.

If this KB article did not resolve your issue or you need further assistance with Veeam software, please create a Veeam Support Case.

To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Spelling error in text

Thank you!

Thank you!

Your feedback has been received and will be reviewed.

Oops! Something went wrong.

Please, try again later.

You have selected too large block!

Please try select less.

KB Feedback/Suggestion

This form is only for KB Feedback/Suggestions, if you need help with the software open a support case

By submitting, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.
Verify your email to continue your product download
We've sent a verification code to:
  • Incorrect verification code. Please try again.
An email with a verification code was just sent to
Didn't receive the code? Click to resend in sec
Didn't receive the code? Click to resend
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

error icon

Oops! Something went wrong.

Please, try again later.