Skip to main content
Astra Control Center
A newer release of this product is available.

Define a custom app example

Contributors netapp-rlithman

Creating a custom app enables you to group elements of your Kubernetes cluster into a single app. This collection of Kubernetes resources is based on a namespace and a label.

A custom app gives you more granular control over what to include in an Astra Control operation, including:

  • Clone

  • Snapshot

  • Backup

  • Protection Policy

In most cases you will want to use Astra Control's features on your entire app. However, you can also create a custom app to use these features by the labels you assign to Kubernetes objects in a namespace.

Note Custom apps can be created only within a specified namespace on a single cluster. Astra Control does not support the ability for a custom app to span multiple namespaces or clusters.

A label is a key/value pair you can assign to Kubernetes objects for identification. Labels make it easier to sort, organize, and find your Kubernetes objects. To learn more about Kubernetes labels, see the official Kubernetes documentation.

Warning Overlapping policies for the same resource under different names can cause data conflicts. If you create a custom app for a resource, be sure it's not being cloned or backed up under any other policies.
What you'll need
  • A cluster added to Astra Control

Steps
  1. From the Apps page, select + Define.

    The Custom App window shows which resources will be included or excluded from your custom app. This helps you make sure you are choosing the correct criteria for defining your custom app.

  2. In the pop-up window, enter the app name, choose the cluster in the Cluster drop-down, and choose the app's namespace from the Namespace drop-down.

  3. From the drop-down Label list, select a label for the apps and namespace.

  4. After defining the custom app for the one deployment, repeat the process for other deployments, as needed.

When you finish creating the two custom apps, you can treat these resources as any other Astra Control application. They can clone them, create backups and snapshots, and create a custom Protection Policy for each group of resources based on the Kubernetes labels.

Example: Separate Protection Policy for different releases

In this example, the devops team is managing a canary release deployment. Their cluster has three pods running NginX. Two of the pods are dedicated to the stable release. The third pod is for the canary release.

The devops team's Kubernetes admin adds the label deployment=stable to the stable release pods. The team adds the label deployment=canary to the canary release pod.

The team's stable release includes a requirement for hourly snapshots and daily backups. The canary release is more ephemeral, so they want to create a less aggressive, short-term Protection Policy for anything labeled deployment=canary.

In order to avoid possible data conflicts, the admin will create two custom apps: one for the "canary" release, and one for the "stable" release. This keeps the backups, snapshots, and clone operations separate for the two groups of Kubernetes objects.