Skip to main content

Policies

Protection policies: the service levels plans run under.

policy assign​

Offer a policy to domains and projects, or withdraw it (operator).

openstack backup policy assign <policy> [--project <project>] \
[--domain <domain>] [--remove]
ArgumentDescription
<policy>Policy name or id.
--project <project>Project id (repeatable)
--domain <domain>Domain id; every project in it may name the policy (repeatable)
--removeWithdraw the assignment instead of adding it. Plans already under the policy keep running.

policy create​

Write a protection policy (operator).

Everything a tenant used to type into a plan — the schedule, the retention, the recovery objectives — is stated here once, by the party that provisioned the capacity for it.

openstack backup policy create <name> [--description <text>] \
[--visibility <visibility>] [--mandatory] [--verify-every <duration>] \
[--every <duration>] [--cron <expr>] [--at <HH:MM>] \
[--window-start <HH:MM>] [--window-end <HH:MM>] [--jitter <duration>] \
[--start-within <duration>] [--keep-all <duration>] \
[--keep-daily <count>] [--keep-weekly <count>] [--keep-monthly <count>] \
[--keep-yearly <count>] [--anchor <key=value>] \
--backup-repository <repository> [--instant-tier <repository>] \
[--instant-within <duration>] [--copy-repository <repository>] \
[--copy-keep <tier=value>] [--recovery-site <site>] \
[--recovery-rung <rung>] [--transport <transport>] \
[--rpo-target <duration>] [--rto-target <duration>] \
[--test-every <duration>]
ArgumentDescription
<name>Policy name.
--description <text>What this service level is for.
--visibility <visibility>Public: any project may name it. assigned: only the domains and projects it is assigned to. One of public, assigned.
--mandatoryA tenant may not pause or delete a plan under this policy, nor move it to a weaker one.
--verify-every <duration>Cadence of verification of the newest point of each plan, e.g. 720h. Manual backups are the vault's terms, not the policy's.
--every <duration>Cadence, 15m to 168h, e.g. 1h. A cadence under a day must divide one evenly.
--cron <expr>Cron expression, for a cadence no interval describes, e.g. '0 2 * * 1-5'.
--at <HH:MM>Phase for a cadence of a day or longer, site-local.
--window-start <HH:MM>Earliest time a tick may run.
--window-end <HH:MM>Latest time a tick may run.
--jitter <duration>Random spread so every plan under this policy does not fire at once, e.g. 30m.
--start-within <duration>A tick that has not started by then is recorded as missed, not queued behind the next one, e.g. 2h.
--keep-all <duration>How long every point lives, e.g. 48h. A duration rather than a count, because the repository's lock needs a date.
--keep-daily <count>Daily points to keep: the first point committed in each anchored period wins the daily role and lives this many periods.
--keep-weekly <count>Weekly points to keep: the first point committed in each anchored period wins the weekly role and lives this many periods.
--keep-monthly <count>Monthly points to keep: the first point committed in each anchored period wins the monthly role and lives this many periods.
--keep-yearly <count>Yearly points to keep: the first point committed in each anchored period wins the yearly role and lives this many periods.
--anchor <key=value>Period grid, repeatable: week=sunday, month=first|last, year=january.
--backup-repository <repository>Chunk repository every point is written to. Its retention contract is the floor this policy's ladder must clear. Required.
--instant-tier <repository>Rbd tier that keeps recent points restorable by clone.
--instant-within <duration>How long a point stays on the instant tier, e.g. 168h.
--copy-repository <repository>Second chunk repository every committed point is copied to.
--copy-keep <tier=value>Ladder for the copy, repeatable: all=<duration>, daily=7, monthly=12.
--recovery-site <site>Site the recovery promise is made about, by name or id (openstack backup site list)
--recovery-rung <rung>Cold: the copy is readable there. warm: a standby per resource. hot: a mirror relationship. One of cold, warm, hot.
--transport <transport>How the recoverable copy reaches the site: rbd-mirror for hot, repository for cold and warm; the rung's own when omitted. One of rbd-mirror, repository.
--rpo-target <duration>Recovery point objective. A cold or warm rung cannot promise less than the cadence.
--rto-target <duration>Recovery time objective, e.g. 30m.
--test-every <duration>Cadence of test failovers into the bubble, e.g. 720h.

policy delete​

Delete a policy no plan has ever named (operator).

Deleting is for a draft, not for a policy in service: one with a live plan under it, or with a plan still inside its delete grace, is refused and named. Retire it onto a successor instead.

openstack backup policy delete <policy> [<policy> ...]
ArgumentDescription
<policy>Policy name or id. Takes one or more.

policy deprecate​

Deprecate a policy: no new plan may name it, existing plans run on.

openstack backup policy deprecate <policy>
ArgumentDescription
<policy>Policy name or id.

policy list​

List protection policies.

A tenant is served the policies their project may name, as sentences. An operator is served all of them; policy show is where the spec is.

openstack backup policy list [--state <state>] [--unsatisfied] \
[--limit <limit>] [--scope <scope>]
ArgumentDescription
--state <state>Active, deprecated or retired. One of active, deprecated, retired.
--unsatisfiedOnly policies naming something they cannot use.
--limit <limit>Maximum policies returned.
--scope <scope>Render as a tenant sees it, even with an operator token: repository-global figures are withheld. One of tenant.

policy retire​

Retire a policy, moving every plan under it to a successor.

Retiring needs either no plans at all or a successor that is not weaker: a shorter keep all, an unlocked repository where the old one was locked, or a lower recovery rung is refused by name. Points keep their dates through the move.

openstack backup policy retire <policy> [--successor <policy>]
ArgumentDescription
<policy>Policy name or id.
--successor <policy>Policy every plan is moved to, by name or id.

policy set​

Edit a protection policy (operator).

An edit applies forward: every point already written keeps its expiry and its lock. --apply-to-existing re-derives the expiry of every unlocked point under the policy, and shortening one is a separately granted action. Run openstack backup retention simulate first to see what it frees.

openstack backup policy set <policy> [--name <name>] [--description <text>] \
[--visibility <visibility>] [--mandatory] [--not-mandatory] \
[--apply-to-existing] [--verify-every <duration>] [--every <duration>] \
[--cron <expr>] [--at <HH:MM>] [--window-start <HH:MM>] \
[--window-end <HH:MM>] [--jitter <duration>] [--start-within <duration>] \
[--keep-all <duration>] [--keep-daily <count>] [--keep-weekly <count>] \
[--keep-monthly <count>] [--keep-yearly <count>] [--anchor <key=value>] \
[--backup-repository <repository>] [--instant-tier <repository>] \
[--instant-within <duration>] [--copy-repository <repository>] \
[--copy-keep <tier=value>] [--recovery-site <site>] \
[--recovery-rung <rung>] [--transport <transport>] \
[--rpo-target <duration>] [--rto-target <duration>] \
[--test-every <duration>]
ArgumentDescription
<policy>Policy name or id.
--name <name>
--description <text>
--visibility <visibility>One of public, assigned.
--mandatory
--not-mandatory
--apply-to-existingRe-derive the expiry of every unlocked point already under this policy, not only the ones written from now on.
--verify-every <duration>Cadence of verification of the newest point of each plan, e.g. 720h. Manual backups are the vault's terms, not the policy's.
--every <duration>Cadence, 15m to 168h, e.g. 1h. A cadence under a day must divide one evenly.
--cron <expr>Cron expression, for a cadence no interval describes, e.g. '0 2 * * 1-5'.
--at <HH:MM>Phase for a cadence of a day or longer, site-local.
--window-start <HH:MM>Earliest time a tick may run.
--window-end <HH:MM>Latest time a tick may run.
--jitter <duration>Random spread so every plan under this policy does not fire at once, e.g. 30m.
--start-within <duration>A tick that has not started by then is recorded as missed, not queued behind the next one, e.g. 2h.
--keep-all <duration>How long every point lives, e.g. 48h. A duration rather than a count, because the repository's lock needs a date.
--keep-daily <count>Daily points to keep: the first point committed in each anchored period wins the daily role and lives this many periods.
--keep-weekly <count>Weekly points to keep: the first point committed in each anchored period wins the weekly role and lives this many periods.
--keep-monthly <count>Monthly points to keep: the first point committed in each anchored period wins the monthly role and lives this many periods.
--keep-yearly <count>Yearly points to keep: the first point committed in each anchored period wins the yearly role and lives this many periods.
--anchor <key=value>Period grid, repeatable: week=sunday, month=first|last, year=january.
--backup-repository <repository>Chunk repository every point is written to. Its retention contract is the floor this policy's ladder must clear.
--instant-tier <repository>Rbd tier that keeps recent points restorable by clone.
--instant-within <duration>How long a point stays on the instant tier, e.g. 168h.
--copy-repository <repository>Second chunk repository every committed point is copied to.
--copy-keep <tier=value>Ladder for the copy, repeatable: all=<duration>, daily=7, monthly=12.
--recovery-site <site>Site the recovery promise is made about, by name or id (openstack backup site list)
--recovery-rung <rung>Cold: the copy is readable there. warm: a standby per resource. hot: a mirror relationship. One of cold, warm, hot.
--transport <transport>How the recoverable copy reaches the site: rbd-mirror for hot, repository for cold and warm; the rung's own when omitted. One of rbd-mirror, repository.
--rpo-target <duration>Recovery point objective. A cold or warm rung cannot promise less than the cadence.
--rto-target <duration>Recovery time objective, e.g. 30m.
--test-every <duration>Cadence of test failovers into the bubble, e.g. 720h.

policy show​

Show a protection policy, its sentence and anything it cannot satisfy.

openstack backup policy show <policy> [--scope <scope>]
ArgumentDescription
<policy>Policy name or id.
--scope <scope>Render as a tenant sees it, even with an operator token: repository-global figures are withheld. One of tenant.