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 |
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
kubectlaccess to the cluster, with permission to createBlueprintandBlueprintBindingCRs. - You know which built-in blueprint the application uses:
- K8ssandra: the application includes a
CassandraDatacenterCR. - Crunchy PGO: the application includes a
PostgresClusterCR. - RDS PostgreSQL: a ConfigMap carries the
kanister.kasten.io/rds: rds-postgresannotation.
- K8ssandra: the application includes a
- You have permission to update the Veeam Kasten for Kubernetes Helm release, if the application uses K8ssandra or Crunchy PGO.
Procedure
- 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.
- Download the blueprint YAML file from the repository page, and save it to your workstation.
- Apply the blueprint to the namespace where Veeam Kasten for Kubernetes runs (
kasten-ioby default):
Alternatively, open the Blueprints page in the Veeam Kasten for Kubernetes dashboard. Click Add Blueprint, paste the blueprint YAML and click Validate and Save.
- Bind the blueprint to the application.
-
For K8ssandra or Crunchy PGO, create a Blueprint Binding that selects the
CassandraDatacenterorPostgresClusterresource 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 singleCassandraDatacenterorPostgresClusterresource. 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. -
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-postgresannotation 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.
-
- Disable the built-in blueprint.
-
For K8ssandra or Crunchy PGO, set the Helm value
kanister.managedDataServicesBlueprintsEnabledtofalse, 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>ork10-pgo-bp-<version>, in thekasten-ionamespace, and it is now unused. You can delete it manually once you confirm the new blueprint works. - For RDS PostgreSQL, remove the
kanister.kasten.io/rds: rds-postgresannotation from the ConfigMap. Veeam Kasten for Kubernetes uses this annotation to trigger the built-in blueprint, independently of any Blueprint Binding orkanister.kasten.io/blueprintannotation. The built-in blueprint stops running once you remove it. You do not need a Helm change.
-
- 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:
While the ActionSet still exists, confirm it references your new blueprint, not the built-in one:
- Confirm the resulting restore point contains the artifacts that the new blueprint's
backupaction 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.
More Information
- Reserved Action Names and Timeouts
- Blueprint YAML Schema and Template Variables
- Blueprints (dashboard usage guide)
- Blueprint Bindings (usage guide)
- Blueprint Bindings (API reference)
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.