Workload Policies

Trilio’s tenant driven backup service gives tenants control over backup policies. However, sometimes it may be too much control to tenants and the cloud admins may want to limit what policies are allowed by tenants. For example, a tenant may become overzealous and only uses full backups every 1 hr interval. If every tenant were to pursue this backup policy, it puts a severe strain on cloud infrastructure. Instead, if cloud admin can define predefined backup policies and each tenant is only limited to those policies then cloud administrators can exert better control over backup service.

Workload policy is similar to nova flavor where a tenant cannot create arbitrary instances. Instead, each tenant is only allowed to use the nova flavors published by the admin.

List and showing available Workload policies

Using Horizon

To see all available Workload policies in Horizon follow these steps:

  1. Login to Horizon using admin user.

  2. Click on Admin Tab.

  3. Navigate to Backups-Admin

  4. Navigate to Trilio

  5. Navigate to Policy

The following information are shown in the policy tab for each available policy:

  • Creation time

  • Projects assigned

  • Name

  • Scheduling & Retention policy

  • Description

Using CLI

workloadmgr policy-list
workloadmgr policy-show <policy_id>
  • <policy_id>➡️ Id of the policy to show

Create a policy

Using Horizon

To create a policy in Horizon follow these steps:

  1. Login to Horizon using admin user.

  2. Click on Admin Tab.

  3. Navigate to Backups-Admin

  4. Navigate to Trilio

  5. Navigate to Policy

  6. Click new policy

  7. Provide a policy name on the Details tab

  8. Provide a description on the Details tab

  9. Provide the retention and scheduler details in the Policy tab

  10. Click create

Using CLI

workloadmgr policy-create --policy-fields <key=key-name>
                        [--hourly interval=<n>,retention=<count>,snapshot_type=<incremental|full>]
                        [--daily backup_time=<time>,retention=<count>,snapshot_type=<incremental|full>]
                        [--weekly backup_day=<days>,retention=<count>,snapshot_type=<incremental|full>]
                        [--monthly month_backup_day=<date>,retention=<count>,snapshot_type=<incremental|full>]
                        [--yearly backup_month=<month>,retention=<count>,snapshot_type=<incremental|full>]
                        [--manual retention=<snapshots count>,retention_days_to_keep=<num of days>]
                        [--display-description <display_description>]
                        [--metadata <key=key-name>]
                        <display_name>
  • --policy-fields <key=key-name> ➡️ Specify following key value pairs for policy fields. 'start_time' : '10:30 PM' --policy-fields start_time='10:30 PM'

  • --hourly ➡️ Specify following key value pairs for hourly jobschedule interval= where n is no of hours within list (1,2,3,4,6,8,12,24),retention=,snapshot_type=<full|incremental> For example --hourly interval='4',retention='1',snapshot_type='incremental' If you don't specify this option, following default value 'interval' : '1' 'retention' : '30' 'snapshot_type' : 'incremental'

  • --daily ➡️ Specify following key value pairs for daily jobschedule backup_time='1:30 12:30 00:30',retention=,snapshot_type=<full|incremental> For example --daily backup_time='01:00 02:00 11:00',retention='1',snapshot_type='incremental'

  • --weekly ➡️ Specify following key value pairs for weekly jobschedule backup_day=[mon,tue,wed,thu,fri,sat,sun],retention=,snapshot_type=<full|incremental> For example --weekly backup_day='sun mon tue',retention='1',snapshot_type='incremental'

  • --monthly ➡️ Specify following key value pairs for monthly jobschedule month_backup_day=<1-31|last>, 'last': last day of the month,retention=,snapshot_type=<full|incremental> For example --monthly month_backup_day='1 2 3',retention=1,snapshot_type='incremental'

  • --yearly ➡️ Specify following key value pairs for yearly jobschedule backup_month=[jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec],retention=,snapshot_type=<full|incremental> For example --yearly backup_month='jan feb',retention='1',snapshot_type='full'

  • --manual ➡️ Specify following key value pairs for manual jobschedule retention=,retention_days_to_keep= For example --manual retention=30,retention_days_to_keep=30

  • --display-description <display_description> ➡️ Optional policy description. (Default=No description)

  • --metadata <key=keyname> ➡️ Specify a key value pairs to include in the workload_type metadata Specify option multiple times to include multiple keys. key=value

  • <display_name> ➡️ the name the policy will get

Edit a policy

Using Horizon

To edit a policy in Horizon follow these steps:

  1. Login to Horizon using admin user.

  2. Click on Admin Tab.

  3. Navigate to Backups-Admin

  4. Navigate to Trilio

  5. Navigate to Policy

  6. identify the policy to edit

  7. click on "Edit policy" at the end of the line of the chosen policy

  8. edit the policy as desired - all values can be changed

  9. Click "Update"

Using CLI

workloadmgr policy-update [--display-name <display-name>]
                          [--display-description <display-description>]
                          [--policy-fields <key=key-name>]
                          [--hourly interval=<n>,retention=<count>,snapshot_type=<incremental|full>]
                          [--daily backup_time=<time>,retention=<count>,snapshot_type=<incremental|full>]
                          [--weekly backup_day=<days>,retention=<count>,snapshot_type=<incremental|full>]
                          [--monthly month_backup_day=<days>,retention=<count>,snapshot_type=<incremental|full>]
                          [--yearly backup_month=<months>,retention=<count>,snapshot_type=<incremental|full>]
                          [--manual retention=<snapshots count>,retention_days_to_keep=<num of days>] 
                          [--metadata <key=key-name>]
                          <policy_id>
  • --display-name <display-name>➡️Name of the policy

  • --display-description <display_description> ➡️ Optional policy description. (Default=No description)

  • --policy-fields <key=key-name> ➡️ Specify following key value pairs for policy fields 'start_time' : '10:30 PM' --policy-fields start_time='10:30 PM'

  • --hourly ➡️ Specify following key value pairs for hourly jobschedule interval= where n is no of hours within list (1,2,3,4,6,8,12,24),retention=,snapshot_type=<full|incremental> For example --hourly interval='4',retention='1',snapshot_type='incremental' If you don't specify this option, following default value 'interval' : '1' 'retention' : '30' 'snapshot_type' : 'incremental'

  • --daily ➡️ Specify following key value pairs for daily jobschedule backup_time='1:30 12:30 00:30',retention=,snapshot_type=<full|incremental> For example --daily backup_time='01:00 02:00 11:00',retention='1',snapshot_type='incremental'

  • --weekly ➡️ Specify following key value pairs for weekly jobschedule backup_day=[mon,tue,wed,thu,fri,sat,sun],retention=,snapshot_type=<full|incremental> For example --weekly backup_day='sun mon tue',retention='1',snapshot_type='incremental'

  • --monthly ➡️ Specify following key value pairs for monthly jobschedule month_backup_day=<1-31|last>, 'last': last day of the month,retention=,snapshot_type=<full|incremental> For example --monthly month_backup_day='1 2 3',retention=1,snapshot_type='incremental'

  • --yearly ➡️ Specify following key value pairs for yearly jobschedule backup_month=[jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec],retention=,snapshot_type=<full|incremental> For example --yearly backup_month='jan feb',retention='1',snapshot_type='full'

  • --manual ➡️ Specify following key value pairs for manual jobschedule retention=,retention_days_to_keep= For example --manual retention=30,retention_days_to_keep=30

  • --metadata <key=keyname> ➡️ Specify a key value pairs to include in the workload_type metadata Specify option multiple times to include multiple keys. key=value

  • <policy_id> ➡️ ID of the policy

Assign/Remove a policy

Using Horizon

To assign or remove a policy in Horizon follow these steps:

  1. Login to Horizon using admin user.

  2. Click on Admin Tab.

  3. Navigate to Backups-Admin

  4. Navigate to Trilio

  5. Navigate to Policy

  6. identify the policy to assign/remove

  7. click on the small arrow at the end of the line of the chosen policy to open the submenu

  8. click "Add/Remove Projects"

  9. Choose projects to add or remove by using the plus/minus buttons

  10. Click "Apply"

Using CLI

workloadmgr policy-assign [--add_project <project_id>]
                          [--remove_project <project_id>]
                          <policy_id>
  • --add_project <project_id> ➡️ ID of the project to assign policy to. Use multiple times to assign multiple projects.

  • --remove_project <project_id> ➡️ ID of the project to remove policy from. Use multiple times to remove multiple projects.

  • <policy_id>➡️policy to be assigned or removed

Delete a policy

Using Horizon

To delete a policy in Horizon follow these steps:

  1. Login to Horizon using admin user.

  2. Click on Admin Tab.

  3. Navigate to Backups-Admin

  4. Navigate to Trilio

  5. Navigate to Policy

  6. identify the policy to assign/remove

  7. click on the small arrow at the end of the line of the chosen policy to open the submenu

  8. click "Delete Policy"

  9. Confirm by clicking "Delete"

Using CLI

workloadmgr policy-delete <policy_id>
  • <policy_id> ➡️ID of the policy to be deleted

Last updated