Code block
On this page
On this page
Code block
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
<rh-code-block>
<script type="text/html"><!DOCTYPE html>
<title>Title</title>
<style>body {width: 500px;}</style>
<script type="application/javascript">
function $init() {return true;}
<</script><script type="text/html">/script>
<body>
<p checked class="title" id="title">Title</p>
<!-- here goes the rest of the page -->
</body></script>
</rh-code-block>
Actions I18n
Edit element properties
import '@rhds/elements/rh-button/rh-button.js';
import '@rhds/elements/rh-code-block/rh-code-block.js';
import '@rhds/elements/rh-tooltip/rh-tooltip.js';
rh-code-block {
margin-block-end: var(--rh-space-lg, 16px);
}
<rh-code-block actions="wrap copy">
<span slot="action-label-copy">העתק</span>
<span slot="action-label-copy" hidden="" data-code-block-state="active">הועתק!</span>
<span slot="action-label-wrap">לעבור לגלישת שורות</span>
<span slot="action-label-wrap" hidden="" data-code-block-state="active">לעבור להצפת שורות</span>
<script type="text/css">#content {
display: block;
background-color: var(--rh-color-surface-lighter, #f2f2f2);
border: var(--rh-border-width-sm, 1px) solid var(--rh-color-border-subtle-on-light, #c7c7c7);
border-block-start-width: var( --rh-code-block-border-block-start-width, var(--rh-border-width-sm, 1px));
font-family: var(--rh-font-family-code, RedHatMono, "Red Hat Mono", "Courier New", Courier, monospace);
color: var(--rh-color-text-primary-on-light, #151515);
padding: var(--rh-space-xl, 24px);
height: calc(100% - 2 * var(--rh-space-xl, 24px));
border-radius: var(--rh-border-radius-default, 3px);
max-width: 1000px;
max-height: 640px;
overflow-y: auto;
}</script>
</rh-code-block>
Actions
Edit element properties
import '@rhds/elements/rh-button/rh-button.js';
import '@rhds/elements/rh-code-block/rh-code-block.js';
rh-code-block {
margin-block-end: var(--rh-space-lg, 16px);
}
<rh-code-block actions="wrap copy">
<script type="text/css">#content {
display: block;
background-color: var(--rh-color-surface-lighter, #f2f2f2);
border: var(--rh-border-width-sm, 1px) solid var(--rh-color-border-subtle-on-light, #c7c7c7);
border-block-start-width: var( --rh-code-block-border-block-start-width, var(--rh-border-width-sm, 1px));
font-family: var(--rh-font-family-code, RedHatMono, "Red Hat Mono", "Courier New", Courier, monospace);
color: var(--rh-color-text-primary-on-light, #151515);
padding: var(--rh-space-xl, 24px);
height: calc(100% - 2 * var(--rh-space-xl, 24px));
border-radius: var(--rh-border-radius-default, 3px);
max-width: 1000px;
max-height: 640px;
overflow-y: auto;
}</script>
</rh-code-block>
Below The Fold
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
import { RhAlert } from '@rhds/elements/rh-alert/rh-alert.js'
import { html } from 'lit';
RhAlert.toast({
persistent: true,
state: 'info',
message: html`
<dl>
<dt>1st code block:</dt>
<dd><em>Pending</em></dd>
<dt>2nd code block:</dt>
<dd><em>Pending</em></dd>
</dl>
`,
});
const [fst, snd] = document.querySelectorAll('rh-code-block');
const [fstP, sndP] = document.querySelectorAll('rh-alert dd em');
addEventListener('scroll', function() {
fstP.textContent = fst.shadowRoot.querySelectorAll('#line-numbers li').length ? 'Computed' : 'Pending'
sndP.textContent = snd.shadowRoot.querySelectorAll('#line-numbers li').length ? 'Computed' : 'Pending'
}, { passive: true });
.tall-as-screen {
padding: var(--rh-length-lg);
min-height: calc(100vh + 500px);
}
rh-alert dl {
display: grid;
font-family: var(--rh-font-family-code);
grid-template-columns: auto auto;
gap: var(--rh-space-md);
}
<section class="tall-as-screen">
<p>Expect line numbers to not be calculated until just before code block scrolls into view</p>
<p>Expect line numbers to appear without flash when scrolling down to view codeblock</p>
<p><strong>Scroll down to view code block</strong></p>
</section>
<rh-code-block>
<script type="text/html"><!DOCTYPE html>
<title>Title</title>
<style>body {width: 500px;}</style>
<script type="application/javascript">
function $init() {return true;}
<</script><script type="text/html">/script>
<body>
<p checked class="title" id="title">Title</p>
<!-- here goes the rest of the page -->
</body></script>
</rh-code-block>
<section class="tall-as-screen">
<p>Expect only the first code block to have computed line numbers</p>
<p>Expect second block's line numbers to compute only just before it scrolls into view</p>
<p><strong>Scroll down to view code block</strong></p>
</section>
<rh-code-block>
<script type="text/html"><!DOCTYPE html>
<title>Title</title>
<style>body {width: 500px;}</style>
<script type="application/javascript">
function $init() {return true;}
<</script><script type="text/html">/script>
<body>
<p checked class="title" id="title">Title</p>
<!-- here goes the rest of the page -->
</body></script>
</rh-code-block>
Callout Badges
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
import '@rhds/elements/rh-badge/rh-badge.js';
<rh-code-block>
<script type="text/html"><p>Script tags in HTML must be escaped</p></script>
<rh-badge state="info">1</rh-badge>
<script type="text/html">
<p>other tags do not need to be escaped</p>
<marquee>Callouts can be placed </script><rh-badge state="info">2</rh-badge><script type="text/html">inline</marquee>
</script>
<dl slot="legend">
<dt><rh-badge state="info">1</rh-badge></dt>
<dd>Postfix callout</dd>
<dt><rh-badge state="info">2</rh-badge></dt>
<dd>Inline callout</dd>
</dl>
</rh-code-block>
<link rel="stylesheet" href="../rh-code-block-lightdom.css">
Callout Prerendered
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
import '@rhds/elements/rh-badge/rh-badge.js';
<rh-code-block highlighting="prerendered" actions="copy wrap">
<pre class="language-html"><code class="language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nullam eleifend elit sed est egestas, a sollicitudin mauris
tincidunt. Pellentesque vel dapibus risus. Nullam aliquam</code></pre><rh-badge state="info">1</rh-badge><pre class="language-html"><code class="language-html">
felis orci, eget cursus mi lacinia quis. Vivamus at felis sem.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>rh-cta</span> <span class="token attr-name">slot</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footer<span class="token punctuation">"</span></span> <span class="token attr-name">priority</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Call to action<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>rh-cta</span><span class="token punctuation">></span></span></code></pre>
</rh-code-block>
Client Side Highlighting
Edit element properties
import '@rhds/elements/lib/elements/rh-context-demo/rh-context-demo.js';
import '@rhds/elements/rh-code-block/rh-code-block.js';
rh-context-demo::part(demo) {
display: grid;
gap: var(--rh-space-sm, 6px);
}
<rh-context-demo>
<rh-code-block dedent="" language="html" highlighting="client">
<script type="text/html">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>Cards Galore!</title>
</head>
<body>
<main>
<rh-card>
<h2 slot="header">Card</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nullam eleifend elit sed est egestas, a sollicitudin mauris
tincidunt. Pellentesque vel dapibus risus. Nullam aliquam
felis orci, eget cursus mi lacinia quis. Vivamus at felis sem.</p>
<rh-cta slot="footer" priority="primary">
<a href="#">Call to action</a>
</rh-cta>
</rh-card>
</main>
</body>
</html>
</script>
</rh-code-block>
<rh-code-block dedent="" language="css" highlighting="client">
<script type="text/css">
rh-card.avatar-card {
width: 360px;
&::part(body) {
margin-block-start: var(--rh-space-lg, 16px);
}
& p {
margin-block-start: 0;
}
& h4 {
font-weight: var(--rh-font-weight-heading-regular, 300);
font-size: var(--rh-font-size-body-text-md, 1rem);
font-family: var(--rh-font-family-body-text);
line-height: var(--rh-line-height-body-text, 1.5);
}
}
</script>
</rh-code-block>
<rh-code-block dedent="" language="yaml" highlighting="client">
<script type="text/yaml">
extends:
- stylelint-config-standard
- '@stylistic/stylelint-config'
plugins:
- ./node_modules/@rhds/tokens/plugins/stylelint.js
- '@stylistic/stylelint-plugin'
rules:
rhds/token-values: true
rhds/no-unknown-token-name:
- true
- allowed:
- --rh-icon-size
</script>
</rh-code-block>
</rh-context-demo>
Color Context
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
import '@rhds/elements/lib/elements/rh-context-demo/rh-context-demo.js';
<rh-context-demo>
<rh-code-block actions="wrap copy">
<span slot="action-label-copy">Copy to Clipboard</span>
<span slot="action-label-copy" hidden="" data-code-block-state="active">Copied!</span>
<span slot="action-label-wrap">Toggle word wrap</span>
<span slot="action-label-wrap" hidden="" data-code-block-state="active">Toggle overflow</span>
<script type="text/text">Error: Error creating network Load Balancer: AccessDenied: User: arn:aws:sts::970xxxxxxxxx:assumed-role/ManagedOpenShift-Installer-Role/163xxxxxxxxxxxxxxxx is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::970xxxxxxxxx:role/aws-service-role/elasticloadbalancing.amazonaws.com/ AWSServiceRoleForElasticLoadBalancing
Error: Error creating network Load Balancer: AccessDenied: User: arn:aws:sts::970xxxxxxxxx:assumed-role/ManagedOpenShift-Installer-Role/163xxxxxxxxxxxxxxxx is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::970xxxxxxxxx:role/aws-service-role/elasticloadbalancing.amazonaws.com/ AWSServiceRoleForElasticLoadBalancing
Error: Error creating network Load Balancer: AccessDenied: User: arn:aws:sts::970xxxxxxxxx:assumed-role/ManagedOpenShift-Installer-Role/163xxxxxxxxxxxxxxxx is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::970xxxxxxxxx:role/aws-service-role/elasticloadbalancing.amazonaws.com/ AWSServiceRoleForElasticLoadBalancing
Error: Error creating network Load Balancer: AccessDenied: User: arn:aws:sts::970xxxxxxxxx:assumed-role/ManagedOpenShift-Installer-Role/163xxxxxxxxxxxxxxxx is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::970xxxxxxxxx:role/aws-service-role/elasticloadbalancing.amazonaws.com/ AWSServiceRoleForElasticLoadBalancing
Error: Error creating network Load Balancer: AccessDenied: User: arn:aws:sts::970xxxxxxxxx:assumed-role/ManagedOpenShift-Installer-Role/163xxxxxxxxxxxxxxxx is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::970xxxxxxxxx:role/aws-service-role/elasticloadbalancing.amazonaws.com/ AWSServiceRoleForElasticLoadBalancing
Error: Error creating network Load Balancer: AccessDenied: User: arn:aws:sts::970xxxxxxxxx:assumed-role/ManagedOpenShift-Installer-Role/163xxxxxxxxxxxxxxxx is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::970xxxxxxxxx:role/aws-service-role/elasticloadbalancing.amazonaws.com/ AWSServiceRoleForElasticLoadBalancing</script>
</rh-code-block>
</rh-context-demo>
Copy Cancel
Edit element properties
import {RhCodeBlockCopyEvent} from '@rhds/elements/rh-code-block/rh-code-block.js';
document.body.addEventListener('copy', function(event) {
if (event instanceof RhCodeBlockCopyEvent) {
// prevent copy
event.preventDefault();
}
});
<rh-code-block highlighting="prerendered" language="bash" actions="copy">
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">node</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span>oc get nodes <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.items[*].metadata.name}'</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token builtin class-name">echo</span> <span class="token variable">${node}</span> <span class="token punctuation">;</span> oc adm cordon <span class="token variable">${node}</span> <span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
Copy Modify
Edit element properties
import {RhCodeBlockCopyEvent} from '@rhds/elements/rh-code-block/rh-code-block.js';
document.body.addEventListener('copy', function(event) {
if (event instanceof RhCodeBlockCopyEvent) {
// remove prompt and surrounding whitespace from the start of the string
event.content = event.content.replace(/^\s*\$|#\s*/, '');
}
});
<rh-code-block highlighting="prerendered" language="bash" actions="copy">
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">node</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span>oc get nodes <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.items[*].metadata.name}'</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token builtin class-name">echo</span> <span class="token variable">${node}</span> <span class="token punctuation">;</span> oc adm cordon <span class="token variable">${node}</span> <span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
<label>Paste your results here:<br><textarea></textarea></label>
Hide Line Numbers
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
<rh-code-block line-numbers="hidden">
<script type="text/html"><!DOCTYPE html>
<title>Title</title>
<style>body {width: 500px;}</style>
<script type="application/javascript">
function $init() {return true;}
<</script><script type="text/html">/script>
<body>
<p checked class="title" id="title">Title</p>
<!-- here goes the rest of the page -->
</body></script>
</rh-code-block>
Prerendered Prism Highlighting
Edit element properties
import '@rhds/elements/lib/elements/rh-context-demo/rh-context-demo.js';
import '@rhds/elements/rh-code-block/rh-code-block.js';
rh-context-demo::part(demo) {
display: grid;
gap: var(--rh-space-sm, 6px);
}
<rh-context-demo>
<rh-code-block highlighting="prerendered" actions="copy wrap">
<span slot="action-label-copy">Copy to Clipboard</span>
<span slot="action-label-copy" hidden="" data-code-block-state="active">Copied!</span>
<span slot="action-label-wrap">Toggle word wrap</span>
<span slot="action-label-wrap" hidden="" data-code-block-state="active">Toggle overflow</span>
<pre class="language-html"><code class="language-html"><span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>en<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">charset</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>utf-8<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>viewport<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>width=device-width<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>title</span><span class="token punctuation">></span></span>Cards Galore!<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>title</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>head</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>main</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>rh-card</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h2</span> <span class="token attr-name">slot</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>header<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Card<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h2</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nullam eleifend elit sed est egestas, a sollicitudin mauris
tincidunt. Pellentesque vel dapibus risus. Nullam aliquam
felis orci, eget cursus mi lacinia quis. Vivamus at felis sem.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>rh-cta</span> <span class="token attr-name">slot</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>footer<span class="token punctuation">"</span></span> <span class="token attr-name">priority</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>primary<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>#<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Call to action<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>rh-cta</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>rh-card</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>main</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" actions="copy wrap">
<span slot="action-label-copy">Copy to Clipboard</span>
<span slot="action-label-copy" hidden="" data-code-block-state="active">Copied!</span>
<span slot="action-label-wrap">Toggle word wrap</span>
<span slot="action-label-wrap" hidden="" data-code-block-state="active">Toggle overflow</span>
<pre class="language-css"><code class="language-css"><span class="token selector">rh-card.avatar-card</span> <span class="token punctuation">{</span>
<span class="token property">width</span><span class="token punctuation">:</span> 360px<span class="token punctuation">;</span>
<span class="token selector">&::part(body)</span> <span class="token punctuation">{</span>
<span class="token property">margin-block-start</span><span class="token punctuation">:</span> <span class="token function">var</span><span class="token punctuation">(</span>--rh-space-lg<span class="token punctuation">,</span> 16px<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token selector">& p</span> <span class="token punctuation">{</span>
<span class="token property">margin-block-start</span><span class="token punctuation">:</span> 0<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token selector">& h4</span> <span class="token punctuation">{</span>
<span class="token property">font-weight</span><span class="token punctuation">:</span> <span class="token function">var</span><span class="token punctuation">(</span>--rh-font-weight-heading-regular<span class="token punctuation">,</span> 300<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token property">font-size</span><span class="token punctuation">:</span> <span class="token function">var</span><span class="token punctuation">(</span>--rh-font-size-body-text-md<span class="token punctuation">,</span> 1rem<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token property">font-family</span><span class="token punctuation">:</span> <span class="token function">var</span><span class="token punctuation">(</span>--rh-font-family-body-text<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token property">line-height</span><span class="token punctuation">:</span> <span class="token function">var</span><span class="token punctuation">(</span>--rh-line-height-body-text<span class="token punctuation">,</span> 1.5<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" actions="copy wrap">
<span slot="action-label-copy">Copy to Clipboard</span>
<span slot="action-label-copy" hidden="" data-code-block-state="active">Copied!</span>
<span slot="action-label-wrap">Toggle word wrap</span>
<span slot="action-label-wrap" hidden="" data-code-block-state="active">Toggle overflow</span>
<pre class="language-yaml"><code class="language-yaml"><span class="token key atrule">extends</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> stylelint<span class="token punctuation">-</span>config<span class="token punctuation">-</span>standard
<span class="token punctuation">-</span> <span class="token string">'@stylistic/stylelint-config'</span>
<span class="token key atrule">plugins</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> ./node_modules/@rhds/tokens/plugins/stylelint.js
<span class="token punctuation">-</span> <span class="token string">'@stylistic/stylelint-plugin'</span>
<span class="token key atrule">rules</span><span class="token punctuation">:</span>
<span class="token key atrule">rhds/token-values</span><span class="token punctuation">:</span> <span class="token boolean important">true</span>
<span class="token key atrule">rhds/no-unknown-token-name</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token boolean important">true</span>
<span class="token punctuation">-</span> <span class="token key atrule">allowed</span><span class="token punctuation">:</span>
<span class="token punctuation">-</span> <span class="token punctuation">-</span><span class="token punctuation">-</span>rh<span class="token punctuation">-</span>icon<span class="token punctuation">-</span>size</code></pre>
</rh-code-block>
</rh-context-demo>
Resizable
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
<rh-code-block resizable="">
<script type="text/text">Error: Error creating network Load Balancer: AccessDenied: User: arn:aws:sts::970xxxxxxxxx:assumed-role/ManagedOpenShift-Installer-Role/163xxxxxxxxxxxxxxxx is not authorized to perform: iam:CreateServiceLinkedRole on resource: arn:aws:iam::970xxxxxxxxx:role/aws-service-role/elasticloadbalancing.amazonaws.com/AWSServiceRoleForElasticLoadBalancing</script>
</rh-code-block>
Sizes
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
rh-code-block {
margin-block-end: var(--rh-space-lg, 16px);
}
<hgroup>
<h2>Sizes</h2>
<h3>Standard</h3>
</hgroup>
<rh-code-block>
<script type="application/shell">oc apply -f ostoy-microservice-deployment.yaml</script>
</rh-code-block>
<rh-code-block>
<script type="text/sample">$ podman login -u flozanorht quay.io
Password:
Login Succeeded!
$ skopeo copy docker://registry.access.redhat.com/ubi8/ubi:8.0-122 \
docker://quay.io/flozanorht/ubi:8
...
Writing manifest to image destination
Storing signatures</script>
</rh-code-block>
<h3>Compact</h3>
<rh-code-block compact="">
<script type="application/shell">oc apply -f ostoy-microservice-deployment.yaml</script>
</rh-code-block>
<rh-code-block compact="">
<script type="text/sample">$ podman login -u flozanorht quay.io
Password:
Login Succeeded!
$ skopeo copy docker://registry.access.redhat.com/ubi8/ubi:8.0-122 \
docker://quay.io/flozanorht/ubi:8
...
Writing manifest to image destination
Storing signatures</script>
</rh-code-block>
<h3>No fixed width</h3>
<rh-code-block style="width: max-content;">
<script type="application/shell">oc apply -f ostoy-microservice-deployment.yaml</script>
</rh-code-block>
<rh-code-block style="width: max-content;">
<script type="text/text">$ podman login -u flozanorht quay.io
Password:
Login Succeeded!
$ skopeo copy docker://registry.access.redhat.com/ubi8/ubi:8.0-122 \
docker://quay.io/flozanorht/ubi:8
...
Writing manifest to image destination
Storing signatures</script>
</rh-code-block>
<h3>Responsive sizes</h3>
<div style="max-width: 564px">
<rh-code-block>
<rh-code-action slot="actions" action="copy">Copy to Clipboard</rh-code-action>
<rh-code-action slot="actions" action="wrap">
Toggle
<span slot="inactive">line wrap</span>
<span slot="active">overflow</span>
</rh-code-action>
<script type="text/sample">$ podman login -u flozanorht quay.io
Password:
Login Succeeded!
$ skopeo copy docker://registry.access.redhat.com/ubi8/ubi:8.0-122 \
docker://quay.io/flozanorht/ubi:8
...
Writing manifest to image destination
Storing signatures</script>
</rh-code-block>
</div>
<div style="max-width: 328px">
<rh-code-block>
<rh-code-action slot="actions" action="copy">Copy to Clipboard</rh-code-action>
<rh-code-action slot="actions" action="wrap">
Toggle
<span slot="inactive">line wrap</span>
<span slot="active">overflow</span>
</rh-code-action>
<script type="text/sample">$ podman login -u flozanorht quay.io
Password:
Login Succeeded!
$ skopeo copy docker://registry.access.redhat.com/ubi8/ubi:8.0-122 \
docker://quay.io/flozanorht/ubi:8
...
Writing manifest to image destination
Storing signatures</script>
</rh-code-block>
</div>
Thousands
Edit element properties
import '@rhds/elements/rh-code-block/rh-code-block.js';
rh-code-block { margin-block-end: var(--rh-length-lg); }
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-kube-apiserver-operator get secret kube-apiserver-to-kubelet-signer <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.metadata.annotations.auth\.openshift\.io/certificate-not-after}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">2022-08-05T14:37:50Zuser@user:~ $ </span></code></pre><rh-badge id="CO1-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">node</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span>oc get nodes <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.items[*].metadata.name}'</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token builtin class-name">echo</span> <span class="token variable">${node}</span> <span class="token punctuation">;</span> oc adm cordon <span class="token variable">${node}</span> <span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
node/ci-ln-mgdnf4b-72292-n547t-master-0 cordoned
ci-ln-mgdnf4b-72292-n547t-master-1
node/ci-ln-mgdnf4b-72292-n547t-master-1 cordoned
ci-ln-mgdnf4b-72292-n547t-master-2
node/ci-ln-mgdnf4b-72292-n547t-master-2 cordoned
ci-ln-mgdnf4b-72292-n547t-worker-a-s7ntl
node/ci-ln-mgdnf4b-72292-n547t-worker-a-s7ntl cordoned
ci-ln-mgdnf4b-72292-n547t-worker-b-cmc9k
node/ci-ln-mgdnf4b-72292-n547t-worker-b-cmc9k cordoned
ci-ln-mgdnf4b-72292-n547t-worker-c-vcmtn
node/ci-ln-mgdnf4b-72292-n547t-worker-c-vcmtn cordoned
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">ci-ln-mgdnf4b-72292-n547t-master-0
node/ci-ln-mgdnf4b-72292-n547t-master-0 cordoned
ci-ln-mgdnf4b-72292-n547t-master-1
node/ci-ln-mgdnf4b-72292-n547t-master-1 cordoned
ci-ln-mgdnf4b-72292-n547t-master-2
node/ci-ln-mgdnf4b-72292-n547t-master-2 cordoned
ci-ln-mgdnf4b-72292-n547t-worker-a-s7ntl
node/ci-ln-mgdnf4b-72292-n547t-worker-a-s7ntl cordoned
ci-ln-mgdnf4b-72292-n547t-worker-b-cmc9k
node/ci-ln-mgdnf4b-72292-n547t-worker-b-cmc9k cordoned
ci-ln-mgdnf4b-72292-n547t-worker-c-vcmtn
node/ci-ln-mgdnf4b-72292-n547t-worker-c-vcmtn cordoned</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">node</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span>oc get nodes <span class="token parameter variable">-l</span> node-role.kubernetes.io/worker <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.items[*].metadata.name}'</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token builtin class-name">echo</span> <span class="token variable">${node}</span> <span class="token punctuation">;</span> oc adm drain <span class="token variable">${node}</span> --delete-emptydir-data --ignore-daemonsets<span class="token operator">=</span>true <span class="token parameter variable">--timeout</span><span class="token operator">=</span>15s <span class="token parameter variable">--force</span> <span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">node</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span>oc get nodes <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.items[*].metadata.name}'</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> oc debug node/<span class="token variable">${node}</span> -- <span class="token function">chroot</span> /host <span class="token function">shutdown</span> <span class="token parameter variable">-h</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token keyword">done</span> </span></span></code></pre><rh-badge id="CO2-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
To use host binaries, run `chroot /host`
Shutdown scheduled for Mon 2021-09-13 09:36:17 UTC, use 'shutdown -c' to cancel.
Removing debug pod ...
Starting pod/ip-10-0-150-116us-east-2computeinternal-debug ...
To use host binaries, run `chroot /host`
Shutdown scheduled for Mon 2021-09-13 09:36:29 UTC, use 'shutdown -c' to cancel.
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Starting pod/ip-10-0-130-169us-east-2computeinternal-debug ...
To use host binaries, run `chroot /host`
Shutdown scheduled for Mon 2021-09-13 09:36:17 UTC, use 'shutdown -c' to cancel.
Removing debug pod ...
Starting pod/ip-10-0-150-116us-east-2computeinternal-debug ...
To use host binaries, run `chroot /host`
Shutdown scheduled for Mon 2021-09-13 09:36:29 UTC, use 'shutdown -c' to cancel.</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm uncordon <span class="token operator"><</span>node<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm uncordon <span class="token operator"><</span>node<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes <span class="token parameter variable">-l</span> node-role.kubernetes.io/master</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
ip-10-0-168-251.ec2.internal Ready control-plane,master 75m v1.32.3
ip-10-0-170-223.ec2.internal Ready control-plane,master 75m v1.32.3
ip-10-0-211-16.ec2.internal Ready control-plane,master 75m v1.32.3
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS ROLES AGE VERSION
ip-10-0-168-251.ec2.internal Ready control-plane,master 75m v1.32.3
ip-10-0-170-223.ec2.internal Ready control-plane,master 75m v1.32.3
ip-10-0-211-16.ec2.internal Ready control-plane,master 75m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get csr</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe csr <span class="token operator"><</span>csr_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO3-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm certificate approve <span class="token operator"><</span>csr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes <span class="token parameter variable">-l</span> node-role.kubernetes.io/worker</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
ip-10-0-179-95.ec2.internal Ready worker 64m v1.32.3
ip-10-0-182-134.ec2.internal Ready worker 64m v1.32.3
ip-10-0-250-100.ec2.internal Ready worker 64m v1.32.3
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS ROLES AGE VERSION
ip-10-0-179-95.ec2.internal Ready worker 64m v1.32.3
ip-10-0-182-134.ec2.internal Ready worker 64m v1.32.3
ip-10-0-250-100.ec2.internal Ready worker 64m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get csr</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe csr <span class="token operator"><</span>csr_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO4-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm certificate approve <span class="token operator"><</span>csr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">node</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">$(</span>oc get nodes <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.items[*].metadata.name}'</span><span class="token variable">)</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> <span class="token builtin class-name">echo</span> <span class="token variable">${node}</span> <span class="token punctuation">;</span> oc adm uncordon <span class="token variable">${node}</span> <span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get clusteroperators</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
authentication 4.19.0 True False False 59m
cloud-credential 4.19.0 True False False 85m
cluster-autoscaler 4.19.0 True False False 73m
config-operator 4.19.0 True False False 73m
console 4.19.0 True False False 62m
csi-snapshot-controller 4.19.0 True False False 66m
dns 4.19.0 True False False 76m
etcd 4.19.0 True False False 76m
...
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE
authentication 4.19.0 True False False 59m
cloud-credential 4.19.0 True False False 85m
cluster-autoscaler 4.19.0 True False False 73m
config-operator 4.19.0 True False False 73m
console 4.19.0 True False False 62m
csi-snapshot-controller 4.19.0 True False False 66m
dns 4.19.0 True False False 76m
etcd 4.19.0 True False False 76m
...</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
ip-10-0-168-251.ec2.internal Ready control-plane,master 82m v1.32.3
ip-10-0-170-223.ec2.internal Ready control-plane,master 82m v1.32.3
ip-10-0-179-95.ec2.internal Ready worker 70m v1.32.3
ip-10-0-182-134.ec2.internal Ready worker 70m v1.32.3
ip-10-0-211-16.ec2.internal Ready control-plane,master 82m v1.32.3
ip-10-0-250-100.ec2.internal Ready worker 69m v1.32.3
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS ROLES AGE VERSION
ip-10-0-168-251.ec2.internal Ready control-plane,master 82m v1.32.3
ip-10-0-170-223.ec2.internal Ready control-plane,master 82m v1.32.3
ip-10-0-179-95.ec2.internal Ready worker 70m v1.32.3
ip-10-0-182-134.ec2.internal Ready worker 70m v1.32.3
ip-10-0-211-16.ec2.internal Ready control-plane,master 82m v1.32.3
ip-10-0-250-100.ec2.internal Ready worker 69m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
ci-ln-812tb4k-72292-8bcj7-master-0 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-1 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-2 Ready control-plane,master 32m v1.32.3
Ci-ln-812tb4k-72292-8bcj7-worker-a-zhdvk Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-b-9hrmv Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 Ready worker 19m v1.32.3
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS ROLES AGE VERSION
ci-ln-812tb4k-72292-8bcj7-master-0 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-1 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-2 Ready control-plane,master 32m v1.32.3
Ci-ln-812tb4k-72292-8bcj7-worker-a-zhdvk Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-b-9hrmv Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 Ready worker 19m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get clusteroperators</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
authentication 4.19.0-0 True False False 51m
baremetal 4.19.0-0 True False False 72m
cloud-controller-manager 4.19.0-0 True False False 75m
cloud-credential 4.19.0-0 True False False 77m
cluster-api 4.19.0-0 True False False 42m
cluster-autoscaler 4.19.0-0 True False False 72m
config-operator 4.19.0-0 True False False 72m
console 4.19.0-0 True False False 55m
...
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
authentication 4.19.0-0 True False False 51m
baremetal 4.19.0-0 True False False 72m
cloud-controller-manager 4.19.0-0 True False False 75m
cloud-credential 4.19.0-0 True False False 77m
cluster-api 4.19.0-0 True False False 42m
cluster-autoscaler 4.19.0-0 True False False 72m
config-operator 4.19.0-0 True False False 72m
console 4.19.0-0 True False False 55m
...</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get mcp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
master rendered-master-87871f187930e67233c837e1d07f49c7 True False False 3 3 3 0 96m
worker rendered-worker-3c4c459dc5d90017983d7e72928b8aed True False False 3 3 3 0 96m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE
master rendered-master-87871f187930e67233c837e1d07f49c7 True False False 3 3 3 0 96m
worker rendered-worker-3c4c459dc5d90017983d7e72928b8aed True False False 3 3 3 0 96m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get csr</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
csr-4dwsd 37m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 24h Pending
csr-4vrbr 49m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-master-1 24h Pending
csr-4wk5x 51m kubernetes.io/kubelet-serving system:node:ci-ln-812tb4k-72292-8bcj7-master-1 <none> Pending
csr-84vb6 51m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION
csr-4dwsd 37m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 24h Pending
csr-4vrbr 49m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-master-1 24h Pending
csr-4wk5x 51m kubernetes.io/kubelet-serving system:node:ci-ln-812tb4k-72292-8bcj7-master-1 <none> Pending
csr-84vb6 51m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Pending</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm certificate approve <span class="token operator"><</span>csr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get csr</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
csr-4dwsd 37m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 24h Approved,Issued
csr-4vrbr 49m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-master-1 24h Approved,Issued
csr-4wk5x 51m kubernetes.io/kubelet-serving system:node:ci-ln-812tb4k-72292-8bcj7-master-1 <none> Approved,Issued
csr-84vb6 51m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME AGE SIGNERNAME REQUESTOR REQUESTEDDURATION CONDITION
csr-4dwsd 37m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 24h Approved,Issued
csr-4vrbr 49m kubernetes.io/kube-apiserver-client system:node:ci-ln-812tb4k-72292-8bcj7-master-1 24h Approved,Issued
csr-4wk5x 51m kubernetes.io/kubelet-serving system:node:ci-ln-812tb4k-72292-8bcj7-master-1 <none> Approved,Issued
csr-84vb6 51m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper <none> Approved,Issued</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
ci-ln-812tb4k-72292-8bcj7-master-0 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-1 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-2 Ready control-plane,master 32m v1.32.3
Ci-ln-812tb4k-72292-8bcj7-worker-a-zhdvk Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-b-9hrmv Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 Ready worker 19m v1.32.3
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS ROLES AGE VERSION
ci-ln-812tb4k-72292-8bcj7-master-0 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-1 Ready control-plane,master 32m v1.32.3
ci-ln-812tb4k-72292-8bcj7-master-2 Ready control-plane,master 32m v1.32.3
Ci-ln-812tb4k-72292-8bcj7-worker-a-zhdvk Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-b-9hrmv Ready worker 19m v1.32.3
ci-ln-812tb4k-72292-8bcj7-worker-c-q8mw2 Ready worker 19m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get clusteroperators</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
authentication 4.19.0-0 True False False 51m
baremetal 4.19.0-0 True False False 72m
cloud-controller-manager 4.19.0-0 True False False 75m
cloud-credential 4.19.0-0 True False False 77m
cluster-api 4.19.0-0 True False False 42m
cluster-autoscaler 4.19.0-0 True False False 72m
config-operator 4.19.0-0 True False False 72m
console 4.19.0-0 True False False 55m
...
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
authentication 4.19.0-0 True False False 51m
baremetal 4.19.0-0 True False False 72m
cloud-controller-manager 4.19.0-0 True False False 75m
cloud-credential 4.19.0-0 True False False 77m
cluster-api 4.19.0-0 True False False 42m
cluster-autoscaler 4.19.0-0 True False False 72m
config-operator 4.19.0-0 True False False 72m
console 4.19.0-0 True False False 55m
...</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-n</span> openshift-adp</span></span>
<span class="token output">NAME RECONCILED AGE
velero-sample True 2m51s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
annotations:
velero.io/restore-status: "true"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">metadata:
annotations:
velero.io/restore-status: "true"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
mark it as "Failed"
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">failureReason: found a backup with status "InProgress" during the server starting,
mark it as "Failed"</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">ERROR unable to determine if bucket exists. {"error": "open /tmp/aws-shared-credentials1211864681: read-only file system"}</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> yaml <span class="token operator">></span> dpa.orig.backup</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
backupPVC:
...
loadConcurrency:
...
podResources:
...
restorePVC:
...
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupPVC</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">restorePVC</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
dpa-sample True 2m51s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME RECONCILED AGE
dpa-sample True 2m51s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/node-agent-9pjz9 1/1 Running 0 3d17h
pod/node-agent-fmn84 1/1 Running 0 3d17h
pod/node-agent-xw2dg 1/1 Running 0 3d17h
pod/openshift-adp-controller-manager-76b8bc8d7b-kgkcw 1/1 Running 0 3d17h
pod/velero-64475b8c5b-nh2qc 1/1 Running 0 3d17h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/openshift-adp-controller-manager-metrics-service ClusterIP 172.30.194.192 <none> 8443/TCP 3d17h
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.190.174 <none> 8085/TCP 3d17h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 3d17h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/openshift-adp-controller-manager 1/1 1 1 3d17h
deployment.apps/velero 1/1 1 1 3d17h
NAME DESIRED CURRENT READY AGE
replicaset.apps/openshift-adp-controller-manager-76b8bc8d7b 1 1 1 3d17h
replicaset.apps/openshift-adp-controller-manager-85fff975b8 0 0 0 3d17h
replicaset.apps/velero-64475b8c5b 1 1 1 3d17h
replicaset.apps/velero-8b5bc54fd 0 0 0 3d17h
replicaset.apps/velero-f5c9ffb66 0 0 0 3d17h
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/node-agent-9pjz9 1/1 Running 0 3d17h
pod/node-agent-fmn84 1/1 Running 0 3d17h
pod/node-agent-xw2dg 1/1 Running 0 3d17h
pod/openshift-adp-controller-manager-76b8bc8d7b-kgkcw 1/1 Running 0 3d17h
pod/velero-64475b8c5b-nh2qc 1/1 Running 0 3d17h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/openshift-adp-controller-manager-metrics-service ClusterIP 172.30.194.192 <none> 8443/TCP 3d17h
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.190.174 <none> 8085/TCP 3d17h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 3d17h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/openshift-adp-controller-manager 1/1 1 1 3d17h
deployment.apps/velero 1/1 1 1 3d17h
NAME DESIRED CURRENT READY AGE
replicaset.apps/openshift-adp-controller-manager-76b8bc8d7b 1 1 1 3d17h
replicaset.apps/openshift-adp-controller-manager-85fff975b8 0 0 0 3d17h
replicaset.apps/velero-64475b8c5b 1 1 1 3d17h
replicaset.apps/velero-8b5bc54fd 0 0 0 3d17h
replicaset.apps/velero-f5c9ffb66 0 0 0 3d17h</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Requests specifying Server Side Encryption with Customer provided keys must provide the client calculated MD5 of the secret key.</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
mark it as "Failed".
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">found a podvolumebackup with status "InProgress" during the server starting,
mark it as "Failed".</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
snapshot : snapshot not found
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">data path restore failed: Failed to run kopia restore: Unable to load
snapshot : snapshot not found</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">The generated label name is too long.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--from-backup <BACKUP_NAME> \
--exclude-resources=deployment.apps
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero restore create <span class="token operator"><</span>RESTORE_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--from-backup <span class="token operator"><</span>BACKUP_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--exclude-resources<span class="token operator">=</span>deployment.apps</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--from-backup <BACKUP_NAME> \
--include-resources=deployment.apps
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero restore create <span class="token operator"><</span>RESTORE_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--from-backup <span class="token operator"><</span>BACKUP_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--include-resources<span class="token operator">=</span>deployment.apps</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> yaml <span class="token operator">></span> dpa.orig.backup</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/restic-9cq4q 1/1 Running 0 94s
pod/restic-m4lts 1/1 Running 0 94s
pod/restic-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/restic 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/restic-9cq4q 1/1 Running 0 94s
pod/restic-m4lts 1/1 Running 0 94s
pod/restic-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/restic 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: dpa-sample
spec:
configuration:
velero:
defaultPlugins:
- openshift
- aws
- azure
- gcp
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> azure
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: dpa-sample
spec:
configuration:
velero:
defaultPlugins:
- openshift
- azure
- gcp
customPlugins:
- name: custom-plugin-example
image: quay.io/example-repo/custom-velero-plugin
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> azure
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token key atrule"><span class="token key atrule">customPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> custom<span class="token punctuation"><span class="token punctuation">-</span></span>plugin<span class="token punctuation"><span class="token punctuation">-</span></span>example
<span class="token key atrule"><span class="token key atrule">image</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> quay.io/example<span class="token punctuation"><span class="token punctuation">-</span></span>repo/custom<span class="token punctuation"><span class="token punctuation">-</span></span>velero<span class="token punctuation"><span class="token punctuation">-</span></span>plugin</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item"
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label backupstoragelocations.velero.io <span class="token operator"><</span>bsl_name<span class="token operator">></span> app.kubernetes.io/component<span class="token operator">=</span>bsl</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp get secret/oadp-<span class="token operator"><</span>bsl_name<span class="token operator">></span>-<span class="token operator"><</span>bsl_provider<span class="token operator">></span>-registry-secret <span class="token parameter variable">-o</span> json <span class="token operator">|</span> jq <span class="token parameter variable">-r</span> <span class="token string">'.data'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: ObjectBucketClaim
metadata:
name: test-obc
namespace: openshift-adp
spec:
storageClassName: openshift-storage.noobaa.io
generateBucketName: test-backup-bucket
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> objectbucket.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ObjectBucketClaim
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>obc </code></pre><rh-badge id="CO5-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storageClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>storage.noobaa.io
<span class="token key atrule"><span class="token key atrule">generateBucketName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>bucket </code></pre><rh-badge id="CO5-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> <span class="token operator"><</span>obc_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO6-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc extract <span class="token parameter variable">--to</span><span class="token operator">=</span>- cm/test-obc </span></span></code></pre><rh-badge id="CO7-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
BUCKET_PORT
BUCKET_REGION
BUCKET_SUBREGION
BUCKET_HOST
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_NAME</span></span>
<span class="token output">backup-c20...41fd
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_PORT</span></span>
<span class="token output">443
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_REGION</span></span>
<span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_SUBREGION</span></span>
<span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_HOST</span></span>
<span class="token output">s3.openshift-storage.svc</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc extract <span class="token parameter variable">--to</span><span class="token operator">=</span>- secret/test-obc</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
AWS_SECRET_ACCESS_KEY
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">AWS_ACCESS_KEY_ID</span></span>
<span class="token output">ebYR....xLNMc
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">AWS_SECRET_ACCESS_KEY</span></span>
<span class="token output">YXf...+NaCkdyC3QPym</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get route s3 <span class="token parameter variable">-n</span> openshift-storage</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
cloud-credentials \
-n openshift-adp \
--from-file cloud=cloud-credentials
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic <span class="token punctuation">\</span>
cloud-credentials <span class="token punctuation">\</span>
<span class="token parameter variable">-n</span> openshift-adp <span class="token punctuation">\</span>
--from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>cloud-credentials</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- aws
- openshift
- csi
defaultSnapshotMoveData: true
backupLocations:
- velero:
config:
profile: "default"
region: noobaa
s3Url: https://s3.openshift-storage.svc
s3ForcePathStyle: "true"
insecureSkipTLSVerify: "true"
provider: aws
default: true
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: <bucket_name>
prefix: oadp
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">defaultSnapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO8-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> noobaa
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> https<span class="token punctuation"><span class="token punctuation">:</span></span>//s3.openshift<span class="token punctuation"><span class="token punctuation">-</span></span>storage.svc </code></pre><rh-badge id="CO8-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO8-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpa_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
items:
- apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
namespace: openshift-adp
#...#
spec:
backupLocations:
- velero:
config:
#...#
status:
conditions:
- lastTransitionTime: "20....9:54:02Z"
message: Reconcile complete
reason: Complete
status: "True"
type: Reconciled
kind: List
metadata:
resourceVersion: ""
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">items</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token comment"><span class="token comment">#...#</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment">#...#</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"20....9:54:02Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconcile complete
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Complete
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconciled
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> List
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 3s 15s true
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa-sample-1 Available 3s 15s true</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: test-backup
namespace: openshift-adp
spec:
includedNamespaces:
- <application_namespace>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <application_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO9-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>backup_cr_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe backup test-backup <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
Namespace: openshift-adp
# ....#
Status:
Backup Item Operations Attempted: 1
Backup Item Operations Completed: 1
Completion Timestamp: 2024-09-25T10:17:01Z
Expiration: 2024-10-25T10:16:31Z
Format Version: 1.1.0
Hook Status:
Phase: Completed
Progress:
Items Backed Up: 34
Total Items: 34
Start Timestamp: 2024-09-25T10:16:31Z
Version: 1
Events: <none>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Name: test-backup
Namespace: openshift-adp
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash"><span class="token punctuation">..</span><span class="token punctuation">..</span><span class="token comment">#</span></span></span>
<span class="token output">Status:
Backup Item Operations Attempted: 1
Backup Item Operations Completed: 1
Completion Timestamp: 2024-09-25T10:17:01Z
Expiration: 2024-10-25T10:16:31Z
Format Version: 1.1.0
Hook Status:
Phase: Completed
Progress:
Items Backed Up: 34
Total Items: 34
Start Timestamp: 2024-09-25T10:16:31Z
Version: 1
Events: <none></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: test-restore
namespace: openshift-adp
spec:
backupName: <backup_name>
restorePVs: true
namespaceMapping:
<application_namespace>: test-restore-application
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>restore </code></pre><rh-badge id="CO10-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO10-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">restorePVs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">namespaceMapping</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule"><application_namespace></span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>restore<span class="token punctuation"><span class="token punctuation">-</span></span>application </code></pre><rh-badge id="CO10-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>restore_cr_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe restores.velero.io <span class="token operator"><</span>restore_name<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc project test-restore-application</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pvc,svc,deployment,secret,configmap</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
persistentvolumeclaim/mysql Bound pvc-9b3583db-...-14b86
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mysql ClusterIP 172....157 <none> 3306/TCP 2m56s
service/todolist ClusterIP 172.....15 <none> 8000/TCP 2m56s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mysql 0/1 1 0 2m55s
NAME TYPE DATA AGE
secret/builder-dockercfg-6bfmd kubernetes.io/dockercfg 1 2m57s
secret/default-dockercfg-hz9kz kubernetes.io/dockercfg 1 2m57s
secret/deployer-dockercfg-86cvd kubernetes.io/dockercfg 1 2m57s
secret/mysql-persistent-sa-dockercfg-rgp9b kubernetes.io/dockercfg 1 2m57s
NAME DATA AGE
configmap/kube-root-ca.crt 1 2m57s
configmap/openshift-service-ca.crt 1 2m57s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS VOLUME
persistentvolumeclaim/mysql Bound pvc-9b3583db-...-14b86
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/mysql ClusterIP 172....157 <none> 3306/TCP 2m56s
service/todolist ClusterIP 172.....15 <none> 8000/TCP 2m56s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/mysql 0/1 1 0 2m55s
NAME TYPE DATA AGE
secret/builder-dockercfg-6bfmd kubernetes.io/dockercfg 1 2m57s
secret/default-dockercfg-hz9kz kubernetes.io/dockercfg 1 2m57s
secret/deployer-dockercfg-86cvd kubernetes.io/dockercfg 1 2m57s
secret/mysql-persistent-sa-dockercfg-rgp9b kubernetes.io/dockercfg 1 2m57s
NAME DATA AGE
configmap/kube-root-ca.crt 1 2m57s
configmap/openshift-service-ca.crt 1 2m57s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: ObjectBucketClaim
metadata:
name: test-obc
namespace: openshift-adp
spec:
storageClassName: openshift-storage.noobaa.io
generateBucketName: test-backup-bucket
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> objectbucket.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ObjectBucketClaim
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>obc </code></pre><rh-badge id="CO11-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storageClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>storage.noobaa.io
<span class="token key atrule"><span class="token key atrule">generateBucketName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>bucket </code></pre><rh-badge id="CO11-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> <span class="token operator"><</span>obc_file_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc extract <span class="token parameter variable">--to</span><span class="token operator">=</span>- cm/test-obc </span></span></code></pre><rh-badge id="CO12-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
BUCKET_PORT
BUCKET_REGION
BUCKET_SUBREGION
BUCKET_HOST
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_NAME</span></span>
<span class="token output">backup-c20...41fd
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_PORT</span></span>
<span class="token output">443
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_REGION</span></span>
<span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_SUBREGION</span></span>
<span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">BUCKET_HOST</span></span>
<span class="token output">s3.openshift-storage.svc</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc extract <span class="token parameter variable">--to</span><span class="token operator">=</span>- secret/test-obc</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
AWS_SECRET_ACCESS_KEY
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">AWS_ACCESS_KEY_ID</span></span>
<span class="token output">ebYR....xLNMc
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">AWS_SECRET_ACCESS_KEY</span></span>
<span class="token output">YXf...+NaCkdyC3QPym</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
cloud-credentials \
-n openshift-adp \
--from-file cloud=cloud-credentials
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic <span class="token punctuation">\</span>
cloud-credentials <span class="token punctuation">\</span>
<span class="token parameter variable">-n</span> openshift-adp <span class="token punctuation">\</span>
--from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>cloud-credentials</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
-o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get cm/openshift-service-ca.crt <span class="token punctuation">\</span>
<span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.data.service-ca\.crt}'</span> <span class="token operator">|</span> base64 -w0<span class="token punctuation">;</span> <span class="token builtin class-name">echo</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
....gpwOHMwaG9CRmk5a3....FLS0tLS0K
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0...
....gpwOHMwaG9CRmk5a3....FLS0tLS0K</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- aws
- openshift
- csi
defaultSnapshotMoveData: true
backupLocations:
- velero:
config:
profile: "default"
region: noobaa
s3Url: https://s3.openshift-storage.svc
s3ForcePathStyle: "true"
insecureSkipTLSVerify: "false"
provider: aws
default: true
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: <bucket_name>
prefix: oadp
caCert: <ca_cert>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">defaultSnapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> noobaa
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> https<span class="token punctuation"><span class="token punctuation">:</span></span>//s3.openshift<span class="token punctuation"><span class="token punctuation">-</span></span>storage.svc
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"false"</span></span> </code></pre><rh-badge id="CO13-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO13-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp
<span class="token key atrule"><span class="token key atrule">caCert</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <ca_cert<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO13-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpa_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
items:
- apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
namespace: openshift-adp
#...#
spec:
backupLocations:
- velero:
config:
#...#
status:
conditions:
- lastTransitionTime: "20....9:54:02Z"
message: Reconcile complete
reason: Complete
status: "True"
type: Reconciled
kind: List
metadata:
resourceVersion: ""
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">items</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token comment"><span class="token comment">#...#</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment">#...#</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"20....9:54:02Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconcile complete
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Complete
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconciled
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> List
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 3s 15s true
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa-sample-1 Available 3s 15s true</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: test-backup
namespace: openshift-adp
spec:
includedNamespaces:
- <application_namespace>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <application_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO14-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>backup_cr_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe backup test-backup <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
Namespace: openshift-adp
# ....#
Status:
Backup Item Operations Attempted: 1
Backup Item Operations Completed: 1
Completion Timestamp: 2024-09-25T10:17:01Z
Expiration: 2024-10-25T10:16:31Z
Format Version: 1.1.0
Hook Status:
Phase: Completed
Progress:
Items Backed Up: 34
Total Items: 34
Start Timestamp: 2024-09-25T10:16:31Z
Version: 1
Events: <none>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Name: test-backup
Namespace: openshift-adp
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash"><span class="token punctuation">..</span><span class="token punctuation">..</span><span class="token comment">#</span></span></span>
<span class="token output">Status:
Backup Item Operations Attempted: 1
Backup Item Operations Completed: 1
Completion Timestamp: 2024-09-25T10:17:01Z
Expiration: 2024-10-25T10:16:31Z
Format Version: 1.1.0
Hook Status:
Phase: Completed
Progress:
Items Backed Up: 34
Total Items: 34
Start Timestamp: 2024-09-25T10:16:31Z
Version: 1
Events: <none></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- legacy-aws
- openshift
- csi
defaultSnapshotMoveData: true
backupLocations:
- velero:
config:
profile: "default"
region: noobaa
s3Url: https://s3.openshift-storage.svc
s3ForcePathStyle: "true"
insecureSkipTLSVerify: "true"
provider: aws
default: true
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: <bucket_name>
prefix: oadp
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> legacy<span class="token punctuation"><span class="token punctuation">-</span></span>aws </code></pre><rh-badge id="CO15-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">defaultSnapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> noobaa
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> https<span class="token punctuation"><span class="token punctuation">:</span></span>//s3.openshift<span class="token punctuation"><span class="token punctuation">-</span></span>storage.svc
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO15-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpa_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
items:
- apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
namespace: openshift-adp
#...#
spec:
backupLocations:
- velero:
config:
#...#
status:
conditions:
- lastTransitionTime: "20....9:54:02Z"
message: Reconcile complete
reason: Complete
status: "True"
type: Reconciled
kind: List
metadata:
resourceVersion: ""
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">items</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token comment"><span class="token comment">#...#</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment">#...#</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"20....9:54:02Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconcile complete
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Complete
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconciled
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> List
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 3s 15s true
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa-sample-1 Available 3s 15s true</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: test-backup
namespace: openshift-adp
spec:
includedNamespaces:
- <application_namespace>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <application_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO16-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>backup_cr_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe backups.velero.io test-backup <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
Namespace: openshift-adp
# ....#
Status:
Backup Item Operations Attempted: 1
Backup Item Operations Completed: 1
Completion Timestamp: 2024-09-25T10:17:01Z
Expiration: 2024-10-25T10:16:31Z
Format Version: 1.1.0
Hook Status:
Phase: Completed
Progress:
Items Backed Up: 34
Total Items: 34
Start Timestamp: 2024-09-25T10:16:31Z
Version: 1
Events: <none>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Name: test-backup
Namespace: openshift-adp
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash"><span class="token punctuation">..</span><span class="token punctuation">..</span><span class="token comment">#</span></span></span>
<span class="token output">Status:
Backup Item Operations Attempted: 1
Backup Item Operations Completed: 1
Completion Timestamp: 2024-09-25T10:17:01Z
Expiration: 2024-10-25T10:16:31Z
Format Version: 1.1.0
Hook Status:
Phase: Completed
Progress:
Items Backed Up: 34
Total Items: 34
Start Timestamp: 2024-09-25T10:16:31Z
Version: 1
Events: <none></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create namespace hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc new-app <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">--image</span><span class="token operator">=</span>docker.io/openshift/hello-openshift</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc expose service/hello-openshift <span class="token parameter variable">-n</span> hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">curl</span> <span class="token variable"><span class="token variable">`</span>oc get route/hello-openshift <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.host}'</span><span class="token variable">`</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Hello OpenShift!</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
kind: Backup
metadata:
name: hello-world
namespace: openshift-adp
spec:
includedNamespaces:
- hello-world
storageLocation: ${CLUSTER_NAME}-dpa-1
ttl: 720h0m0s
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: velero.io/v1
kind: Backup
metadata:
name: hello-world
namespace: openshift-adp
spec:
includedNamespaces:
- hello-world
storageLocation: <span class="token variable">${CLUSTER_NAME}</span>-dpa-1
ttl: 720h0m0s
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">watch</span> <span class="token string">"oc -n openshift-adp get backup hello-world -o json | jq .status"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"completionTimestamp": "2022-09-07T22:20:44Z",
"expiration": "2022-10-07T22:20:22Z",
"formatVersion": "1.1.0",
"phase": "Completed",
"progress": {
"itemsBackedUp": 58,
"totalItems": 58
},
"startTimestamp": "2022-09-07T22:20:22Z",
"version": 1
}
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">{
"completionTimestamp": "2022-09-07T22:20:44Z",
"expiration": "2022-10-07T22:20:22Z",
"formatVersion": "1.1.0",
"phase": "Completed",
"progress": {
"itemsBackedUp": 58,
"totalItems": 58
},
"startTimestamp": "2022-09-07T22:20:22Z",
"version": 1
}</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
kind: Restore
metadata:
name: hello-world
namespace: openshift-adp
spec:
backupName: hello-world
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: velero.io/v1
kind: Restore
metadata:
name: hello-world
namespace: openshift-adp
spec:
backupName: hello-world
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">watch</span> <span class="token string">"oc -n openshift-adp get restore hello-world -o json | jq .status"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"completionTimestamp": "2022-09-07T22:25:47Z",
"phase": "Completed",
"progress": {
"itemsRestored": 38,
"totalItems": 38
},
"startTimestamp": "2022-09-07T22:25:28Z",
"warnings": 9
}
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">{
"completionTimestamp": "2022-09-07T22:25:47Z",
"phase": "Completed",
"progress": {
"itemsRestored": 38,
"totalItems": 38
},
"startTimestamp": "2022-09-07T22:25:28Z",
"warnings": 9
}</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> hello-world get pods</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME READY STATUS RESTARTS AGE
hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">curl</span> <span class="token variable"><span class="token variable">`</span>oc get route/hello-openshift <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.host}'</span><span class="token variable">`</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Hello OpenShift!</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete dpa <span class="token variable">${CLUSTER_NAME}</span>-dpa</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete cloudstorage <span class="token variable">${CLUSTER_NAME}</span>-oadp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp patch cloudstorage <span class="token variable">${CLUSTER_NAME}</span>-oadp <span class="token parameter variable">-p</span> <span class="token string">'{"metadata":{"finalizers":null}}'</span> <span class="token parameter variable">--type</span><span class="token operator">=</span>merge</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete subscription oadp-operator</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete backups.velero.io hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup delete hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">CRD</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">`</span>oc get crds <span class="token operator">|</span> <span class="token function">grep</span> velero <span class="token operator">|</span> <span class="token function">awk</span> <span class="token string">'{print $1}'</span><span class="token variable">`</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> oc delete crd <span class="token variable">$CRD</span><span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3 <span class="token function">rm</span> s3://<span class="token variable">${CLUSTER_NAME}</span>-oadp <span class="token parameter variable">--recursive</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3api delete-bucket <span class="token parameter variable">--bucket</span> <span class="token variable">${CLUSTER_NAME}</span>-oadp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam detach-role-policy --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span> --policy-arn <span class="token string">"<span class="token variable">${POLICY_ARN}</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam delete-role --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">BUCKET</span><span class="token operator">=</span><span class="token operator"><</span>your_bucket<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">REGION</span><span class="token operator">=</span><span class="token operator"><</span>your_region<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--bucket $BUCKET \
--region $REGION \
--create-bucket-configuration LocationConstraint=$REGION
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3api create-bucket <span class="token punctuation">\</span>
<span class="token parameter variable">--bucket</span> <span class="token variable">$BUCKET</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--region</span> <span class="token variable">$REGION</span> <span class="token punctuation">\</span>
--create-bucket-configuration <span class="token assign-left variable">LocationConstraint</span><span class="token operator">=</span><span class="token variable">$REGION</span> </span></span></code></pre><rh-badge id="CO17-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam create-user --user-name velero </span></span></code></pre><rh-badge id="CO18-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeVolumes",
"ec2:DescribeSnapshots",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:DeleteObject",
"s3:PutObject",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::${BUCKET}/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::${BUCKET}"
]
}
]
}
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator">></span> velero-policy.json <span class="token operator"><<</span><span class="token string">EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:DescribeVolumes",
"ec2:DescribeSnapshots",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:DeleteObject",
"s3:PutObject",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::<span class="token variable">${BUCKET}</span>/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::<span class="token variable">${BUCKET}</span>"
]
}
]
}
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--user-name velero \
--policy-name velero \
--policy-document file://velero-policy.json
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam put-user-policy <span class="token punctuation">\</span>
--user-name velero <span class="token punctuation">\</span>
--policy-name velero <span class="token punctuation">\</span>
--policy-document file://velero-policy.json</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam create-access-key --user-name velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"AccessKey": {
"UserName": "velero",
"Status": "Active",
"CreateDate": "2017-07-31T22:24:41.576Z",
"SecretAccessKey": <AWS_SECRET_ACCESS_KEY>,
"AccessKeyId": <AWS_ACCESS_KEY_ID>
}
}
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">{
"AccessKey": {
"UserName": "velero",
"Status": "Active",
"CreateDate": "2017-07-31T22:24:41.576Z",
"SecretAccessKey": <AWS_SECRET_ACCESS_KEY>,
"AccessKeyId": <AWS_ACCESS_KEY_ID>
}
}</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">></span> ./credentials-velero</span>
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[volumeSnapshot]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">[backupStorage]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[volumeSnapshot]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero </span></span></code></pre><rh-badge id="CO19-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
...
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
region: us-east-1
profile: "backupStorage"
credential:
key: cloud
name: cloud-credentials
snapshotLocations:
- velero:
provider: aws
config:
region: us-west-2
profile: "volumeSnapshot"
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>east<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"backupStorage"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>west<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"volumeSnapshot"</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: BackupStorageLocation
metadata:
name: default
namespace: openshift-adp
spec:
provider: aws
objectStorage:
bucket: <bucket_name>
prefix: <bucket_prefix>
credential:
key: cloud
name: cloud-credentials
config:
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <s3_url>
publicUrl: <public_s3_url>
serverSideEncryption: AES256
kmsKeyId: "50..c-4da1-419f-a16e-ei...49f"
customerKeyEncryptionFile: "/credentials/customer-key"
signatureVersion: "1"
profile: "default"
insecureSkipTLSVerify: "true"
enableSharedConfig: "true"
tagging: ""
checksumAlgorithm: "CRC32"
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupStorageLocation
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws </code></pre><rh-badge id="CO19-2" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO19-3" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO19-4" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO19-5" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud </code></pre><rh-badge id="CO19-6" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO19-7" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO19-8" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span> </code></pre><rh-badge id="CO19-9" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <s3_url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO19-10" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">publicUrl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <public_s3_url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO19-11" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">serverSideEncryption</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> AES256 </code></pre><rh-badge id="CO19-12" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">kmsKeyId</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"50..c-4da1-419f-a16e-ei...49f"</span></span> </code></pre><rh-badge id="CO19-13" state="info">12</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">customerKeyEncryptionFile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"/credentials/customer-key"</span></span> </code></pre><rh-badge id="CO19-14" state="info">13</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">signatureVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span> </code></pre><rh-badge id="CO19-15" state="info">14</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span> </code></pre><rh-badge id="CO19-16" state="info">15</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span> </code></pre><rh-badge id="CO19-17" state="info">16</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enableSharedConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span> </code></pre><rh-badge id="CO19-18" state="info">17</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">tagging</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span> </code></pre><rh-badge id="CO19-19" state="info">18</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">checksumAlgorithm</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"CRC32"</span></span> </code></pre><rh-badge id="CO19-20" state="info">19</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
- velero:
config:
profile: default
region: <region>
provider: aws
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">dd</span> <span class="token assign-left variable">if</span><span class="token operator">=</span>/dev/urandom <span class="token assign-left variable">bs</span><span class="token operator">=</span><span class="token number">1</span> <span class="token assign-left variable">count</span><span class="token operator">=</span><span class="token number">32</span> <span class="token operator">></span> sse.key</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">--namespace</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span><span class="token operator"><</span>path<span class="token operator">></span>/openshift_aws_credentials,customer-key<span class="token operator">=</span><span class="token operator"><</span>path<span class="token operator">></span>/sse.key</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
data:
cloud: W2Rfa2V5X2lkPSJBS0lBVkJRWUIyRkQ0TlFHRFFPQiIKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5P<snip>rUE1mNWVSbTN5K2FpeWhUTUQyQk1WZHBOIgo=
customer-key: v+<snip>TFIiq6aaXPbj8dhos=
kind: Secret
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">data</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cloud</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> W2Rfa2V5X2lkPSJBS0lBVkJRWUIyRkQ0TlFHRFFPQiIKYXdzX3NlY3JldF9hY2Nlc3Nfa2V5P<snip<span class="token punctuation"><span class="token punctuation">></span></span>rUE1mNWVSbTN5K2FpeWhUTUQyQk1WZHBOIgo=
<span class="token key atrule"><span class="token key atrule">customer-key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v+<snip<span class="token punctuation"><span class="token punctuation">></span></span>TFIiq6aaXPbj8dhos=
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Secret
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
backupLocations:
- velero:
config:
customerKeyEncryptionFile: /credentials/customer-key
profile: default
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">customerKeyEncryptionFile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /credentials/customer<span class="token punctuation"><span class="token punctuation">-</span></span>key
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">echo</span> <span class="token string">"encrypt me please"</span> <span class="token operator">></span> test.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--bucket <bucket> \
--key test.txt \
--body test.txt \
--sse-customer-key fileb://sse.key \
--sse-customer-algorithm AES256
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3api put-object <span class="token punctuation">\</span>
<span class="token parameter variable">--bucket</span> <span class="token operator"><</span>bucket<span class="token operator">></span> <span class="token punctuation">\</span>
<span class="token parameter variable">--key</span> test.txt <span class="token punctuation">\</span>
<span class="token parameter variable">--body</span> test.txt <span class="token punctuation">\</span>
--sse-customer-key fileb://sse.key <span class="token punctuation">\</span>
--sse-customer-algorithm AES256</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">s3cmd get s3://<span class="token operator"><</span>bucket<span class="token operator">></span>/test.txt test.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--bucket <bucket> \
--key test.txt \
--sse-customer-key fileb://sse.key \
--sse-customer-algorithm AES256 \
downloaded.txt
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3api get-object <span class="token punctuation">\</span>
<span class="token parameter variable">--bucket</span> <span class="token operator"><</span>bucket<span class="token operator">></span> <span class="token punctuation">\</span>
<span class="token parameter variable">--key</span> test.txt <span class="token punctuation">\</span>
--sse-customer-key fileb://sse.key <span class="token punctuation">\</span>
--sse-customer-algorithm AES256 <span class="token punctuation">\</span>
downloaded.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> downloaded.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">encrypt me please</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--bucket <bucket> \
--key velero/backups/mysql-persistent-customerkeyencryptionfile4/mysql-persistent-customerkeyencryptionfile4.tar.gz \
--sse-customer-key fileb://sse.key \
--sse-customer-algorithm AES256 \
--debug \
velero_download.tar.gz
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3api get-object <span class="token punctuation">\</span>
<span class="token parameter variable">--bucket</span> <span class="token operator"><</span>bucket<span class="token operator">></span> <span class="token punctuation">\</span>
<span class="token parameter variable">--key</span> velero/backups/mysql-persistent-customerkeyencryptionfile4/mysql-persistent-customerkeyencryptionfile4.tar.gz <span class="token punctuation">\</span>
--sse-customer-key fileb://sse.key <span class="token punctuation">\</span>
--sse-customer-algorithm AES256 <span class="token punctuation">\</span>
<span class="token parameter variable">--debug</span> <span class="token punctuation">\</span>
velero_download.tar.gz</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
configuration:
velero:
podConfig:
nodeSelector: <node_selector>
resourceAllocations:
limits:
cpu: "1"
memory: 1024Mi
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO20-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO20-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">limits</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span>
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1024Mi
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket>
prefix: <prefix>
caCert: <base64_encoded_cert_string>
config:
insecureSkipTLSVerify: "false"
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">caCert</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <base64_encoded_cert_string<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO21-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"false"</span></span> </code></pre><rh-badge id="CO21-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">alias</span> <span class="token assign-left variable">velero</span><span class="token operator">=</span><span class="token string">'oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero version</span></span>
<span class="token output">Client:
Version: v1.12.1-OADP
Git commit: -
Server:
Version: v1.12.1-OADP</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">CA_CERT</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>oc <span class="token parameter variable">-n</span> openshift-adp get dataprotectionapplications.oadp.openshift.io <span class="token operator"><</span>dpa-name<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.backupLocations[0].velero.objectStorage.caCert}'</span><span class="token variable">)</span></span></span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token variable">$CA_CERT</span> <span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token operator">&&</span> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$CA_CERT</span>"</span> <span class="token operator">|</span> base64 <span class="token parameter variable">-d</span> <span class="token operator">|</span> oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"cat > /tmp/your-cacert.txt"</span> <span class="token operator">||</span> <span class="token builtin class-name">echo</span> <span class="token string">"DPA BSL has no caCert"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe backup <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert<span class="token operator">></span>.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup logs <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert.txt<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"ls /tmp/your-cacert.txt"</span></span></span>
<span class="token output">/tmp/your-cacert.txt</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
configuration:
velero:
defaultPlugins:
- openshift
- aws
resourceTimeout: 10m
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector: <node_selector>
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
region: <region>
profile: "default"
s3ForcePathStyle: "true"
s3Url: <s3_url>
credential:
key: cloud
name: cloud-credentials
snapshotLocations:
- name: default
velero:
provider: aws
config:
region: <region>
profile: "default"
credential:
key: cloud
name: cloud-credentials
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp </code></pre><rh-badge id="CO22-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift </code></pre><rh-badge id="CO22-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m </code></pre><rh-badge id="CO22-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO22-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO22-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO22-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO22-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO22-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO22-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span> </code></pre><rh-badge id="CO22-10" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <s3_url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO22-11" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO22-12" state="info">12</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO22-13" state="info">13</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO22-14" state="info">14</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO22-15" state="info">15</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> node-role.kubernetes.io/nodeAgent<span class="token operator">=</span><span class="token string">""</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
checksumAlgorithm: ""
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
velero:
defaultPlugins:
- openshift
- aws
- csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">checksumAlgorithm</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span> </code></pre><rh-badge id="CO23-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> csi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: restic
velero:
client-burst: 500
client-qps: 300
defaultPlugins:
- openshift
- aws
- kubevirt
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">client-burst</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">500</span></span> </code></pre><rh-badge id="CO24-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">client-qps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">300</span></span> </code></pre><rh-badge id="CO24-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">other-label.io/other-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
loadAffinity:
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions:
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO25-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO25-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> node1
<span class="token punctuation"><span class="token punctuation">-</span></span> node2
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'US'</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> label.io/instance-type<span class="token operator">=</span><span class="token string">'large'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1
perNodeConfig:
- nodeSelector:
matchLabels:
label.io/instance-type: large
number: 3
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">globalConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO26-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">perNodeConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/instance-type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> large </code></pre><rh-badge id="CO26-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">number</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">3</span></span> </code></pre><rh-badge id="CO26-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
backupLocations:
- velero:
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: gcp
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- csi
- gcp
- openshift
disableFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO27-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token key atrule"><span class="token key atrule">disableFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO27-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get daemonset node-agent <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DaemonSet
metadata:
...
name: node-agent
namespace: openshift-adp
...
spec:
...
template:
metadata:
...
spec:
containers:
...
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
...
nodeSelector:
kubernetes.io/os: linux
os:
name: linux
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccount: velero
serviceAccountName: velero
....
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> apps/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DaemonSet
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> node<span class="token punctuation"><span class="token punctuation">-</span></span>agent
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">template</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">containers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">allowPrivilegeEscalation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO28-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">capabilities</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">drop</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ALL
<span class="token key atrule"><span class="token key atrule">privileged</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO28-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">readOnlyRootFilesystem</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO28-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kubernetes.io/os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">restartPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Always
<span class="token key atrule"><span class="token key atrule">schedulerName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default<span class="token punctuation"><span class="token punctuation">-</span></span>scheduler
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">runAsNonRoot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO28-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">seccompProfile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RuntimeDefault
<span class="token key atrule"><span class="token key atrule">serviceAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">serviceAccountName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token punctuation"><span class="token punctuation">...</span></span>.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
global:
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO29-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">global</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO29-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpuRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100m"</span></span>
<span class="token key atrule"><span class="token key atrule">cpuLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200m"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
myrepositoryname:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">myrepositoryname</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO30-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'yes'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">some-label.io/custom-node-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>core</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- kubevirt
- csi
imagePullPolicy: Never
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">imagePullPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Never </code></pre><rh-badge id="CO31-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
#...
backupLocations:
- name: aws
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
region: <region_name>
profile: "default"
credential:
key: cloud
name: cloud-credentials
- name: odf
velero:
provider: aws
default: false
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
profile: "default"
region: <region_name>
s3Url: <url>
insecureSkipTLSVerify: "true"
s3ForcePathStyle: "true"
credential:
key: cloud
name: <custom_secret_name_odf>
#...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token comment"><span class="token comment">#...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws </code></pre><rh-badge id="CO32-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO32-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO32-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO32-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO32-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO32-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> odf </code></pre><rh-badge id="CO32-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO32-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret_name_odf<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO32-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment">#...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
# ...
spec:
includedNamespaces:
- <namespace>
storageLocation: <backup_storage_location>
defaultVolumesToFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO33-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_storage_location<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO33-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
configuration:
velero:
defaultPlugins:
- openshift
- csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO34-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: false
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO35-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: true
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO36-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud plugin <span class="token function">install</span> cos <span class="token parameter variable">-f</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">BUCKET</span><span class="token operator">=</span><span class="token operator"><</span>bucket_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">REGION</span><span class="token operator">=</span><span class="token operator"><</span>bucket_region<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO37-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud resource group-create <span class="token operator"><</span>resource_group_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud target <span class="token parameter variable">-g</span> <span class="token operator"><</span>resource_group_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud target</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
Region:
User: test-user
Account: Test Account (fb6......e95) <-> 2...122
Resource group: Default
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">API endpoint</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> https<span class="token punctuation"><span class="token punctuation">:</span></span>//cloud.ibm.com
<span class="token key atrule"><span class="token key atrule">Region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">User</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>user
<span class="token key atrule"><span class="token key atrule">Account</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Test Account (fb6<span class="token punctuation"><span class="token punctuation">...</span></span><span class="token punctuation"><span class="token punctuation">...</span></span>e95) <<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token punctuation"><span class="token punctuation">></span></span> 2<span class="token punctuation"><span class="token punctuation">...</span></span>122
<span class="token key atrule"><span class="token key atrule">Resource group</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Default</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">RESOURCE_GROUP</span><span class="token operator">=</span><span class="token operator"><</span>resource_group<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO38-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<service_instance_name> \
<service_name> \
<service_plan> \
<region_name>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud resource service-instance-create <span class="token punctuation">\</span>
<span class="token operator"><</span>service_instance_name<span class="token operator">></span> </span></span><span class="token output">\</span></code></pre><rh-badge id="CO39-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"><service_name> \</span></code></pre><rh-badge id="CO39-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"><service_plan> \</span></code></pre><rh-badge id="CO39-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"><region_name> </span></code></pre><rh-badge id="CO39-4" state="info">4</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
standard \
global \
-d premium-global-deployment
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud resource service-instance-create test-service-instance cloud-object-storage <span class="token punctuation">\</span> </span></span></code></pre><rh-badge id="CO40-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">standard \
global \
-d premium-global-deployment </span></code></pre><rh-badge id="CO40-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">SERVICE_INSTANCE_ID</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>ibmcloud resource service-instance test-service-instance <span class="token parameter variable">--output</span> json <span class="token operator">|</span> jq <span class="token parameter variable">-r</span> <span class="token string">'.[0].id'</span><span class="token variable">)</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud cos bucket-create <span class="token punctuation">\</span>//</span></span>
<span class="token output">--bucket $BUCKET \//
--ibm-service-instance-id $SERVICE_INSTANCE_ID \//
--region $REGION</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ibmcloud resource service-key-create test-key Writer --instance-name test-service-instance <span class="token parameter variable">--parameters</span> <span class="token punctuation">{</span><span class="token punctuation">\</span>"HMAC<span class="token punctuation">\</span>":true<span class="token punctuation">}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[default]
aws_access_key_id=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.access_key_id')
aws_secret_access_key=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.secret_access_key')
__EOF__
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator">></span> credentials-velero <span class="token operator"><<</span> <span class="token string">__EOF__
[default]
aws_access_key_id=<span class="token variable"><span class="token variable">$(</span>ibmcloud resource service-key test-key <span class="token parameter variable">-o</span> json <span class="token operator">|</span> jq <span class="token parameter variable">-r</span> <span class="token string">'.[0].credentials.cos_hmac_keys.access_key_id'</span><span class="token variable">)</span></span>
aws_secret_access_key=<span class="token variable"><span class="token variable">$(</span>ibmcloud resource service-key test-key <span class="token parameter variable">-o</span> json <span class="token operator">|</span> jq <span class="token parameter variable">-r</span> <span class="token string">'.[0].credentials.cos_hmac_keys.secret_access_key'</span><span class="token variable">)</span></span>
__EOF__</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic <span class="token operator"><</span>custom_secret<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
...
backupLocations:
- velero:
provider: <provider>
default: true
credential:
key: cloud
name: <custom_secret>
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <provider<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO41-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
namespace: openshift-adp
name: <dpa_name>
spec:
configuration:
velero:
defaultPlugins:
- openshift
- aws
- csi
backupLocations:
- velero:
provider: aws
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
config:
insecureSkipTLSVerify: 'true'
profile: default
region: <region_name>
s3ForcePathStyle: 'true'
s3Url: <s3_url>
credential:
key: cloud
name: cloud-credentials
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws </code></pre><rh-badge id="CO42-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO42-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'true'</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO42-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'true'</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <s3_url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO42-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO42-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
configuration:
velero:
podConfig:
nodeSelector: <node_selector>
resourceAllocations:
limits:
cpu: "1"
memory: 1024Mi
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO43-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO43-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">limits</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span>
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1024Mi
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> node-role.kubernetes.io/nodeAgent<span class="token operator">=</span><span class="token string">""</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: restic
velero:
client-burst: 500
client-qps: 300
defaultPlugins:
- openshift
- aws
- kubevirt
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">client-burst</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">500</span></span> </code></pre><rh-badge id="CO44-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">client-qps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">300</span></span> </code></pre><rh-badge id="CO44-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">other-label.io/other-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
loadAffinity:
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions:
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO45-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO45-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> node1
<span class="token punctuation"><span class="token punctuation">-</span></span> node2
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'US'</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> label.io/instance-type<span class="token operator">=</span><span class="token string">'large'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1
perNodeConfig:
- nodeSelector:
matchLabels:
label.io/instance-type: large
number: 3
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">globalConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO46-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">perNodeConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/instance-type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> large </code></pre><rh-badge id="CO46-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">number</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">3</span></span> </code></pre><rh-badge id="CO46-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
global:
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO47-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">global</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO47-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpuRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100m"</span></span>
<span class="token key atrule"><span class="token key atrule">cpuLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200m"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
myrepositoryname:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">myrepositoryname</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO48-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'yes'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">some-label.io/custom-node-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>core</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- kubevirt
- csi
imagePullPolicy: Never
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">imagePullPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Never </code></pre><rh-badge id="CO49-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
#...
backupLocations:
- name: aws
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
region: <region_name>
profile: "default"
credential:
key: cloud
name: cloud-credentials
- name: odf
velero:
provider: aws
default: false
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
profile: "default"
region: <region_name>
s3Url: <url>
insecureSkipTLSVerify: "true"
s3ForcePathStyle: "true"
credential:
key: cloud
name: <custom_secret_name_odf>
#...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token comment"><span class="token comment">#...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws </code></pre><rh-badge id="CO50-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO50-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO50-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO50-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO50-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO50-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> odf </code></pre><rh-badge id="CO50-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO50-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret_name_odf<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO50-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment">#...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
# ...
spec:
includedNamespaces:
- <namespace>
storageLocation: <backup_storage_location>
defaultVolumesToFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO51-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_storage_location<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO51-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: false
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO52-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: true
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO53-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
AZURE_TENANT_ID=<azure_tenant_id>
AZURE_CLIENT_ID=<azure_client_id>
AZURE_CLIENT_SECRET=<azure_client_secret>
AZURE_RESOURCE_GROUP=<azure_resource_group>
AZURE_CLOUD_NAME=<azure_cloud_name>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">AZURE_SUBSCRIPTION_ID=<azure_subscription_id>
AZURE_TENANT_ID=<azure_tenant_id>
AZURE_CLIENT_ID=<azure_client_id>
AZURE_CLIENT_SECRET=<azure_client_secret>
AZURE_RESOURCE_GROUP=<azure_resource_group>
AZURE_CLOUD_NAME=<azure_cloud_name></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
AZURE_SUBSCRIPTION_ID=<azure_subscription_id>
AZURE_RESOURCE_GROUP=<azure_resource_group>
AZURE_CLOUD_NAME=<azure_cloud_name>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<azure_storage_account_access_key>
AZURE_SUBSCRIPTION_ID=<azure_subscription_id>
AZURE_RESOURCE_GROUP=<azure_resource_group>
AZURE_CLOUD_NAME=<azure_cloud_name></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials-azure <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
...
backupLocations:
- velero:
config:
resourceGroup: <azure_resource_group>
storageAccount: <azure_storage_account_id>
subscriptionId: <azure_subscription_id>
credential:
key: cloud
name: <custom_secret>
provider: azure
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
snapshotLocations:
- velero:
config:
resourceGroup: <azure_resource_group>
subscriptionId: <azure_subscription_id>
incremental: "true"
provider: azure
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceGroup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_resource_group<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">storageAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_storage_account_id<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">subscriptionId</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_subscription_id<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO54-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> azure
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceGroup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_resource_group<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">subscriptionId</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_subscription_id<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">incremental</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> azure</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
export CLUSTER_NAME=$(echo "$API_URL" | sed 's|https://api\.||' | sed 's|\..*||')
export CLUSTER_RESOURCE_GROUP="${CLUSTER_NAME}-rg"
# Get Azure information
export AZURE_SUBSCRIPTION_ID=$(az account show --query id -o tsv)
export AZURE_TENANT_ID=$(az account show --query tenantId -o tsv)
# Set names for resources
export IDENTITY_NAME="velero"
export APP_NAME="velero-${CLUSTER_NAME}"
export STORAGE_ACCOUNT_NAME=$(echo "velero${CLUSTER_NAME}" | tr -d '-' | tr '[:upper:]' '[:lower:]' | cut -c1-24)
export CONTAINER_NAME="velero"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">export API_URL=$(oc whoami --show-server) # Get cluster information
export CLUSTER_NAME=$(echo "$API_URL" | sed 's|https://api\.||' | sed 's|\..*||')
export CLUSTER_RESOURCE_GROUP="${CLUSTER_NAME}-rg"
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">Get Azure information</span></span>
<span class="token output">export AZURE_SUBSCRIPTION_ID=$(az account show --query id -o tsv)
export AZURE_TENANT_ID=$(az account show --query tenantId -o tsv)
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">Set names <span class="token keyword">for</span> resources</span></span>
<span class="token output">export IDENTITY_NAME="velero"
export APP_NAME="velero-${CLUSTER_NAME}"
export STORAGE_ACCOUNT_NAME=$(echo "velero${CLUSTER_NAME}" | tr -d '-' | tr '[:upper:]' '[:lower:]' | cut -c1-24)
export CONTAINER_NAME="velero"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--subscription "$AZURE_SUBSCRIPTION_ID" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--name "$IDENTITY_NAME"
# Get identity details
export IDENTITY_CLIENT_ID=$(az identity show -g "$CLUSTER_RESOURCE_GROUP" -n "$IDENTITY_NAME" --query clientId -o tsv)
export IDENTITY_PRINCIPAL_ID=$(az identity show -g "$CLUSTER_RESOURCE_GROUP" -n "$IDENTITY_NAME" --query principalId -o tsv)
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">az identity create \ # Create managed identity
--subscription "$AZURE_SUBSCRIPTION_ID" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--name "$IDENTITY_NAME"
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">Get identity details</span></span>
<span class="token output">export IDENTITY_CLIENT_ID=$(az identity show -g "$CLUSTER_RESOURCE_GROUP" -n "$IDENTITY_NAME" --query clientId -o tsv)
export IDENTITY_PRINCIPAL_ID=$(az identity show -g "$CLUSTER_RESOURCE_GROUP" -n "$IDENTITY_NAME" --query principalId -o tsv)</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
# Required roles for OADP operations
REQUIRED_ROLES=(
"Contributor"
"Storage Blob Data Contributor"
"Disk Snapshot Contributor"
)
for role in "${REQUIRED_ROLES[@]}"; do
echo "Assigning role: $role"
az role assignment create \
--assignee "$IDENTITY_PRINCIPAL_ID" \
--role "$role" \
--scope "/subscriptions/$SUBSCRIPTION_ID"
done
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">export SUBSCRIPTION_ID=$(az account show --query id -o tsv) # Get subscription ID for role assignments
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">Required roles <span class="token keyword">for</span> OADP operations</span></span>
<span class="token output">REQUIRED_ROLES=(
"Contributor"
"Storage Blob Data Contributor"
"Disk Snapshot Contributor"
)
for role in "${REQUIRED_ROLES[@]}"; do
echo "Assigning role: $role"
az role assignment create \
--assignee "$IDENTITY_PRINCIPAL_ID" \
--role "$role" \
--scope "/subscriptions/$SUBSCRIPTION_ID"
done</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--name "$STORAGE_ACCOUNT_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--location "$(az group show -n $CLUSTER_RESOURCE_GROUP --query location -o tsv)" \
--sku Standard_LRS \
--kind StorageV2
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">az storage account create \ # Create storage account
--name "$STORAGE_ACCOUNT_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--location "$(az group show -n $CLUSTER_RESOURCE_GROUP --query location -o tsv)" \
--sku Standard_LRS \
--kind StorageV2</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
echo "OIDC Issuer: $SERVICE_ACCOUNT_ISSUER"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">export SERVICE_ACCOUNT_ISSUER=$(oc get authentication.config.openshift.io cluster -o json | jq -r .spec.serviceAccountIssuer)
echo "OIDC Issuer: $SERVICE_ACCOUNT_ISSUER"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--name "velero-federated-credential" \
--identity-name "$IDENTITY_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--issuer "$SERVICE_ACCOUNT_ISSUER" \
--subject "system:serviceaccount:openshift-adp:velero" \
--audiences "openshift"
# Create federated identity credential for OADP controller manager
az identity federated-credential create \
--name "oadp-controller-federated-credential" \
--identity-name "$IDENTITY_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--issuer "$SERVICE_ACCOUNT_ISSUER" \
--subject "system:serviceaccount:openshift-adp:openshift-adp-controller-manager" \
--audiences "openshift"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">az identity federated-credential create \ # Create federated identity credential for Velero service account
--name "velero-federated-credential" \
--identity-name "$IDENTITY_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--issuer "$SERVICE_ACCOUNT_ISSUER" \
--subject "system:serviceaccount:openshift-adp:velero" \
--audiences "openshift"
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">Create federated identity credential <span class="token keyword">for</span> OADP controller manager</span></span>
<span class="token output">az identity federated-credential create \
--name "oadp-controller-federated-credential" \
--identity-name "$IDENTITY_NAME" \
--resource-group "$CLUSTER_RESOURCE_GROUP" \
--issuer "$SERVICE_ACCOUNT_ISSUER" \
--subject "system:serviceaccount:openshift-adp:openshift-adp-controller-manager" \
--audiences "openshift"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">oc create namespace openshift-adp</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: CloudStorage
metadata:
name: azure-backup-storage
namespace: openshift-adp
spec:
name: ${CONTAINER_NAME}
provider: azure
creationSecret:
name: cloud-credentials-azure
key: azurekey
config:
storageAccount: ${STORAGE_ACCOUNT_NAME}
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">cat <<EOF | oc apply -f -
apiVersion: oadp.openshift.io/v1alpha1
kind: CloudStorage
metadata:
name: azure-backup-storage
namespace: openshift-adp
spec:
name: ${CONTAINER_NAME}
provider: azure
creationSecret:
name: cloud-credentials-azure
key: azurekey
config:
storageAccount: ${STORAGE_ACCOUNT_NAME}
EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: dpa-azure-workload-id-cloudstorage
namespace: openshift-adp
spec:
backupLocations:
- bucket:
cloudStorageRef:
name: <cloud_storage_cr>
config:
storageAccount: <storage_account_name>
useAAD: "true"
credential:
key: azurekey
name: cloud-credentials-azure
default: true
prefix: velero
name: default
configuration:
velero:
defaultPlugins:
- azure
- openshift
- csi
disableFsBackup: false
logFormat: text
snapshotLocations:
- name: default
velero:
config:
resourceGroup: <resource_group>
subscriptionId: <subscription_ID>
credential:
key: azurekey
name: cloud-credentials-azure
provider: azure
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">cat <<EOF | oc apply -f -
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: dpa-azure-workload-id-cloudstorage
namespace: openshift-adp
spec:
backupLocations:
- bucket:
cloudStorageRef:
name: <cloud_storage_cr> </span></code></pre><rh-badge id="CO55-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> config:
storageAccount: <storage_account_name> </span></code></pre><rh-badge id="CO55-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> useAAD: "true"
credential:
key: azurekey
name: cloud-credentials-azure
default: true
prefix: velero
name: default
configuration:
velero:
defaultPlugins:
- azure
- openshift
- csi
disableFsBackup: false
logFormat: text
snapshotLocations:
- name: default
velero:
config:
resourceGroup: <resource_group> </span></code></pre><rh-badge id="CO55-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> subscriptionId: <subscription_ID> </span></code></pre><rh-badge id="CO55-4" state="info">4</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> credential:
key: azurekey
name: cloud-credentials-azure
provider: azure
EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pods <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">az role assignment list --assignee ${IDENTITY_PRINCIPAL_ID} --all --query "[].roleDefinitionName" -o tsv</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
Check AZURE_CLIENT_ID environment variable
oc get pod ${VELERO_POD} -n openshift-adp -o jsonpath='{.spec.containers[0].env[?(@.name=="AZURE_CLIENT_ID")]}'
Check AZURE_FEDERATED_TOKEN_FILE environment variable
oc get pod ${VELERO_POD} -n openshift-adp -o jsonpath='{.spec.containers[0].env[?(@.name=="AZURE_FEDERATED_TOKEN_FILE")]}'
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">VELERO_POD</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>oc get pods <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-l</span> app.kubernetes.io/name<span class="token operator">=</span>velero <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.items[0].metadata.name}'</span><span class="token variable">)</span></span> <span class="token comment"># Check Velero pod environment variables</span></span></span>
<span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">Check AZURE_CLIENT_ID environment variable</span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pod <span class="token variable">${VELERO_POD}</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.containers[0].env[?(@.name=="AZURE_CLIENT_ID")]}'</span></span></span>
<span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">Check AZURE_FEDERATED_TOKEN_FILE environment variable</span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pod <span class="token variable">${VELERO_POD}</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.containers[0].env[?(@.name=="AZURE_FEDERATED_TOKEN_FILE")]}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
configuration:
velero:
podConfig:
nodeSelector: <node_selector>
resourceAllocations:
limits:
cpu: "1"
memory: 1024Mi
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO56-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO56-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">limits</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span>
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1024Mi
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket>
prefix: <prefix>
caCert: <base64_encoded_cert_string>
config:
insecureSkipTLSVerify: "false"
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">caCert</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <base64_encoded_cert_string<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO57-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"false"</span></span> </code></pre><rh-badge id="CO57-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">alias</span> <span class="token assign-left variable">velero</span><span class="token operator">=</span><span class="token string">'oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero version</span></span>
<span class="token output">Client:
Version: v1.12.1-OADP
Git commit: -
Server:
Version: v1.12.1-OADP</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">CA_CERT</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>oc <span class="token parameter variable">-n</span> openshift-adp get dataprotectionapplications.oadp.openshift.io <span class="token operator"><</span>dpa-name<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.backupLocations[0].velero.objectStorage.caCert}'</span><span class="token variable">)</span></span></span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token variable">$CA_CERT</span> <span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token operator">&&</span> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$CA_CERT</span>"</span> <span class="token operator">|</span> base64 <span class="token parameter variable">-d</span> <span class="token operator">|</span> oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"cat > /tmp/your-cacert.txt"</span> <span class="token operator">||</span> <span class="token builtin class-name">echo</span> <span class="token string">"DPA BSL has no caCert"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe backup <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert<span class="token operator">></span>.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup logs <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert.txt<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"ls /tmp/your-cacert.txt"</span></span></span>
<span class="token output">/tmp/your-cacert.txt</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
configuration:
velero:
defaultPlugins:
- azure
- openshift
resourceTimeout: 10m
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector: <node_selector>
backupLocations:
- velero:
config:
resourceGroup: <azure_resource_group>
storageAccount: <azure_storage_account_id>
subscriptionId: <azure_subscription_id>
credential:
key: cloud
name: cloud-credentials-azure
provider: azure
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
snapshotLocations:
- velero:
config:
resourceGroup: <azure_resource_group>
subscriptionId: <azure_subscription_id>
incremental: "true"
name: default
provider: azure
credential:
key: cloud
name: cloud-credentials-azure
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp </code></pre><rh-badge id="CO58-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> azure
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift </code></pre><rh-badge id="CO58-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m </code></pre><rh-badge id="CO58-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO58-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO58-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO58-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO58-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceGroup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_resource_group<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO58-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_storage_account_id<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO58-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">subscriptionId</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_subscription_id<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO58-10" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>azure </code></pre><rh-badge id="CO58-11" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> azure
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO58-12" state="info">12</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO58-13" state="info">13</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO58-14" state="info">14</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceGroup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_resource_group<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">subscriptionId</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <azure_subscription_id<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">incremental</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> azure
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>azure </code></pre><rh-badge id="CO58-15" state="info">15</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: restic
velero:
client-burst: 500
client-qps: 300
defaultPlugins:
- openshift
- aws
- kubevirt
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">client-burst</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">500</span></span> </code></pre><rh-badge id="CO59-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">client-qps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">300</span></span> </code></pre><rh-badge id="CO59-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> node-role.kubernetes.io/nodeAgent<span class="token operator">=</span><span class="token string">""</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">other-label.io/other-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
loadAffinity:
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions:
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO60-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO60-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> node1
<span class="token punctuation"><span class="token punctuation">-</span></span> node2
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'US'</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> label.io/instance-type<span class="token operator">=</span><span class="token string">'large'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1
perNodeConfig:
- nodeSelector:
matchLabels:
label.io/instance-type: large
number: 3
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">globalConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO61-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">perNodeConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/instance-type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> large </code></pre><rh-badge id="CO61-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">number</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">3</span></span> </code></pre><rh-badge id="CO61-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
backupLocations:
- velero:
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: gcp
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- csi
- gcp
- openshift
disableFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO62-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token key atrule"><span class="token key atrule">disableFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO62-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get daemonset node-agent <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DaemonSet
metadata:
...
name: node-agent
namespace: openshift-adp
...
spec:
...
template:
metadata:
...
spec:
containers:
...
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
...
nodeSelector:
kubernetes.io/os: linux
os:
name: linux
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccount: velero
serviceAccountName: velero
....
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> apps/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DaemonSet
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> node<span class="token punctuation"><span class="token punctuation">-</span></span>agent
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">template</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">containers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">allowPrivilegeEscalation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO63-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">capabilities</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">drop</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ALL
<span class="token key atrule"><span class="token key atrule">privileged</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO63-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">readOnlyRootFilesystem</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO63-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kubernetes.io/os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">restartPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Always
<span class="token key atrule"><span class="token key atrule">schedulerName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default<span class="token punctuation"><span class="token punctuation">-</span></span>scheduler
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">runAsNonRoot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO63-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">seccompProfile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RuntimeDefault
<span class="token key atrule"><span class="token key atrule">serviceAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">serviceAccountName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token punctuation"><span class="token punctuation">...</span></span>.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
global:
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO64-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">global</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO64-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpuRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100m"</span></span>
<span class="token key atrule"><span class="token key atrule">cpuLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200m"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
myrepositoryname:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">myrepositoryname</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO65-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'yes'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">some-label.io/custom-node-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>core</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- kubevirt
- csi
imagePullPolicy: Never
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">imagePullPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Never </code></pre><rh-badge id="CO66-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
configuration:
velero:
defaultPlugins:
- openshift
- csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO67-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: false
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO68-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: true
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO69-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gcloud auth login</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">BUCKET</span><span class="token operator">=</span><span class="token operator"><</span>bucket<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO70-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gsutil mb gs://<span class="token variable">$BUCKET</span>/</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">PROJECT_ID</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>gcloud config get-value project<span class="token variable">)</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--display-name "Velero service account"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gcloud iam service-accounts create velero <span class="token punctuation">\</span>
--display-name <span class="token string">"Velero service account"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gcloud iam service-accounts list</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--filter="displayName:Velero service account" \
--format 'value(email)')
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">SERVICE_ACCOUNT_EMAIL</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>gcloud iam service-accounts list <span class="token punctuation">\</span>
<span class="token parameter variable">--filter</span><span class="token operator">=</span><span class="token string">"displayName:Velero service account"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--format</span> <span class="token string">'value(email)'</span><span class="token variable">)</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">ROLE_PERMISSIONS</span><span class="token operator">=</span><span class="token punctuation">(</span></span></span>
<span class="token output"> compute.disks.get
compute.disks.create
compute.disks.createSnapshot
compute.snapshots.get
compute.snapshots.create
compute.snapshots.useReadOnly
compute.snapshots.delete
compute.zones.get
storage.objects.create
storage.objects.delete
storage.objects.get
storage.objects.list
iam.serviceAccounts.signBlob
)</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--project $PROJECT_ID \
--title "Velero Server" \
--permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gcloud iam roles create velero.server <span class="token punctuation">\</span>
<span class="token parameter variable">--project</span> <span class="token variable">$PROJECT_ID</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--title</span> <span class="token string">"Velero Server"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--permissions</span> <span class="token string">"<span class="token variable"><span class="token variable">$(</span><span class="token assign-left variable"><span class="token environment constant">IFS</span></span><span class="token operator">=</span><span class="token string">","</span><span class="token punctuation">;</span> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">${ROLE_PERMISSIONS<span class="token punctuation">[</span>*<span class="token punctuation">]</span>}</span>"</span><span class="token variable">)</span></span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--member serviceAccount:$SERVICE_ACCOUNT_EMAIL \
--role projects/$PROJECT_ID/roles/velero.server
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gcloud projects add-iam-policy-binding <span class="token variable">$PROJECT_ID</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--member</span> serviceAccount:<span class="token variable">$SERVICE_ACCOUNT_EMAIL</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--role</span> projects/<span class="token variable">$PROJECT_ID</span>/roles/velero.server</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gsutil iam ch serviceAccount:<span class="token variable">$SERVICE_ACCOUNT_EMAIL</span>:objectAdmin gs://<span class="token variable">${BUCKET}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--iam-account $SERVICE_ACCOUNT_EMAIL
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">gcloud iam service-accounts keys create credentials-velero <span class="token punctuation">\</span>
--iam-account <span class="token variable">$SERVICE_ACCOUNT_EMAIL</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials-gcp <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials-gcp <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic <span class="token operator"><</span>custom_secret<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
...
backupLocations:
- velero:
provider: gcp
default: true
credential:
key: cloud
name: <custom_secret>
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
snapshotLocations:
- velero:
provider: gcp
default: true
config:
project: <project>
snapshotLocation: us-west1
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO71-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">project</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <project<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">snapshotLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>west1</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
configuration:
velero:
podConfig:
nodeSelector: <node_selector>
resourceAllocations:
limits:
cpu: "1"
memory: 1024Mi
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO72-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO72-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">limits</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span>
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1024Mi
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket>
prefix: <prefix>
caCert: <base64_encoded_cert_string>
config:
insecureSkipTLSVerify: "false"
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">caCert</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <base64_encoded_cert_string<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO73-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"false"</span></span> </code></pre><rh-badge id="CO73-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">alias</span> <span class="token assign-left variable">velero</span><span class="token operator">=</span><span class="token string">'oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero version</span></span>
<span class="token output">Client:
Version: v1.12.1-OADP
Git commit: -
Server:
Version: v1.12.1-OADP</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">CA_CERT</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>oc <span class="token parameter variable">-n</span> openshift-adp get dataprotectionapplications.oadp.openshift.io <span class="token operator"><</span>dpa-name<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.backupLocations[0].velero.objectStorage.caCert}'</span><span class="token variable">)</span></span></span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token variable">$CA_CERT</span> <span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token operator">&&</span> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$CA_CERT</span>"</span> <span class="token operator">|</span> base64 <span class="token parameter variable">-d</span> <span class="token operator">|</span> oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"cat > /tmp/your-cacert.txt"</span> <span class="token operator">||</span> <span class="token builtin class-name">echo</span> <span class="token string">"DPA BSL has no caCert"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe backup <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert<span class="token operator">></span>.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup logs <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert.txt<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"ls /tmp/your-cacert.txt"</span></span></span>
<span class="token output">/tmp/your-cacert.txt</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mkdir</span> <span class="token parameter variable">-p</span> oadp-credrequest</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: CredentialsRequest
metadata:
name: oadp-operator-credentials
namespace: openshift-cloud-credential-operator
spec:
providerSpec:
apiVersion: cloudcredential.openshift.io/v1
kind: GCPProviderSpec
permissions:
- compute.disks.get
- compute.disks.create
- compute.disks.createSnapshot
- compute.snapshots.get
- compute.snapshots.create
- compute.snapshots.useReadOnly
- compute.snapshots.delete
- compute.zones.get
- storage.objects.create
- storage.objects.delete
- storage.objects.get
- storage.objects.list
- iam.serviceAccounts.signBlob
skipServiceCheck: true
secretRef:
name: cloud-credentials-gcp
namespace: <OPERATOR_INSTALL_NS>
serviceAccountNames:
- velero
' > oadp-credrequest/credrequest.yaml
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">echo 'apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloudcredential.openshift.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> CredentialsRequest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>operator<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credential<span class="token punctuation"><span class="token punctuation">-</span></span>operator
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">providerSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloudcredential.openshift.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> GCPProviderSpec
<span class="token key atrule"><span class="token key atrule">permissions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.disks.get
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.disks.create
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.disks.createSnapshot
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.snapshots.get
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.snapshots.create
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.snapshots.useReadOnly
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.snapshots.delete
<span class="token punctuation"><span class="token punctuation">-</span></span> compute.zones.get
<span class="token punctuation"><span class="token punctuation">-</span></span> storage.objects.create
<span class="token punctuation"><span class="token punctuation">-</span></span> storage.objects.delete
<span class="token punctuation"><span class="token punctuation">-</span></span> storage.objects.get
<span class="token punctuation"><span class="token punctuation">-</span></span> storage.objects.list
<span class="token punctuation"><span class="token punctuation">-</span></span> iam.serviceAccounts.signBlob
<span class="token key atrule"><span class="token key atrule">skipServiceCheck</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">secretRef</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>gcp
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <OPERATOR_INSTALL_NS<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">serviceAccountNames</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> velero
' <span class="token punctuation"><span class="token punctuation">></span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>credrequest/credrequest.yaml</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--name=<name> \
--project=<gcp_project_id> \
--credentials-requests-dir=oadp-credrequest \
--workload-identity-pool=<pool_id> \
--workload-identity-provider=<provider_id>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">ccoctl gcp create-service-accounts <span class="token punctuation">\</span>
<span class="token parameter variable">--name</span><span class="token operator">=</span><span class="token operator"><</span>name<span class="token operator">></span> <span class="token punctuation">\</span>
<span class="token parameter variable">--project</span><span class="token operator">=</span><span class="token operator"><</span>gcp_project_id<span class="token operator">></span> <span class="token punctuation">\</span>
--credentials-requests-dir<span class="token operator">=</span>oadp-credrequest <span class="token punctuation">\</span>
--workload-identity-pool<span class="token operator">=</span><span class="token operator"><</span>pool_id<span class="token operator">></span> <span class="token punctuation">\</span>
--workload-identity-provider<span class="token operator">=</span><span class="token operator"><</span>provider_id<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create namespace <span class="token operator"><</span>OPERATOR_INSTALL_NS<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> manifests/openshift-adp-cloud-credentials-gcp-credentials.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: <OPERATOR_INSTALL_NS>
spec:
configuration:
velero:
defaultPlugins:
- gcp
- openshift
resourceTimeout: 10m
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector: <node_selector>
backupLocations:
- velero:
provider: gcp
default: true
credential:
key: cloud
name: cloud-credentials-gcp
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
snapshotLocations:
- velero:
provider: gcp
default: true
config:
project: <project>
snapshotLocation: us-west1
credential:
key: cloud
name: cloud-credentials-gcp
backupImages: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <OPERATOR_INSTALL_NS<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO74-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift </code></pre><rh-badge id="CO74-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m </code></pre><rh-badge id="CO74-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO74-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO74-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO74-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO74-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud </code></pre><rh-badge id="CO74-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>gcp </code></pre><rh-badge id="CO74-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO74-10" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO74-11" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO74-12" state="info">12</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">project</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <project<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">snapshotLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>west1 </code></pre><rh-badge id="CO74-13" state="info">13</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>gcp </code></pre><rh-badge id="CO74-14" state="info">14</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupImages</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO74-15" state="info">15</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: restic
velero:
client-burst: 500
client-qps: 300
defaultPlugins:
- openshift
- aws
- kubevirt
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">client-burst</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">500</span></span> </code></pre><rh-badge id="CO75-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">client-qps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">300</span></span> </code></pre><rh-badge id="CO75-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> node-role.kubernetes.io/nodeAgent<span class="token operator">=</span><span class="token string">""</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">other-label.io/other-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
loadAffinity:
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions:
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO76-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO76-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> node1
<span class="token punctuation"><span class="token punctuation">-</span></span> node2
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'US'</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> label.io/instance-type<span class="token operator">=</span><span class="token string">'large'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1
perNodeConfig:
- nodeSelector:
matchLabels:
label.io/instance-type: large
number: 3
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">globalConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO77-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">perNodeConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/instance-type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> large </code></pre><rh-badge id="CO77-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">number</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">3</span></span> </code></pre><rh-badge id="CO77-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
backupLocations:
- velero:
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: gcp
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- csi
- gcp
- openshift
disableFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO78-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token key atrule"><span class="token key atrule">disableFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO78-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get daemonset node-agent <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DaemonSet
metadata:
...
name: node-agent
namespace: openshift-adp
...
spec:
...
template:
metadata:
...
spec:
containers:
...
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
...
nodeSelector:
kubernetes.io/os: linux
os:
name: linux
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccount: velero
serviceAccountName: velero
....
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> apps/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DaemonSet
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> node<span class="token punctuation"><span class="token punctuation">-</span></span>agent
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">template</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">containers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">allowPrivilegeEscalation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO79-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">capabilities</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">drop</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ALL
<span class="token key atrule"><span class="token key atrule">privileged</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO79-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">readOnlyRootFilesystem</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO79-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kubernetes.io/os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">restartPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Always
<span class="token key atrule"><span class="token key atrule">schedulerName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default<span class="token punctuation"><span class="token punctuation">-</span></span>scheduler
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">runAsNonRoot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO79-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">seccompProfile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RuntimeDefault
<span class="token key atrule"><span class="token key atrule">serviceAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">serviceAccountName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token punctuation"><span class="token punctuation">...</span></span>.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
global:
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO80-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">global</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO80-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpuRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100m"</span></span>
<span class="token key atrule"><span class="token key atrule">cpuLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200m"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
myrepositoryname:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">myrepositoryname</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO81-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'yes'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">some-label.io/custom-node-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>core</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- kubevirt
- csi
imagePullPolicy: Never
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">imagePullPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Never </code></pre><rh-badge id="CO82-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
configuration:
velero:
defaultPlugins:
- openshift
- csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO83-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: false
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO84-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: true
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO85-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">></span> ./credentials-velero</span>
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic <span class="token operator"><</span>custom_secret<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
...
backupLocations:
- velero:
config:
profile: "default"
region: <region_name>
s3Url: <url>
insecureSkipTLSVerify: "true"
s3ForcePathStyle: "true"
provider: aws
default: true
credential:
key: cloud
name: <custom_secret>
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO86-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO86-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
configuration:
velero:
podConfig:
nodeSelector: <node_selector>
resourceAllocations:
limits:
cpu: "1"
memory: 1024Mi
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO87-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO87-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">limits</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span>
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1024Mi
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket>
prefix: <prefix>
caCert: <base64_encoded_cert_string>
config:
insecureSkipTLSVerify: "false"
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">caCert</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <base64_encoded_cert_string<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO88-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"false"</span></span> </code></pre><rh-badge id="CO88-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">alias</span> <span class="token assign-left variable">velero</span><span class="token operator">=</span><span class="token string">'oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero version</span></span>
<span class="token output">Client:
Version: v1.12.1-OADP
Git commit: -
Server:
Version: v1.12.1-OADP</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">CA_CERT</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>oc <span class="token parameter variable">-n</span> openshift-adp get dataprotectionapplications.oadp.openshift.io <span class="token operator"><</span>dpa-name<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.backupLocations[0].velero.objectStorage.caCert}'</span><span class="token variable">)</span></span></span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token variable">$CA_CERT</span> <span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token operator">&&</span> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$CA_CERT</span>"</span> <span class="token operator">|</span> base64 <span class="token parameter variable">-d</span> <span class="token operator">|</span> oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"cat > /tmp/your-cacert.txt"</span> <span class="token operator">||</span> <span class="token builtin class-name">echo</span> <span class="token string">"DPA BSL has no caCert"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe backup <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert<span class="token operator">></span>.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup logs <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert.txt<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"ls /tmp/your-cacert.txt"</span></span></span>
<span class="token output">/tmp/your-cacert.txt</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
configuration:
velero:
defaultPlugins:
- aws
- openshift
resourceTimeout: 10m
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector: <node_selector>
backupLocations:
- velero:
config:
profile: "default"
region: <region_name>
s3Url: <url>
insecureSkipTLSVerify: "true"
s3ForcePathStyle: "true"
provider: aws
default: true
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp </code></pre><rh-badge id="CO89-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> aws </code></pre><rh-badge id="CO89-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift </code></pre><rh-badge id="CO89-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m </code></pre><rh-badge id="CO89-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO89-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO89-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO89-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO89-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO89-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO89-10" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO89-11" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO89-12" state="info">12</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO89-13" state="info">13</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: restic
velero:
client-burst: 500
client-qps: 300
defaultPlugins:
- openshift
- aws
- kubevirt
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">client-burst</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">500</span></span> </code></pre><rh-badge id="CO90-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">client-qps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">300</span></span> </code></pre><rh-badge id="CO90-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> node-role.kubernetes.io/nodeAgent<span class="token operator">=</span><span class="token string">""</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">other-label.io/other-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
loadAffinity:
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions:
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO91-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO91-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> node1
<span class="token punctuation"><span class="token punctuation">-</span></span> node2
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'US'</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> label.io/instance-type<span class="token operator">=</span><span class="token string">'large'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1
perNodeConfig:
- nodeSelector:
matchLabels:
label.io/instance-type: large
number: 3
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">globalConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO92-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">perNodeConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/instance-type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> large </code></pre><rh-badge id="CO92-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">number</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">3</span></span> </code></pre><rh-badge id="CO92-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
backupLocations:
- velero:
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: gcp
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- csi
- gcp
- openshift
disableFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO93-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token key atrule"><span class="token key atrule">disableFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO93-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get daemonset node-agent <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DaemonSet
metadata:
...
name: node-agent
namespace: openshift-adp
...
spec:
...
template:
metadata:
...
spec:
containers:
...
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
...
nodeSelector:
kubernetes.io/os: linux
os:
name: linux
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccount: velero
serviceAccountName: velero
....
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> apps/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DaemonSet
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> node<span class="token punctuation"><span class="token punctuation">-</span></span>agent
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">template</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">containers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">allowPrivilegeEscalation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO94-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">capabilities</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">drop</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ALL
<span class="token key atrule"><span class="token key atrule">privileged</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO94-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">readOnlyRootFilesystem</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO94-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kubernetes.io/os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">restartPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Always
<span class="token key atrule"><span class="token key atrule">schedulerName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default<span class="token punctuation"><span class="token punctuation">-</span></span>scheduler
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">runAsNonRoot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO94-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">seccompProfile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RuntimeDefault
<span class="token key atrule"><span class="token key atrule">serviceAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">serviceAccountName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token punctuation"><span class="token punctuation">...</span></span>.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
global:
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO95-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">global</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO95-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpuRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100m"</span></span>
<span class="token key atrule"><span class="token key atrule">cpuLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200m"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
myrepositoryname:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">myrepositoryname</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO96-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'yes'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">some-label.io/custom-node-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>core</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- kubevirt
- csi
imagePullPolicy: Never
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">imagePullPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Never </code></pre><rh-badge id="CO97-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
configuration:
velero:
defaultPlugins:
- openshift
- csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO98-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: false
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO99-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: true
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO100-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic <span class="token operator"><</span>custom_secret<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span>credentials-velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
...
backupLocations:
- velero:
provider: <provider>
default: true
credential:
key: cloud
name: <custom_secret>
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <provider<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO101-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
configuration:
velero:
podConfig:
nodeSelector: <node_selector>
resourceAllocations:
limits:
cpu: "1"
memory: 1024Mi
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO102-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO102-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">limits</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span>
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1024Mi
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket>
prefix: <prefix>
caCert: <base64_encoded_cert_string>
config:
insecureSkipTLSVerify: "false"
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">caCert</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <base64_encoded_cert_string<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO103-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"false"</span></span> </code></pre><rh-badge id="CO103-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">alias</span> <span class="token assign-left variable">velero</span><span class="token operator">=</span><span class="token string">'oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero version</span></span>
<span class="token output">Client:
Version: v1.12.1-OADP
Git commit: -
Server:
Version: v1.12.1-OADP</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
[[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">CA_CERT</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>oc <span class="token parameter variable">-n</span> openshift-adp get dataprotectionapplications.oadp.openshift.io <span class="token operator"><</span>dpa-name<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.backupLocations[0].velero.objectStorage.caCert}'</span><span class="token variable">)</span></span></span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-n</span> <span class="token variable">$CA_CERT</span> <span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token operator">&&</span> <span class="token builtin class-name">echo</span> <span class="token string">"<span class="token variable">$CA_CERT</span>"</span> <span class="token operator">|</span> base64 <span class="token parameter variable">-d</span> <span class="token operator">|</span> oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"cat > /tmp/your-cacert.txt"</span> <span class="token operator">||</span> <span class="token builtin class-name">echo</span> <span class="token string">"DPA BSL has no caCert"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe backup <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert<span class="token operator">></span>.txt</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup logs <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--cacert</span> /tmp/<span class="token operator"><</span>your_cacert.txt<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-i</span> deploy/velero <span class="token parameter variable">-c</span> velero -- <span class="token function">bash</span> <span class="token parameter variable">-c</span> <span class="token string">"ls /tmp/your-cacert.txt"</span></span></span>
<span class="token output">/tmp/your-cacert.txt</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
configuration:
velero:
defaultPlugins:
- aws
- kubevirt
- csi
- openshift
resourceTimeout: 10m
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector: <node_selector>
backupLocations:
- velero:
provider: gcp
default: true
credential:
key: cloud
name: <default_secret>
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp </code></pre><rh-badge id="CO104-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> aws </code></pre><rh-badge id="CO104-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt </code></pre><rh-badge id="CO104-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO104-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift </code></pre><rh-badge id="CO104-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m </code></pre><rh-badge id="CO104-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO104-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO104-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO104-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO104-10" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp </code></pre><rh-badge id="CO104-11" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <default_secret<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO104-12" state="info">12</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO104-13" state="info">13</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO104-14" state="info">14</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: restic
velero:
client-burst: 500
client-qps: 300
defaultPlugins:
- openshift
- aws
- kubevirt
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">client-burst</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">500</span></span> </code></pre><rh-badge id="CO105-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">client-qps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">300</span></span> </code></pre><rh-badge id="CO105-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> node-role.kubernetes.io/nodeAgent<span class="token operator">=</span><span class="token string">""</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">other-label.io/other-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
loadAffinity:
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions:
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO106-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO106-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> node1
<span class="token punctuation"><span class="token punctuation">-</span></span> node2
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'US'</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> label.io/instance-type<span class="token operator">=</span><span class="token string">'large'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1
perNodeConfig:
- nodeSelector:
matchLabels:
label.io/instance-type: large
number: 3
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">globalConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO107-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">perNodeConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/instance-type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> large </code></pre><rh-badge id="CO107-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">number</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">3</span></span> </code></pre><rh-badge id="CO107-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
backupLocations:
- velero:
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: gcp
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- csi
- gcp
- openshift
disableFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO108-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token key atrule"><span class="token key atrule">disableFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO108-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get daemonset node-agent <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DaemonSet
metadata:
...
name: node-agent
namespace: openshift-adp
...
spec:
...
template:
metadata:
...
spec:
containers:
...
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
...
nodeSelector:
kubernetes.io/os: linux
os:
name: linux
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccount: velero
serviceAccountName: velero
....
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> apps/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DaemonSet
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> node<span class="token punctuation"><span class="token punctuation">-</span></span>agent
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">template</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">containers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">allowPrivilegeEscalation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO109-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">capabilities</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">drop</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ALL
<span class="token key atrule"><span class="token key atrule">privileged</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO109-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">readOnlyRootFilesystem</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO109-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kubernetes.io/os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">restartPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Always
<span class="token key atrule"><span class="token key atrule">schedulerName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default<span class="token punctuation"><span class="token punctuation">-</span></span>scheduler
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">runAsNonRoot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO109-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">seccompProfile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RuntimeDefault
<span class="token key atrule"><span class="token key atrule">serviceAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">serviceAccountName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token punctuation"><span class="token punctuation">...</span></span>.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
global:
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO110-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">global</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO110-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpuRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100m"</span></span>
<span class="token key atrule"><span class="token key atrule">cpuLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200m"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
myrepositoryname:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">myrepositoryname</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO111-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'yes'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">some-label.io/custom-node-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>core</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- kubevirt
- csi
imagePullPolicy: Never
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">imagePullPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Never </code></pre><rh-badge id="CO112-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
configuration:
velero:
defaultPlugins:
- openshift
- csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO113-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: false
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO114-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
nodeAgent:
enable: true
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO115-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
namespace: openshift-adp
spec:
configuration:
velero:
defaultPlugins:
- kubevirt
- gcp
- csi
- openshift
resourceTimeout: 10m
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector: <node_selector>
backupLocations:
- velero:
provider: gcp
default: true
credential:
key: cloud
name: <default_secret>
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp </code></pre><rh-badge id="CO116-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt </code></pre><rh-badge id="CO116-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp </code></pre><rh-badge id="CO116-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO116-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift </code></pre><rh-badge id="CO116-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m </code></pre><rh-badge id="CO116-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO116-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO116-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO116-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO116-10" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp </code></pre><rh-badge id="CO116-11" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <default_secret<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO116-12" state="info">12</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO116-13" state="info">13</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO116-14" state="info">14</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME READY STATUS RESTARTS AGE
pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s
pod/node-agent-9cq4q 1/1 Running 0 94s
pod/node-agent-m4lts 1/1 Running 0 94s
pod/node-agent-pv4kr 1/1 Running 0 95s
pod/velero-588db7f655-n842v 1/1 Running 0 95s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s
service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/node-agent 3 3 3 3 3 <none> 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s
deployment.apps/velero 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s
replicaset.apps/velero-588db7f655 1 1 1 96s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa dpa-sample <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">{</span></span>"conditions"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">{</span></span>"lastTransitionTime"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"2023-10-27T01:23:57Z"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"message"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconcile complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"reason"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Complete"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"status"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"True"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span>"type"<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token string"><span class="token string">"Reconciled"</span></span><span class="token punctuation"><span class="token punctuation">}</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">}</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
dpa-sample-1 Available 1s 3d16h true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">NAME PHASE LAST VALIDATED AGE DEFAULT
dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1 Available 1s 3d16h true</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: vmbackupsingle
namespace: openshift-adp
spec:
snapshotMoveData: true
includedNamespaces:
- <vm_namespace>
labelSelector:
matchLabels:
app: <vm_app_name>
storageLocation: <backup_storage_location_name>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> vmbackupsingle
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <vm_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO117-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">labelSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <vm_app_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO117-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_storage_location_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO117-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>backup_cr_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO118-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: vmrestoresingle
namespace: openshift-adp
spec:
backupName: vmbackupsingle
restorePVs: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> vmrestoresingle
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> vmbackupsingle </code></pre><rh-badge id="CO119-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">restorePVs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>restore_cr_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO120-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label vm <span class="token operator"><</span>vm_name<span class="token operator">></span> <span class="token assign-left variable">app</span><span class="token operator">=</span><span class="token operator"><</span>vm_name<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: singlevmrestore
namespace: openshift-adp
spec:
backupName: multiplevmbackup
restorePVs: true
LabelSelectors:
- matchLabels:
kubevirt.io/created-by: <datavolume_uid>
- matchLabels:
app: <vm_name>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> singlevmrestore
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> multiplevmbackup
<span class="token key atrule"><span class="token key atrule">restorePVs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">LabelSelectors</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kubevirt.io/created-by</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <datavolume_uid<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO121-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <vm_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO121-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>restore_cr_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO122-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: restic
velero:
client-burst: 500
client-qps: 300
defaultPlugins:
- openshift
- aws
- kubevirt
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">client-burst</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">500</span></span> </code></pre><rh-badge id="CO123-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">client-qps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">300</span></span> </code></pre><rh-badge id="CO123-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
backupLocations:
- velero:
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: gcp
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- csi
- gcp
- openshift
disableFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO124-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token key atrule"><span class="token key atrule">disableFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO124-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get daemonset node-agent <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DaemonSet
metadata:
...
name: node-agent
namespace: openshift-adp
...
spec:
...
template:
metadata:
...
spec:
containers:
...
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
...
nodeSelector:
kubernetes.io/os: linux
os:
name: linux
restartPolicy: Always
schedulerName: default-scheduler
securityContext:
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
serviceAccount: velero
serviceAccountName: velero
....
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> apps/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DaemonSet
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> node<span class="token punctuation"><span class="token punctuation">-</span></span>agent
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">template</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">containers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">allowPrivilegeEscalation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO125-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">capabilities</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">drop</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ALL
<span class="token key atrule"><span class="token key atrule">privileged</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO125-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">readOnlyRootFilesystem</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO125-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kubernetes.io/os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">os</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> linux
<span class="token key atrule"><span class="token key atrule">restartPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Always
<span class="token key atrule"><span class="token key atrule">schedulerName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default<span class="token punctuation"><span class="token punctuation">-</span></span>scheduler
<span class="token key atrule"><span class="token key atrule">securityContext</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">runAsNonRoot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO125-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">seccompProfile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RuntimeDefault
<span class="token key atrule"><span class="token key atrule">serviceAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">serviceAccountName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token punctuation"><span class="token punctuation">...</span></span>.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> node-role.kubernetes.io/nodeAgent<span class="token operator">=</span><span class="token string">""</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/nodeAgent: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> configuration:
nodeAgent:
enable: true
podConfig:
nodeSelector:
node-role.kubernetes.io/infra: ""
node-role.kubernetes.io/worker: ""</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">other-label.io/other-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
loadAffinity:
- nodeSelector:
matchLabels:
label.io/role: cpu-1
matchExpressions:
- key: label.io/hostname
operator: In
values:
- node1
- node2
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO126-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cpu<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO126-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> node1
<span class="token punctuation"><span class="token punctuation">-</span></span> node2
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
loadAffinity:
- nodeSelector:
matchLabels:
label.io/location: 'US'
label.io/gpu: 'no'
podConfig:
nodeSelector:
label.io/gpu: 'no'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'US'</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label node/<span class="token operator"><</span>node_name<span class="token operator">></span> label.io/instance-type<span class="token operator">=</span><span class="token string">'large'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
nodeAgent:
enable: true
uploaderType: kopia
loadConcurrency:
globalConfig: 1
perNodeConfig:
- nodeSelector:
matchLabels:
label.io/instance-type: large
number: 3
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">loadConcurrency</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">globalConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO127-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">perNodeConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/instance-type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> large </code></pre><rh-badge id="CO127-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">number</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">3</span></span> </code></pre><rh-badge id="CO127-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
global:
podResources:
cpuRequest: "100m"
cpuLimit: "200m"
memoryRequest: "100Mi"
memoryLimit: "200Mi"
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO128-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">global</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO128-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">podResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpuRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100m"</span></span>
<span class="token key atrule"><span class="token key atrule">cpuLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200m"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryRequest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"100Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">memoryLimit</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"200Mi"</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
repositoryMaintenance:
myrepositoryname:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/cpu: 'yes'
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">repositoryMaintenance</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">myrepositoryname</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO129-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'yes'</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
podConfig:
nodeSelector:
some-label.io/custom-node-role: backup-core
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">some-label.io/custom-node-role</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>core</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
spec:
configuration:
velero:
loadAffinity:
- nodeSelector:
matchLabels:
label.io/gpu: 'no'
matchExpressions:
- key: label.io/location
operator: In
values:
- US
- EU
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">loadAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">label.io/gpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'no'</span></span>
<span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> label.io/location
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> US
<span class="token punctuation"><span class="token punctuation">-</span></span> EU</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: default
velero:
config:
insecureSkipTLSVerify: "true"
profile: "default"
region: <bucket_region>
s3ForcePathStyle: "true"
s3Url: <bucket_url>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- kubevirt
- csi
imagePullPolicy: Never
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_url<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> kubevirt
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">imagePullPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Never </code></pre><rh-badge id="CO130-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
#...
backupLocations:
- name: aws
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
region: <region_name>
profile: "default"
credential:
key: cloud
name: cloud-credentials
- name: odf
velero:
provider: aws
default: false
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
profile: "default"
region: <region_name>
s3Url: <url>
insecureSkipTLSVerify: "true"
s3ForcePathStyle: "true"
credential:
key: cloud
name: <custom_secret_name_odf>
#...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token comment"><span class="token comment">#...</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws </code></pre><rh-badge id="CO131-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO131-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO131-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO131-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO131-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO131-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> odf </code></pre><rh-badge id="CO131-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO131-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_secret_name_odf<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO131-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment">#...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
# ...
spec:
includedNamespaces:
- <namespace>
storageLocation: <backup_storage_location>
defaultVolumesToFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO132-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_storage_location<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO132-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span><span class="token operator"><</span>aws_credentials_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO133-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic mcg-secret <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span><span class="token operator"><</span>MCG_credentials_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO134-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: two-bsl-dpa
namespace: openshift-adp
spec:
backupLocations:
- name: aws
velero:
config:
profile: default
region: <region_name>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
- name: mcg
velero:
config:
insecureSkipTLSVerify: "true"
profile: noobaa
region: <region_name>
s3ForcePathStyle: "true"
s3Url: <s3_url>
credential:
key: cloud
name: mcg-secret
objectStorage:
bucket: <bucket_name_mcg>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> two<span class="token punctuation"><span class="token punctuation">-</span></span>bsl<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO135-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO135-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mcg
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> noobaa
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO135-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <s3_url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO135-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mcg<span class="token punctuation"><span class="token punctuation">-</span></span>secret </code></pre><rh-badge id="CO135-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name_mcg<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO135-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpa_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO136-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get bsl</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
aws Available 5s 3m28s true
mcg Available 5s 3m28s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LAST VALIDATED AGE DEFAULT
aws Available 5s 3m28s true
mcg Available 5s 3m28s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: test-backup1
namespace: openshift-adp
spec:
includedNamespaces:
- <mysql_namespace>
defaultVolumesToFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup1
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <mysql_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO137-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>backup_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO138-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backups.velero.io <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">-o</span> yaml </span></span></code></pre><rh-badge id="CO139-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: test-backup1
namespace: openshift-adp
spec:
includedNamespaces:
- <mysql_namespace>
storageLocation: mcg
defaultVolumesToFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup1
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <mysql_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO140-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mcg </code></pre><rh-badge id="CO140-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>backup_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO141-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backups.velero.io <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">-o</span> yaml </span></span></code></pre><rh-badge id="CO142-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
#...
snapshotLocations:
- velero:
config:
profile: default
region: <region>
credential:
key: cloud
name: cloud-credentials
provider: aws
- velero:
config:
profile: default
region: <region>
credential:
key: cloud
name: <custom_credential>
provider: aws
#...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token comment"><span class="token comment">#...</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO143-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <custom_credential<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO143-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token comment"><span class="token comment">#...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup create <span class="token operator"><</span>backup-name<span class="token operator">></span> --snapshot-volumes <span class="token boolean">false</span> </span></span></code></pre><rh-badge id="CO144-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe backup <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span> </span></span></code></pre><rh-badge id="CO145-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero restore create --from-backup <span class="token operator"><</span>backup-name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO146-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe restore <span class="token operator"><</span>restore_name<span class="token operator">></span> <span class="token parameter variable">--details</span> </span></span></code></pre><rh-badge id="CO147-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
openshift-adp velero-sample-1 Available 11s 31m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT
openshift-adp velero-sample-1 Available 11s 31m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: <backup>
labels:
velero.io/storage-location: default
namespace: openshift-adp
spec:
hooks: {}
includedNamespaces:
- <namespace>
includedResources: []
excludedResources: []
storageLocation: <velero-sample-1>
ttl: 720h0m0s
labelSelector:
matchLabels:
app: <label_1>
app: <label_2>
app: <label_3>
orLabelSelectors:
- matchLabels:
app: <label_1>
app: <label_2>
app: <label_3>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero.io/storage-location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO148-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">]</span></span> </code></pre><rh-badge id="CO148-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">]</span></span> </code></pre><rh-badge id="CO148-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <velero<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO148-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s
<span class="token key atrule"><span class="token key atrule">labelSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO148-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <label_1<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <label_2<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <label_3<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">orLabelSelectors</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO148-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <label_1<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <label_2<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <label_3<span class="token punctuation"><span class="token punctuation">></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backups.velero.io <span class="token parameter variable">-n</span> openshift-adp <span class="token operator"><</span>backup<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status.phase}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: VolumeSnapshotClass
metadata:
name: <volume_snapshot_class_name>
labels:
velero.io/csi-volumesnapshot-class: "true"
annotations:
snapshot.storage.kubernetes.io/is-default-class: true
driver: <csi_driver>
deletionPolicy: <deletion_policy_type>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> snapshot.storage.k8s.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> VolumeSnapshotClass
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <volume_snapshot_class_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero.io/csi-volumesnapshot-class</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span> </code></pre><rh-badge id="CO149-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">annotations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">snapshot.storage.kubernetes.io/is-default-class</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO149-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">driver</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <csi_driver<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">deletionPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <deletion_policy_type<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO149-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: <backup>
labels:
velero.io/storage-location: default
namespace: openshift-adp
spec:
defaultVolumesToFsBackup: true
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero.io/storage-location</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO150-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: <backup>
namespace: openshift-adp
spec:
hooks:
resources:
- name: <hook_name>
includedNamespaces:
- <namespace>
excludedNamespaces:
- <namespace>
includedResources: []
- pods
excludedResources: []
labelSelector:
matchLabels:
app: velero
component: server
pre:
- exec:
container: <container>
command:
- /bin/uname
- -a
onError: Fail
timeout: 30s
post:
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <hook_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO151-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO151-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">]</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> pods </code></pre><rh-badge id="CO151-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">]</span></span> </code></pre><rh-badge id="CO151-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">labelSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO151-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">component</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> server
<span class="token key atrule"><span class="token key atrule">pre</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO151-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">exec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">container</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <container<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO151-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> /bin/uname </code></pre><rh-badge id="CO151-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token punctuation"><span class="token punctuation">-</span></span>a
<span class="token key atrule"><span class="token key atrule">onError</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Fail </code></pre><rh-badge id="CO151-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 30s </code></pre><rh-badge id="CO151-10" state="info">10</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">post</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO151-11" state="info">11</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupStorageLocations <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
openshift-adp velero-sample-1 Available 11s 31m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAMESPACE NAME PHASE LAST VALIDATED AGE DEFAULT
openshift-adp velero-sample-1 Available 11s 31m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
kind: Schedule
metadata:
name: <schedule>
namespace: openshift-adp
spec:
schedule: 0 7 * * *
template:
hooks: {}
includedNamespaces:
- <namespace>
storageLocation: <velero-sample-1>
defaultVolumesToFsBackup: true
ttl: 720h0m0s
EOF
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">$ cat << EOF <span class="token punctuation"><span class="token punctuation">|</span></span> oc apply <span class="token punctuation"><span class="token punctuation">-</span></span>f <span class="token punctuation"><span class="token punctuation">-</span></span>
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Schedule
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <schedule<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">schedule</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 0 7 * * * </code></pre><rh-badge id="CO152-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">template</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO152-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <velero<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span>1<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO152-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO152-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s
EOF</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> schedule: "*/10 * * * *"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get schedule <span class="token parameter variable">-n</span> openshift-adp <span class="token operator"><</span>schedule<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status.phase}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DeleteBackupRequest
metadata:
name: deletebackuprequest
namespace: openshift-adp
spec:
backupName: <backup_name>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DeleteBackupRequest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> deletebackuprequest
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO153-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>deletebackuprequest_cr_filename<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup delete <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp </span></span></code></pre><rh-badge id="CO154-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
pod/repo-maintain-job-173....536-fl9tm 0/1 Completed 0 108m
pod/repo-maintain-job-173...2545-55ggx 0/1 Completed 0 48m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">pod/repo-maintain-job-173...2527-2nbls 0/1 Completed 0 168m
pod/repo-maintain-job-173....536-fl9tm 0/1 Completed 0 108m
pod/repo-maintain-job-173...2545-55ggx 0/1 Completed 0 48m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">not due for full maintenance cycle until 2024-00-00 18:29:4</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backuprepositories.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete backuprepository <span class="token operator"><</span>backup_repository_name<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp </span></span></code></pre><rh-badge id="CO155-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: dpa-sample
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup create <span class="token operator"><</span>backup-name<span class="token operator">></span> --snapshot-volumes <span class="token boolean">false</span> </span></span></code></pre><rh-badge id="CO156-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe backup <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span> </span></span></code></pre><rh-badge id="CO157-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero restore create --from-backup <span class="token operator"><</span>backup-name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO158-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero describe restore <span class="token operator"><</span>restore_name<span class="token operator">></span> <span class="token parameter variable">--details</span> </span></span></code></pre><rh-badge id="CO159-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: <restore>
namespace: openshift-adp
spec:
backupName: <backup>
includedResources: []
excludedResources:
- nodes
- events
- events.events.k8s.io
- backups.velero.io
- restores.velero.io
- resticrepositories.velero.io
restorePVs: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <restore<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO160-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">]</span></span> </code></pre><rh-badge id="CO160-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nodes
<span class="token punctuation"><span class="token punctuation">-</span></span> events
<span class="token punctuation"><span class="token punctuation">-</span></span> events.events.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backups.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> restores.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> resticrepositories.velero.io
<span class="token key atrule"><span class="token key atrule">restorePVs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO160-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get restores.velero.io <span class="token parameter variable">-n</span> openshift-adp <span class="token operator"><</span>restore<span class="token operator">></span> <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status.phase}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get all <span class="token parameter variable">-n</span> <span class="token operator"><</span>namespace<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO161-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">bash</span> dc-restic-post-restore.sh -<span class="token operator">></span> dc-post-restore.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="bash" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-bash" tabindex="-1"><code class="language-bash"><span class="token shebang important"><span class="token shebang important">#!/bin/bash</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">set</span></span> <span class="token parameter variable"><span class="token parameter variable">-e</span></span>
<span class="token comment"><span class="token comment"># if sha256sum exists, use it to check the integrity of the file</span></span>
<span class="token keyword"><span class="token keyword">if</span></span> <span class="token builtin class-name"><span class="token builtin class-name">command</span></span> <span class="token parameter variable"><span class="token parameter variable">-v</span></span> sha256sum <span class="token operator"><span class="token operator">></span></span>/dev/null <span class="token operator"><span class="token file-descriptor important"></span><span class="token operator"><span class="token file-descriptor important"><span class="token file-descriptor important">2</span></span>></span></span><span class="token file-descriptor important"><span class="token file-descriptor important">&1</span></span><span class="token punctuation"><span class="token punctuation">;</span></span> <span class="token keyword"><span class="token keyword">then</span></span>
<span class="token assign-left variable"><span class="token assign-left variable">CHECKSUM_CMD</span></span><span class="token operator"><span class="token operator">=</span></span><span class="token string"><span class="token string">"sha256sum"</span></span>
<span class="token keyword"><span class="token keyword">else</span></span>
<span class="token assign-left variable"><span class="token assign-left variable">CHECKSUM_CMD</span></span><span class="token operator"><span class="token operator">=</span></span><span class="token string"><span class="token string">"shasum -a 256"</span></span>
<span class="token keyword"><span class="token keyword">fi</span></span>
<span class="token function-name function"><span class="token function-name function">label_name</span></span> <span class="token punctuation"><span class="token punctuation">(</span></span><span class="token punctuation"><span class="token punctuation">)</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span>
<span class="token keyword"><span class="token keyword">if</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span> <span class="token string"><span class="token string">"<span class="token variable"><span class="token variable">${<span class="token operator"><span class="token operator">#</span></span>1}</span></span>"</span></span> <span class="token parameter variable"><span class="token parameter variable">-le</span></span> <span class="token string"><span class="token string">"63"</span></span> <span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">;</span></span> <span class="token keyword"><span class="token keyword">then</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> <span class="token variable"><span class="token variable">$1</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">return</span></span>
<span class="token keyword"><span class="token keyword">fi</span></span>
<span class="token assign-left variable"><span class="token assign-left variable">sha</span></span><span class="token operator"><span class="token operator">=</span></span><span class="token variable"><span class="token variable"></span><span class="token variable"><span class="token variable"><span class="token variable">$(</span></span><span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> <span class="token parameter variable"><span class="token parameter variable">-n</span></span> $1<span class="token operator"><span class="token operator">|</span></span>$CHECKSUM_CMD<span class="token variable"><span class="token variable">)</span></span></span><span class="token variable"></span></span>
<span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> <span class="token string"><span class="token string">"<span class="token variable"><span class="token variable">${1<span class="token operator"><span class="token operator">:</span></span>0<span class="token operator"><span class="token operator">:</span></span>57}</span></span><span class="token variable"><span class="token variable">${sha<span class="token operator"><span class="token operator">:</span></span>0<span class="token operator"><span class="token operator">:</span></span>6}</span></span>"</span></span>
<span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token keyword"><span class="token keyword">if</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">[</span></span> <span class="token variable"><span class="token variable">$#</span></span> <span class="token parameter variable"><span class="token parameter variable">-ne</span></span> <span class="token number"><span class="token number">1</span></span> <span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">;</span></span> <span class="token keyword"><span class="token keyword">then</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> <span class="token string"><span class="token string">"usage: <span class="token variable"><span class="token variable">${<span class="token environment constant"><span class="token environment constant">BASH_SOURCE</span></span>}</span></span> restore-name"</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">exit</span></span> <span class="token number"><span class="token number">1</span></span>
<span class="token keyword"><span class="token keyword">fi</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> <span class="token string"><span class="token string">"restore: <span class="token variable"><span class="token variable">$1</span></span>"</span></span>
<span class="token assign-left variable"><span class="token assign-left variable">label</span></span><span class="token operator"><span class="token operator">=</span></span><span class="token variable"><span class="token variable"></span><span class="token variable"><span class="token variable"><span class="token variable">$(</span></span>label_name $1<span class="token variable"><span class="token variable">)</span></span></span><span class="token variable"></span></span>
<span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> <span class="token string"><span class="token string">"label: <span class="token variable"><span class="token variable">$label</span></span>"</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> Deleting disconnected restore pods
oc delete pods --all-namespaces <span class="token parameter variable"><span class="token parameter variable">-l</span></span> oadp.openshift.io/disconnected-from-dc<span class="token operator"><span class="token operator">=</span></span><span class="token variable"><span class="token variable">$label</span></span>
<span class="token keyword"><span class="token keyword">for</span></span> <span class="token for-or-select variable"><span class="token for-or-select variable">dc</span></span> <span class="token keyword"><span class="token keyword">in</span></span> <span class="token variable"><span class="token variable"></span><span class="token variable"><span class="token variable"><span class="token variable">$(</span></span>oc get <span class="token function"><span class="token function">dc</span></span> --all-namespaces <span class="token parameter variable"><span class="token parameter variable">-l</span></span> oadp.openshift.io/replicas-modified<span class="token operator"><span class="token operator">=</span></span>$label <span class="token parameter variable"><span class="token parameter variable">-o</span></span> <span class="token assign-left variable"><span class="token assign-left variable">jsonpath</span></span><span class="token operator"><span class="token operator">=</span></span><span class="token string"><span class="token string">'{range .items[*]}{.metadata.namespace}{","}{.metadata.name}{","}{.metadata.annotations.oadp\.openshift\.io/original-replicas}{","}{.metadata.annotations.oadp\.openshift\.io/original-paused}{"\n"}'</span></span><span class="token variable"><span class="token variable">)</span></span></span><span class="token variable"></span></span>
<span class="token keyword"><span class="token keyword">do</span></span>
<span class="token assign-left variable"><span class="token environment constant"><span class="token assign-left variable"><span class="token environment constant">IFS</span></span></span></span><span class="token operator"><span class="token operator">=</span></span><span class="token string"><span class="token string">','</span></span> <span class="token builtin class-name"><span class="token builtin class-name">read</span></span> <span class="token parameter variable"><span class="token parameter variable">-ra</span></span> dc_arr <span class="token operator"><span class="token operator"><<<</span></span> <span class="token string"><span class="token string">"<span class="token variable"><span class="token variable">$dc</span></span>"</span></span>
<span class="token keyword"><span class="token keyword">if</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span> <span class="token variable"><span class="token variable">${<span class="token operator"><span class="token operator">#</span></span>dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>0<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span> <span class="token parameter variable"><span class="token parameter variable">-gt</span></span> <span class="token number"><span class="token number">0</span></span> <span class="token punctuation"><span class="token punctuation">]</span></span><span class="token punctuation"><span class="token punctuation">;</span></span> <span class="token keyword"><span class="token keyword">then</span></span>
<span class="token builtin class-name"><span class="token builtin class-name">echo</span></span> Found deployment <span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>0<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span>/<span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>1<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span>, setting replicas: <span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>2<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span>, paused: <span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>3<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span>
<span class="token function"><span class="token function">cat</span></span> <span class="token operator"><span class="token operator"><<</span></span><span class="token string"><span class="token string">EOF<span class="token bash punctuation"><span class="token bash punctuation"> <span class="token operator"><span class="token operator">|</span></span> oc patch <span class="token function"><span class="token function">dc</span></span> <span class="token parameter variable"><span class="token parameter variable">-n</span></span> <span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>0<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span> <span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>1<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span> --patch-file /dev/stdin</span></span>
spec:
replicas: <span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>2<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span>
paused: <span class="token variable"><span class="token variable">${dc_arr<span class="token punctuation"><span class="token punctuation">[</span></span>3<span class="token punctuation"><span class="token punctuation">]</span></span>}</span></span>
EOF</span></span>
<span class="token keyword"><span class="token keyword">fi</span></span>
<span class="token keyword"><span class="token keyword">done</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: <restore>
namespace: openshift-adp
spec:
hooks:
resources:
- name: <hook_name>
includedNamespaces:
- <namespace>
excludedNamespaces:
- <namespace>
includedResources:
- pods
excludedResources: []
labelSelector:
matchLabels:
app: velero
component: server
postHooks:
- init:
initContainers:
- name: restore-hook-init
image: alpine:latest
volumeMounts:
- mountPath: /restores/pvc1-vm
name: pvc1-vm
command:
- /bin/ash
- -c
timeout:
- exec:
container: <container>
command:
- /bin/bash
- -c
- "psql < /backup/backup.sql"
waitTimeout: 5m
execTimeout: 1m
onError: Continue
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <restore<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <hook_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO162-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <namespace<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> pods </code></pre><rh-badge id="CO162-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token punctuation"><span class="token punctuation">]</span></span>
<span class="token key atrule"><span class="token key atrule">labelSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO162-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">component</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> server
<span class="token key atrule"><span class="token key atrule">postHooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">init</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">initContainers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restore<span class="token punctuation"><span class="token punctuation">-</span></span>hook<span class="token punctuation"><span class="token punctuation">-</span></span>init
<span class="token key atrule"><span class="token key atrule">image</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> alpine<span class="token punctuation"><span class="token punctuation">:</span></span>latest
<span class="token key atrule"><span class="token key atrule">volumeMounts</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">mountPath</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /restores/pvc1<span class="token punctuation"><span class="token punctuation">-</span></span>vm
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> pvc1<span class="token punctuation"><span class="token punctuation">-</span></span>vm
<span class="token key atrule"><span class="token key atrule">command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> /bin/ash
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token punctuation"><span class="token punctuation">-</span></span>c
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO162-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">exec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">container</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <container<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO162-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> /bin/bash </code></pre><rh-badge id="CO162-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token punctuation"><span class="token punctuation">-</span></span>c
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token string"><span class="token string">"psql < /backup/backup.sql"</span></span>
<span class="token key atrule"><span class="token key atrule">waitTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 5m </code></pre><rh-badge id="CO162-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">execTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1m </code></pre><rh-badge id="CO162-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">onError</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Continue </code></pre><rh-badge id="CO162-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--from-backup <BACKUP_NAME> \
--exclude-resources=deployment.apps
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero restore create <span class="token operator"><</span>RESTORE_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--from-backup <span class="token operator"><</span>BACKUP_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--exclude-resources<span class="token operator">=</span>deployment.apps</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--from-backup <BACKUP_NAME> \
--include-resources=deployment.apps
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero restore create <span class="token operator"><</span>RESTORE_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--from-backup <span class="token operator"><</span>BACKUP_NAME<span class="token operator">></span> <span class="token punctuation">\</span>
--include-resources<span class="token operator">=</span>deployment.apps</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
- apiGroups:
- oadp.openshift.io
resources:
- nonadminbackups
- nonadminrestores
- nonadminbackupstoragelocations
- nonadmindownloadrequests
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- oadp.openshift.io
resources:
- nonadminbackups/status
- nonadminrestores/status
verbs:
- get
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">apiGroups</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> oadp.openshift.io
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminbackups
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminrestores
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminbackupstoragelocations
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadmindownloadrequests
<span class="token key atrule"><span class="token key atrule">verbs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> create
<span class="token punctuation"><span class="token punctuation">-</span></span> delete
<span class="token punctuation"><span class="token punctuation">-</span></span> get
<span class="token punctuation"><span class="token punctuation">-</span></span> list
<span class="token punctuation"><span class="token punctuation">-</span></span> patch
<span class="token punctuation"><span class="token punctuation">-</span></span> update
<span class="token punctuation"><span class="token punctuation">-</span></span> watch
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">apiGroups</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> oadp.openshift.io
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminbackups/status
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminrestores/status
<span class="token key atrule"><span class="token key atrule">verbs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> get</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">message: only a single instance of Non-Admin Controller can be installed across the entire cluster. Non-Admin controller is already configured and installed in openshift-adp namespace.</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- aws
- openshift
- csi
defaultSnapshotMoveData: true
nonAdmin:
enable: true
backupLocations:
- velero:
config:
profile: "default"
region: noobaa
s3Url: https://s3.openshift-storage.svc
s3ForcePathStyle: "true"
insecureSkipTLSVerify: "true"
provider: aws
default: true
credential:
key: cloud
name: <cloud_credentials>
objectStorage:
bucket: <bucket_name>
prefix: oadp
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">defaultSnapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">nonAdmin</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO163-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO163-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> noobaa
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> https<span class="token punctuation"><span class="token punctuation">:</span></span>//s3.openshift<span class="token punctuation"><span class="token punctuation">-</span></span>storage.svc
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <cloud_credentials<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pod <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-l</span> control-plane<span class="token operator">=</span>non-admin-controller</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
non-admin-controller-5d....f5-p..9p 1/1 Running 0 99m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME READY STATUS RESTARTS AGE
non-admin-controller-5d....f5-p..9p 1/1 Running 0 99m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: oadp-backup
namespace: openshift-adp
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- aws
- openshift
- csi
noDefaultBackupLocation: true
nonAdmin:
enable: true
requireApprovalForBSL: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">noDefaultBackupLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO164-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">nonAdmin</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">requireApprovalForBSL</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO164-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp get NonAdminBackupStorageLocationRequests</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
non-admin-bsl-test-.....175 Approved non-admin-bsl-test incorrect-bucket-nabsl 4m57s
non-admin-bsl-test-.....196 Approved non-admin-bsl-test perfect-nabsl 5m26s
non-admin-bsl-test-s....e1a Rejected non-admin-bsl-test suspicious-sample 2m56s
non-admin-bsl-test-.....5e0 Pending non-admin-bsl-test waitingapproval-nabsl 4m20s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME REQUEST-PHASE REQUEST-NAMESPACE REQUEST-NAME AGE
non-admin-bsl-test-.....175 Approved non-admin-bsl-test incorrect-bucket-nabsl 4m57s
non-admin-bsl-test-.....196 Approved non-admin-bsl-test perfect-nabsl 5m26s
non-admin-bsl-test-s....e1a Rejected non-admin-bsl-test suspicious-sample 2m56s
non-admin-bsl-test-.....5e0 Pending non-admin-bsl-test waitingapproval-nabsl 4m20s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch nabslrequest <span class="token operator"><</span>nabsl_name<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"approvalDecision": "approve"}}'</span> </span></span></code></pre><rh-badge id="CO165-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get velero.io.backupstoragelocation</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
test-nac-test-bsl-cd...930 Available 62s 62s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LAST VALIDATED AGE DEFAULT
test-nac-test-bsl-cd...930 Available 62s 62s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp get NonAdminBackupStorageLocationRequests</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nabslrequest</span></span>
<span class="token output">NAME REQUEST-PHASE REQUEST-NAMESPACE REQUEST-NAME AGE
non-admin-bsl-test-.....175 Approved non-admin-bsl-test incorrect-bucket-nabsl 4m57s
non-admin-bsl-test-.....196 Approved non-admin-bsl-test perfect-nabsl 5m26s
non-admin-bsl-test-s....e1a Rejected non-admin-bsl-test suspicious-sample 2m56s
non-admin-bsl-test-.....5e0 Pending non-admin-bsl-test waitingapproval-nabsl 4m20s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch nabslrequest <span class="token operator"><</span>nabsl_name<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"approvalDecision": "reject"}}'</span> </span></span></code></pre><rh-badge id="CO166-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
nonAdmin:
enable: true
enforceBSLSpec:
config:
checksumAlgorithm: ""
profile: default
region: us-west-2
objectStorage:
bucket: my-company-bucket
prefix: velero
provider: aws
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nonAdmin</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">enforceBSLSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO167-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO167-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">checksumAlgorithm</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>west<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO167-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> my<span class="token punctuation"><span class="token punctuation">-</span></span>company<span class="token punctuation"><span class="token punctuation">-</span></span>bucket
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
nonAdmin:
enable: true
enforceBackupSpec:
snapshotMoveData: true
ttl: 158h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nonAdmin</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">enforceBackupSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO168-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO168-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 158h0m0s </code></pre><rh-badge id="CO168-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials <span class="token parameter variable">-n</span> test-nac-ns --from-file <span class="token operator"><</span>cloud_key_name<span class="token operator">>=</span><span class="token operator"><</span>cloud_credentials_file<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO169-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminBackupStorageLocation
metadata:
name: test-nabsl
namespace: test-nac-ns
spec:
backupStorageLocationSpec:
config:
profile: default
region: <region_name>
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nabsl
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>ns </code></pre><rh-badge id="CO170-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupStorageLocationSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO170-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO170-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>nabsl_cr_filename<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO171-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nabsl test-nabsl <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminBackupStorageLocation
...
status:
conditions:
- lastTransitionTime: "2025-02-26T09:07:15Z"
message: NonAdminBackupStorageLocation spec validation successful
reason: BslSpecValidation
status: "True"
type: Accepted
- lastTransitionTime: "2025-02-26T09:07:15Z"
message: NonAdminBackupStorageLocationRequest approval pending
reason: BslSpecApprovalPending
status: "False"
type: ClusterAdminApproved
phase: New
veleroBackupStorageLocation:
nacuuid: test-nac-test-bsl-c...d4389a1930
name: test-nac-test-bsl-cd....1930
namespace: openshift-adp
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-26T09:07:15Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation spec validation successful
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BslSpecValidation
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Accepted
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-26T09:07:15Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocationRequest approval pending </code></pre><rh-badge id="CO172-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BslSpecApprovalPending
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"False"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ClusterAdminApproved
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> New </code></pre><rh-badge id="CO172-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">veleroBackupStorageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nacuuid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>bsl<span class="token punctuation"><span class="token punctuation">-</span></span>c<span class="token punctuation"><span class="token punctuation">...</span></span>d4389a1930
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>bsl<span class="token punctuation"><span class="token punctuation">-</span></span>cd<span class="token punctuation"><span class="token punctuation">...</span></span>.1930
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nabsl test-nabsl <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminBackupStorageLocation
metadata:
creationTimestamp: "2025-02-19T09:30:34Z"
finalizers:
- nonadminbackupstoragelocation.oadp.openshift.io/finalizer
generation: 1
name: test-nabsl
namespace: test-nac-ns
resourceVersion: "159973"
uid: 4a..80-3260-4ef9-a3..5a-00...d1922
spec:
backupStorageLocationSpec:
credential:
key: cloud
name: cloud-credentials
objectStorage:
bucket: oadp...51rrdqj
prefix: velero
provider: aws
status:
conditions:
- lastTransitionTime: "2025-02-19T09:30:34Z"
message: NonAdminBackupStorageLocation spec validation successful
reason: BslSpecValidation
status: "True"
type: Accepted
- lastTransitionTime: "2025-02-19T09:30:34Z"
message: Secret successfully created in the OADP namespace
reason: SecretCreated
status: "True"
type: SecretSynced
- lastTransitionTime: "2025-02-19T09:30:34Z"
message: BackupStorageLocation successfully created in the OADP namespace
reason: BackupStorageLocationCreated
status: "True"
type: BackupStorageLocationSynced
phase: Created
veleroBackupStorageLocation:
nacuuid: test-nac-..f933a-4ec1-4f6a-8099-ee...b8b26
name: test-nac-test-nabsl-36...11ab8b26
namespace: openshift-adp
status:
lastSyncedTime: "2025-02-19T11:47:10Z"
lastValidationTime: "2025-02-19T11:47:31Z"
phase: Available
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-19T09:30:34Z"</span></span>
<span class="token key atrule"><span class="token key atrule">finalizers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminbackupstoragelocation.oadp.openshift.io/finalizer
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nabsl
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>ns
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"159973"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 4a..80<span class="token punctuation"><span class="token punctuation">-</span></span>3260<span class="token punctuation"><span class="token punctuation">-</span></span>4ef9<span class="token punctuation"><span class="token punctuation">-</span></span>a3..5a<span class="token punctuation"><span class="token punctuation">-</span></span>00<span class="token punctuation"><span class="token punctuation">...</span></span>d1922
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupStorageLocationSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">...</span></span>51rrdqj
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-19T09:30:34Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation spec validation successful </code></pre><rh-badge id="CO173-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BslSpecValidation
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Accepted
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-19T09:30:34Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Secret successfully created in the OADP namespace </code></pre><rh-badge id="CO173-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> SecretCreated
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> SecretSynced
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-19T09:30:34Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupStorageLocation successfully created in the OADP namespace </code></pre><rh-badge id="CO173-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupStorageLocationCreated
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupStorageLocationSynced
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Created
<span class="token key atrule"><span class="token key atrule">veleroBackupStorageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nacuuid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>..f933a<span class="token punctuation"><span class="token punctuation">-</span></span>4ec1<span class="token punctuation"><span class="token punctuation">-</span></span>4f6a<span class="token punctuation"><span class="token punctuation">-</span></span>8099<span class="token punctuation"><span class="token punctuation">-</span></span>ee<span class="token punctuation"><span class="token punctuation">...</span></span>b8b26 </code></pre><rh-badge id="CO173-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>nabsl<span class="token punctuation"><span class="token punctuation">-</span></span>36<span class="token punctuation"><span class="token punctuation">...</span></span>11ab8b26 </code></pre><rh-badge id="CO173-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">lastSyncedTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-19T11:47:10Z"</span></span>
<span class="token key atrule"><span class="token key atrule">lastValidationTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-19T11:47:31Z"</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Available </code></pre><rh-badge id="CO173-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminBackup
metadata:
name: test-nab
spec:
backupSpec:
defaultVolumesToFsBackup: true
snapshotMoveData: false
storageLocation: test-bsl
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nab </code></pre><rh-badge id="CO174-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO174-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO174-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>bsl </code></pre><rh-badge id="CO174-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>nab_cr_filename<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO175-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nab test-nab <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminBackup
metadata:
creationTimestamp: "2025-03-06T10:02:56Z"
finalizers:
- nonadminbackup.oadp.openshift.io/finalizer
generation: 2
name: test-nab
namespace: test-nac-ns
resourceVersion: "134316"
uid: c5...4c8a8
spec:
backupSpec:
csiSnapshotTimeout: 0s
defaultVolumesToFsBackup: true
hooks: {}
itemOperationTimeout: 0s
metadata: {}
storageLocation: test-bsl
ttl: 0s
status:
conditions:
- lastTransitionTime: "202...56Z"
message: backup accepted
reason: BackupAccepted
status: "True"
type: Accepted
- lastTransitionTime: "202..T10:02:56Z"
message: Created Velero Backup object
reason: BackupScheduled
status: "True"
type: Queued
dataMoverDataUploads: {}
fileSystemPodVolumeBackups:
completed: 2
total: 2
phase: Created
queueInfo:
estimatedQueuePosition: 0
veleroBackup:
nacuuid: test-nac-test-nab-d2...a9b14
name: test-nac-test-nab-d2...b14
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: true
excludedResources:
- nonadminbackups
- nonadminrestores
- nonadminbackupstoragelocations
- securitycontextconstraints
- clusterroles
- clusterrolebindings
- priorityclasses
- customresourcedefinitions
- virtualmachineclusterinstancetypes
- virtualmachineclusterpreferences
hooks: {}
includedNamespaces:
- test-nac-ns
itemOperationTimeout: 4h0m0s
metadata: {}
snapshotMoveData: false
storageLocation: test-nac-test-bsl-bf..02b70a
ttl: 720h0m0s
status:
completionTimestamp: "2025-0..3:13Z"
expiration: "2025..2:56Z"
formatVersion: 1.1.0
hookStatus: {}
phase: Completed
progress:
itemsBackedUp: 46
totalItems: 46
startTimestamp: "2025-..56Z"
version: 1
warnings: 1
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-03-06T10:02:56Z"</span></span>
<span class="token key atrule"><span class="token key atrule">finalizers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminbackup.oadp.openshift.io/finalizer
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nab
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>ns </code></pre><rh-badge id="CO176-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"134316"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> c5<span class="token punctuation"><span class="token punctuation">...</span></span>4c8a8
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 0s
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>bsl
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 0s
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"202...56Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup accepted </code></pre><rh-badge id="CO176-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupAccepted
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Accepted
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"202..T10:02:56Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Created Velero Backup object
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupScheduled
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Queued
<span class="token key atrule"><span class="token key atrule">dataMoverDataUploads</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">fileSystemPodVolumeBackups</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO176-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">completed</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">total</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Created </code></pre><rh-badge id="CO176-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">queueInfo</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">estimatedQueuePosition</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">0</span></span> </code></pre><rh-badge id="CO176-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">veleroBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nacuuid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>nab<span class="token punctuation"><span class="token punctuation">-</span></span>d2<span class="token punctuation"><span class="token punctuation">...</span></span>a9b14 </code></pre><rh-badge id="CO176-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>nab<span class="token punctuation"><span class="token punctuation">-</span></span>d2<span class="token punctuation"><span class="token punctuation">...</span></span>b14 </code></pre><rh-badge id="CO176-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminbackups
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminrestores
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminbackupstoragelocations
<span class="token punctuation"><span class="token punctuation">-</span></span> securitycontextconstraints
<span class="token punctuation"><span class="token punctuation">-</span></span> clusterroles
<span class="token punctuation"><span class="token punctuation">-</span></span> clusterrolebindings
<span class="token punctuation"><span class="token punctuation">-</span></span> priorityclasses
<span class="token punctuation"><span class="token punctuation">-</span></span> customresourcedefinitions
<span class="token punctuation"><span class="token punctuation">-</span></span> virtualmachineclusterinstancetypes
<span class="token punctuation"><span class="token punctuation">-</span></span> virtualmachineclusterpreferences
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>ns
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 4h0m0s
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>bsl<span class="token punctuation"><span class="token punctuation">-</span></span>bf..02b70a
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO176-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">completionTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-0..3:13Z"</span></span>
<span class="token key atrule"><span class="token key atrule">expiration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025..2:56Z"</span></span>
<span class="token key atrule"><span class="token key atrule">formatVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1.1.0
<span class="token key atrule"><span class="token key atrule">hookStatus</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Completed </code></pre><rh-badge id="CO176-9" state="info">9</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">progress</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">itemsBackedUp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">46</span></span>
<span class="token key atrule"><span class="token key atrule">totalItems</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">46</span></span>
<span class="token key atrule"><span class="token key atrule">startTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-..56Z"</span></span>
<span class="token key atrule"><span class="token key atrule">version</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">warnings</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminRestore
metadata:
name: test-nar
spec:
restoreSpec:
backupName: test-nab
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminRestore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nar </code></pre><rh-badge id="CO177-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">restoreSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nab </code></pre><rh-badge id="CO177-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>nar_cr_filename<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO178-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nar test-nar <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminRestore
metadata:
creationTimestamp: "2025-..:15Z"
finalizers:
- nonadminrestore.oadp.openshift.io/finalizer
generation: 2
name: test-nar
namespace: test-nac-ns
resourceVersion: "156517"
uid: f9f5...63ef34
spec:
restoreSpec:
backupName: test-nab
hooks: {}
itemOperationTimeout: 0s
status:
conditions:
- lastTransitionTime: "2025..15Z"
message: restore accepted
reason: RestoreAccepted
status: "True"
type: Accepted
- lastTransitionTime: "2025-03-06T11:22:15Z"
message: Created Velero Restore object
reason: RestoreScheduled
status: "True"
type: Queued
dataMoverDataDownloads: {}
fileSystemPodVolumeRestores:
completed: 2
total: 2
phase: Created
queueInfo:
estimatedQueuePosition: 0
veleroRestore:
nacuuid: test-nac-test-nar-c...1ba
name: test-nac-test-nar-c7...1ba
namespace: openshift-adp
status:
completionTimestamp: "2025...22:44Z"
hookStatus: {}
phase: Completed
progress:
itemsRestored: 28
totalItems: 28
startTimestamp: "2025..15Z"
warnings: 7
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminRestore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-..:15Z"</span></span>
<span class="token key atrule"><span class="token key atrule">finalizers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nonadminrestore.oadp.openshift.io/finalizer
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nar
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>ns
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"156517"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> f9f5<span class="token punctuation"><span class="token punctuation">...</span></span>63ef34
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">restoreSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nab
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 0s
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025..15Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restore accepted </code></pre><rh-badge id="CO179-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RestoreAccepted
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Accepted
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-03-06T11:22:15Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Created Velero Restore object
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RestoreScheduled
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Queued
<span class="token key atrule"><span class="token key atrule">dataMoverDataDownloads</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">fileSystemPodVolumeRestores</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO179-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">completed</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">total</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Created </code></pre><rh-badge id="CO179-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">queueInfo</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">estimatedQueuePosition</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">0</span></span> </code></pre><rh-badge id="CO179-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">veleroRestore</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nacuuid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>nar<span class="token punctuation"><span class="token punctuation">-</span></span>c<span class="token punctuation"><span class="token punctuation">...</span></span>1ba </code></pre><rh-badge id="CO179-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>nar<span class="token punctuation"><span class="token punctuation">-</span></span>c7<span class="token punctuation"><span class="token punctuation">...</span></span>1ba </code></pre><rh-badge id="CO179-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">completionTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025...22:44Z"</span></span>
<span class="token key atrule"><span class="token key atrule">hookStatus</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">{</span></span><span class="token punctuation"><span class="token punctuation">}</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Completed </code></pre><rh-badge id="CO179-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">progress</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">itemsRestored</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">28</span></span>
<span class="token key atrule"><span class="token key atrule">totalItems</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">28</span></span>
<span class="token key atrule"><span class="token key atrule">startTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025..15Z"</span></span>
<span class="token key atrule"><span class="token key atrule">warnings</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">7</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminDownloadRequest
metadata:
name: test-nadr-backup
spec:
target:
kind: BackupLog
name: test-nab
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminDownloadRequest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nadr<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">target</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupLog </code></pre><rh-badge id="CO180-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nab </code></pre><rh-badge id="CO180-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nadr test-nadr-backup <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminDownloadRequest
metadata:
creationTimestamp: "2025-03-06T10:05:22Z"
generation: 1
name: test-nadr-backup
namespace: test-nac-ns
resourceVersion: "134866"
uid: 520...8d9
spec:
target:
kind: BackupLog
name: test-nab
status:
conditions:
- lastTransitionTime: "202...5:22Z"
message: ""
reason: Success
status: "True"
type: Processed
phase: Created
velero:
status:
downloadURL: https://...
expiration: "202...22Z"
phase: Processed
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminDownloadRequest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-03-06T10:05:22Z"</span></span>
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nadr<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>ns
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"134866"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 520<span class="token punctuation"><span class="token punctuation">...</span></span>8d9
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">target</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupLog
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nab
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"202...5:22Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span>
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Success
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Processed
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Created
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">downloadURL</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> https<span class="token punctuation"><span class="token punctuation">:</span></span>//<span class="token punctuation"><span class="token punctuation">...</span></span> </code></pre><rh-badge id="CO181-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">expiration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"202...22Z"</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Processed </code></pre><rh-badge id="CO181-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminDownloadRequest
metadata:
name: test-nadr-restore
spec:
target:
kind: RestoreLog
name: test-nar
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminDownloadRequest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nadr<span class="token punctuation"><span class="token punctuation">-</span></span>restore
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">target</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RestoreLog </code></pre><rh-badge id="CO182-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nar </code></pre><rh-badge id="CO182-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nadr test-nadr-restore <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminDownloadRequest
metadata:
creationTimestamp: "2025-03-06T11:26:01Z"
generation: 1
name: test-nadr-restore
namespace: test-nac-ns
resourceVersion: "157842"
uid: f3e...7862f
spec:
target:
kind: RestoreLog
name: test-nar
status:
conditions:
- lastTransitionTime: "202..:01Z"
message: ""
reason: Success
status: "True"
type: Processed
phase: Created
velero:
status:
downloadURL: https://...
expiration: "202..:01Z"
phase: Processed
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminDownloadRequest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-03-06T11:26:01Z"</span></span>
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nadr<span class="token punctuation"><span class="token punctuation">-</span></span>restore
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span>ns
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"157842"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> f3e<span class="token punctuation"><span class="token punctuation">...</span></span>7862f
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">target</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RestoreLog
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nar
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"202..:01Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span>
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Success
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Processed
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Created
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">downloadURL</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> https<span class="token punctuation"><span class="token punctuation">:</span></span>//<span class="token punctuation"><span class="token punctuation">...</span></span> </code></pre><rh-badge id="CO183-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">expiration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"202..:01Z"</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Processed </code></pre><rh-badge id="CO183-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NonAdminBackupStorageLocation not found in the namespace: NonAdminBackupStorageLocation.oadp.openshift.io</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminBackup
...
status:
conditions:
- lastTransitionTime: "2025-02-20T10:13:00Z"
message: 'NonAdminBackupStorageLocation not found in the namespace: NonAdminBackupStorageLocation.oadp.openshift.io
"nabsl2" not found'
reason: InvalidBackupSpec
status: "False"
type: Accepted
phase: BackingOff
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackup
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-02-20T10:13:00Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 'NonAdminBackupStorageLocation not found in the namespace<span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation.oadp.openshift.io
"nabsl2" not found'
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> InvalidBackupSpec
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"False"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Accepted
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackingOff</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: NonAdminBackupStorageLocation
metadata:
creationTimestamp: "20...:03Z"
generation: 1
name: nabsl1
namespace: test-nac-1
resourceVersion: "11...9"
uid: 8d2fc....c9b6c4401
spec:
backupStorageLocationSpec:
credential:
key: cloud
name: cloud-credentials-gcp
default: true
objectStorage:
bucket: oad..7l8
prefix: velero
provider: gcp
status:
conditions:
- lastTransitionTime: "20...:27:03Z"
message: NonAdminBackupStorageLocation cannot be used as a default BSL
reason: BslSpecValidation
status: "False"
type: Accepted
phase: BackingOff
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"20...:03Z"</span></span>
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> nabsl1
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>nac<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"11...9"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 8d2fc<span class="token punctuation"><span class="token punctuation">...</span></span>.c9b6c4401
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupStorageLocationSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>gcp
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO184-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oad..7l8
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"20...:27:03Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> NonAdminBackupStorageLocation cannot be used as a default BSL </code></pre><rh-badge id="CO184-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BslSpecValidation
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"False"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Accepted
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackingOff</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">CLUSTER_NAME</span><span class="token operator">=</span>my-cluster </span></span></code></pre><rh-badge id="CO185-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> export ROSA_CLUSTER_ID=$(rosa describe cluster -c ${CLUSTER_NAME} --output json | jq -r .id)
export REGION=$(rosa describe cluster -c ${CLUSTER_NAME} --output json | jq -r .region.id)
export OIDC_ENDPOINT=$(oc get authentication.config.openshift.io cluster -o jsonpath='{.spec.serviceAccountIssuer}' | sed 's|^https://||')
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
export CLUSTER_VERSION=$(rosa describe cluster -c ${CLUSTER_NAME} -o json | jq -r .version.raw_id | cut -f -2 -d '.')
export ROLE_NAME="${CLUSTER_NAME}-openshift-oadp-aws-cloud-credentials"
export SCRATCH="/tmp/${CLUSTER_NAME}/oadp"
mkdir -p ${SCRATCH}
echo "Cluster ID: ${ROSA_CLUSTER_ID}, Region: ${REGION}, OIDC Endpoint:
${OIDC_ENDPOINT}, AWS Account ID: ${AWS_ACCOUNT_ID}"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">POLICY_ARN</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>aws iam list-policies <span class="token parameter variable">--query</span> <span class="token string">"Policies[?PolicyName=='RosaOadpVer1'].{ARN:Arn}"</span> <span class="token parameter variable">--output</span> text<span class="token variable">)</span></span> </span></span></code></pre><rh-badge id="CO186-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-z</span> <span class="token string">"<span class="token variable">${POLICY_ARN}</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span></span></span>
<span class="token output"> cat << EOF > ${SCRATCH}/policy.json </span></code></pre><rh-badge id="CO187-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:DeleteBucket",
"s3:PutBucketTagging",
"s3:GetBucketTagging",
"s3:PutEncryptionConfiguration",
"s3:GetEncryptionConfiguration",
"s3:PutLifecycleConfiguration",
"s3:GetLifecycleConfiguration",
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts",
"ec2:DescribeSnapshots",
"ec2:DescribeVolumes",
"ec2:DescribeVolumeAttribute",
"ec2:DescribeVolumesModifications",
"ec2:DescribeVolumeStatus",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot"
],
"Resource": "*"
}
]}
EOF
POLICY_ARN=$(aws iam create-policy --policy-name "RosaOadpVer1" \
--policy-document file:///${SCRATCH}/policy.json --query Policy.Arn \
--tags Key=rosa_openshift_version,Value=${CLUSTER_VERSION} Key=rosa_role_prefix,Value=ManagedOpenShift Key=operator_namespace,Value=openshift-oadp Key=operator_name,Value=openshift-oadp \
--output text)
fi</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">echo</span> <span class="token variable">${POLICY_ARN}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::${AWS_ACCOUNT_ID}:oidc-provider/${OIDC_ENDPOINT}"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"${OIDC_ENDPOINT}:sub": [
"system:serviceaccount:openshift-adp:openshift-adp-controller-manager",
"system:serviceaccount:openshift-adp:velero"]
}
}
}]
}
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span><span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">></span> <span class="token variable">${SCRATCH}</span>/trust-policy.json</span>
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<span class="token variable">${AWS_ACCOUNT_ID}</span>:oidc-provider/<span class="token variable">${OIDC_ENDPOINT}</span>"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"<span class="token variable">${OIDC_ENDPOINT}</span>:sub": [
"system:serviceaccount:openshift-adp:openshift-adp-controller-manager",
"system:serviceaccount:openshift-adp:velero"]
}
}
}]
}
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"${ROLE_NAME}" \
--assume-role-policy-document file://${SCRATCH}/trust-policy.json \
--tags Key=rosa_cluster_id,Value=${ROSA_CLUSTER_ID} \
Key=rosa_openshift_version,Value=${CLUSTER_VERSION} \
Key=rosa_role_prefix,Value=ManagedOpenShift \
Key=operator_namespace,Value=openshift-adp \
Key=operator_name,Value=openshift-oadp \
--query Role.Arn --output text)
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">ROLE_ARN</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>aws iam create-role --role-name <span class="token punctuation">\</span>
<span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span> <span class="token punctuation">\</span>
--assume-role-policy-document file://$<span class="token punctuation">{</span>SCRATCH<span class="token punctuation">}</span>/trust-policy.json <span class="token punctuation">\</span>
<span class="token parameter variable">--tags</span> <span class="token assign-left variable">Key</span><span class="token operator">=</span>rosa_cluster_id,Value<span class="token operator">=</span>$<span class="token punctuation">{</span>ROSA_CLUSTER_ID<span class="token punctuation">}</span> <span class="token punctuation">\</span>
<span class="token assign-left variable">Key</span><span class="token operator">=</span>rosa_openshift_version,Value<span class="token operator">=</span>$<span class="token punctuation">{</span>CLUSTER_VERSION<span class="token punctuation">}</span> <span class="token punctuation">\</span>
<span class="token assign-left variable">Key</span><span class="token operator">=</span>rosa_role_prefix,Value<span class="token operator">=</span>ManagedOpenShift <span class="token punctuation">\</span>
<span class="token assign-left variable">Key</span><span class="token operator">=</span>operator_namespace,Value<span class="token operator">=</span>openshift-adp <span class="token punctuation">\</span>
<span class="token assign-left variable">Key</span><span class="token operator">=</span>operator_name,Value<span class="token operator">=</span>openshift-oadp <span class="token punctuation">\</span>
<span class="token parameter variable">--query</span> Role.Arn <span class="token parameter variable">--output</span> text<span class="token variable">)</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">echo</span> <span class="token variable">${ROLE_ARN}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--policy-arn ${POLICY_ARN}
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam attach-role-policy --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span> <span class="token punctuation">\</span>
--policy-arn <span class="token variable">${POLICY_ARN}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
[default]
role_arn = ${ROLE_ARN}
web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
region = <aws_region>
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> </span></span><span class="token output"><<EOF > ${SCRATCH}/credentials
[default]
role_arn = ${ROLE_ARN}
web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
region = <aws_region> </span></code></pre><rh-badge id="CO188-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create namespace openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--from-file=${SCRATCH}/credentials
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp create secret generic cloud-credentials <span class="token punctuation">\</span>
--from-file<span class="token operator">=</span><span class="token variable">${SCRATCH}</span>/credentials</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: CloudStorage
metadata:
name: ${CLUSTER_NAME}-oadp
namespace: openshift-adp
spec:
creationSecret:
key: credentials
name: cloud-credentials
enableSharedConfig: true
name: ${CLUSTER_NAME}-oadp
provider: aws
region: $REGION
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: oadp.openshift.io/v1alpha1
kind: CloudStorage
metadata:
name: <span class="token variable">${CLUSTER_NAME}</span>-oadp
namespace: openshift-adp
spec:
creationSecret:
key: credentials
name: cloud-credentials
enableSharedConfig: true
name: <span class="token variable">${CLUSTER_NAME}</span>-oadp
provider: aws
region: <span class="token variable">$REGION</span>
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pvc <span class="token parameter variable">-n</span> <span class="token operator"><</span>namespace<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
applog Bound pvc-351791ae-b6ab-4e8b-88a4-30f73caf5ef8 1Gi RWO gp3-csi 4d19h
mysql Bound pvc-16b8e009-a20a-4379-accc-bc81fedd0621 1Gi RWO gp3-csi 4d19h
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
applog Bound pvc-351791ae-b6ab-4e8b-88a4-30f73caf5ef8 1Gi RWO gp3-csi 4d19h
mysql Bound pvc-16b8e009-a20a-4379-accc-bc81fedd0621 1Gi RWO gp3-csi 4d19h</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get storageclass</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer true 4d21h
gp2-csi ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3 ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3-csi (default) ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer true 4d21h
gp2-csi ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3 ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3-csi (default) ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true
features:
dataMover:
enable: false
backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
- csi
nodeAgent:
enable: false
uploaderType: kopia
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> </span></span><span class="token output"><< EOF | oc create -f -
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true </span></code></pre><rh-badge id="CO189-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> features:
dataMover:
enable: false
backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
- csi
nodeAgent: </span></code></pre><rh-badge id="CO189-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> enable: false
uploaderType: kopia </span></code></pre><rh-badge id="CO189-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true
backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
nodeAgent:
enable: false
uploaderType: restic
snapshotLocations:
- velero:
config:
credentialsFile: /tmp/credentials/openshift-adp/cloud-credentials-credentials
enableSharedConfig: "true"
profile: default
region: ${REGION}
provider: aws
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> </span></span><span class="token output"><< EOF | oc create -f -
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true </span></code></pre><rh-badge id="CO190-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
nodeAgent: </span></code></pre><rh-badge id="CO190-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> enable: false
uploaderType: restic
snapshotLocations:
- velero:
config:
credentialsFile: /tmp/credentials/openshift-adp/cloud-credentials-credentials </span></code></pre><rh-badge id="CO190-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> enableSharedConfig: "true" </span></code></pre><rh-badge id="CO190-4" state="info">4</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> profile: default </span></code></pre><rh-badge id="CO190-5" state="info">5</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> region: ${REGION} </span></code></pre><rh-badge id="CO190-6" state="info">6</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> provider: aws
EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
enable: false
uploaderType: restic
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">nodeAgent:
enable: false
uploaderType: restic</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
enable: false
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">restic:
enable: false</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get sub <span class="token parameter variable">-o</span> yaml redhat-oadp-operator</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Subscription
metadata:
annotations:
creationTimestamp: "2025-01-15T07:18:31Z"
generation: 1
labels:
operators.coreos.com/redhat-oadp-operator.openshift-adp: ""
name: redhat-oadp-operator
namespace: openshift-adp
resourceVersion: "77363"
uid: 5ba00906-5ad2-4476-ae7b-ffa90986283d
spec:
channel: stable-1.4
config:
env:
- name: ROLEARN
value: arn:aws:iam::11111111:role/wrong-role-arn
installPlanApproval: Manual
name: redhat-oadp-operator
source: prestage-operators
sourceNamespace: openshift-marketplace
startingCSV: oadp-operator.v1.4.2
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operators.coreos.com/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Subscription
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">annotations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2025-01-15T07:18:31Z"</span></span>
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">operators.coreos.com/redhat-oadp-operator.openshift-adp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> redhat<span class="token punctuation"><span class="token punctuation">-</span></span>oadp<span class="token punctuation"><span class="token punctuation">-</span></span>operator
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"77363"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 5ba00906<span class="token punctuation"><span class="token punctuation">-</span></span>5ad2<span class="token punctuation"><span class="token punctuation">-</span></span>4476<span class="token punctuation"><span class="token punctuation">-</span></span>ae7b<span class="token punctuation"><span class="token punctuation">-</span></span>ffa90986283d
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">channel</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> stable<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1.4</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">env</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ROLEARN
<span class="token key atrule"><span class="token key atrule">value</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> arn<span class="token punctuation"><span class="token punctuation">:</span></span>aws<span class="token punctuation"><span class="token punctuation">:</span></span>iam<span class="token punctuation"><span class="token punctuation">:</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>11111111<span class="token punctuation"><span class="token punctuation">:</span></span>role/wrong<span class="token punctuation"><span class="token punctuation">-</span></span>role<span class="token punctuation"><span class="token punctuation">-</span></span>arn </code></pre><rh-badge id="CO191-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">installPlanApproval</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Manual
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> redhat<span class="token punctuation"><span class="token punctuation">-</span></span>oadp<span class="token punctuation"><span class="token punctuation">-</span></span>operator
<span class="token key atrule"><span class="token key atrule">source</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> prestage<span class="token punctuation"><span class="token punctuation">-</span></span>operators
<span class="token key atrule"><span class="token key atrule">sourceNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>marketplace
<span class="token key atrule"><span class="token key atrule">startingCSV</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>operator.v1.4.2</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch subscription redhat-oadp-operator <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"config": {"env": [{"name": "ROLEARN", "value": "<role_arn>"}]}}}'</span> <span class="token parameter variable">--type</span><span class="token operator">=</span><span class="token string">'merge'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get secret cloud-credentials <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.data.credentials}'</span> <span class="token operator">|</span> base64 <span class="token parameter variable">-d</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
sts_regional_endpoints = regional
role_arn = arn:aws:iam::160.....6956:role/oadprosa.....8wlf
web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">[default]
sts_regional_endpoints = regional
role_arn = arn:aws:iam::160.....6956:role/oadprosa.....8wlf
web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: test-rosa-dpa
namespace: openshift-adp
spec:
backupLocations:
- bucket:
config:
region: us-east-1
cloudStorageRef:
name: <cloud_storage>
credential:
name: cloud-credentials
key: credentials
prefix: velero
default: true
configuration:
velero:
defaultPlugins:
- aws
- openshift
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>rosa<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>east<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">cloudStorageRef</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <cloud_storage<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO192-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> credentials
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpa_manifest_file<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
status:
conditions:
- lastTransitionTime: "2023-07-31T04:48:12Z"
message: Reconcile complete
reason: Complete
status: "True"
type: Reconciled
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2023-07-31T04:48:12Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconcile complete
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Complete
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Reconciled</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
ts-dpa-1 Available 3s 6s true
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LAST VALIDATED AGE DEFAULT
ts-dpa-1 Available 3s 6s true</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create namespace hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc new-app <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">--image</span><span class="token operator">=</span>docker.io/openshift/hello-openshift</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc expose service/hello-openshift <span class="token parameter variable">-n</span> hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">curl</span> <span class="token variable"><span class="token variable">`</span>oc get route/hello-openshift <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.host}'</span><span class="token variable">`</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Hello OpenShift!</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
kind: Backup
metadata:
name: hello-world
namespace: openshift-adp
spec:
includedNamespaces:
- hello-world
storageLocation: ${CLUSTER_NAME}-dpa-1
ttl: 720h0m0s
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: velero.io/v1
kind: Backup
metadata:
name: hello-world
namespace: openshift-adp
spec:
includedNamespaces:
- hello-world
storageLocation: <span class="token variable">${CLUSTER_NAME}</span>-dpa-1
ttl: 720h0m0s
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">watch</span> <span class="token string">"oc -n openshift-adp get backup hello-world -o json | jq .status"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"completionTimestamp": "2022-09-07T22:20:44Z",
"expiration": "2022-10-07T22:20:22Z",
"formatVersion": "1.1.0",
"phase": "Completed",
"progress": {
"itemsBackedUp": 58,
"totalItems": 58
},
"startTimestamp": "2022-09-07T22:20:22Z",
"version": 1
}
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">{
"completionTimestamp": "2022-09-07T22:20:44Z",
"expiration": "2022-10-07T22:20:22Z",
"formatVersion": "1.1.0",
"phase": "Completed",
"progress": {
"itemsBackedUp": 58,
"totalItems": 58
},
"startTimestamp": "2022-09-07T22:20:22Z",
"version": 1
}</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
kind: Restore
metadata:
name: hello-world
namespace: openshift-adp
spec:
backupName: hello-world
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: velero.io/v1
kind: Restore
metadata:
name: hello-world
namespace: openshift-adp
spec:
backupName: hello-world
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">watch</span> <span class="token string">"oc -n openshift-adp get restore hello-world -o json | jq .status"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"completionTimestamp": "2022-09-07T22:25:47Z",
"phase": "Completed",
"progress": {
"itemsRestored": 38,
"totalItems": 38
},
"startTimestamp": "2022-09-07T22:25:28Z",
"warnings": 9
}
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">{
"completionTimestamp": "2022-09-07T22:25:47Z",
"phase": "Completed",
"progress": {
"itemsRestored": 38,
"totalItems": 38
},
"startTimestamp": "2022-09-07T22:25:28Z",
"warnings": 9
}</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> hello-world get pods</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME READY STATUS RESTARTS AGE
hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">curl</span> <span class="token variable"><span class="token variable">`</span>oc get route/hello-openshift <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.host}'</span><span class="token variable">`</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Hello OpenShift!</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete dpa <span class="token variable">${CLUSTER_NAME}</span>-dpa</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete cloudstorage <span class="token variable">${CLUSTER_NAME}</span>-oadp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp patch cloudstorage <span class="token variable">${CLUSTER_NAME}</span>-oadp <span class="token parameter variable">-p</span> <span class="token string">'{"metadata":{"finalizers":null}}'</span> <span class="token parameter variable">--type</span><span class="token operator">=</span>merge</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete subscription oadp-operator</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete backups.velero.io hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup delete hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">CRD</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">`</span>oc get crds <span class="token operator">|</span> <span class="token function">grep</span> velero <span class="token operator">|</span> <span class="token function">awk</span> <span class="token string">'{print $1}'</span><span class="token variable">`</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> oc delete crd <span class="token variable">$CRD</span><span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3 <span class="token function">rm</span> s3://<span class="token variable">${CLUSTER_NAME}</span>-oadp <span class="token parameter variable">--recursive</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3api delete-bucket <span class="token parameter variable">--bucket</span> <span class="token variable">${CLUSTER_NAME}</span>-oadp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam detach-role-policy --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span> --policy-arn <span class="token string">"<span class="token variable">${POLICY_ARN}</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam delete-role --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">CLUSTER_NAME</span><span class="token operator">=</span> <span class="token operator"><</span>AWS_cluster_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO193-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">CLUSTER_VERSION</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>oc get clusterversion version <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.status.desired.version}{"\n"}'</span><span class="token variable">)</span></span></span></span>
<span class="token output">export AWS_CLUSTER_ID=$(oc get clusterversion version -o jsonpath='{.spec.clusterID}{"\n"}')
export OIDC_ENDPOINT=$(oc get authentication.config.openshift.io cluster -o jsonpath='{.spec.serviceAccountIssuer}' | sed 's|^https://||')
export REGION=$(oc get infrastructures cluster -o jsonpath='{.status.platformStatus.aws.region}' --allow-missing-template-keys=false || echo us-east-2)
export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
export ROLE_NAME="${CLUSTER_NAME}-openshift-oadp-aws-cloud-credentials"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">SCRATCH</span><span class="token operator">=</span><span class="token string">"/tmp/<span class="token variable">${CLUSTER_NAME}</span>/oadp"</span></span></span>
<span class="token output">mkdir -p ${SCRATCH}</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">echo</span> <span class="token string">"Cluster ID: <span class="token variable">${AWS_CLUSTER_ID}</span>, Region: <span class="token variable">${REGION}</span>, OIDC Endpoint:
<span class="token variable">${OIDC_ENDPOINT}</span>, AWS Account ID: <span class="token variable">${AWS_ACCOUNT_ID}</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">POLICY_NAME</span><span class="token operator">=</span><span class="token string">"OadpVer1"</span> </span></span></code></pre><rh-badge id="CO194-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">POLICY_ARN</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>aws iam list-policies <span class="token parameter variable">--query</span> <span class="token string">"Policies[?PolicyName=='<span class="token variable">$POLICY_NAME</span>'].{ARN:Arn}"</span> <span class="token parameter variable">--output</span> text<span class="token variable">)</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">if</span> <span class="token punctuation">[</span><span class="token punctuation">[</span> <span class="token parameter variable">-z</span> <span class="token string">"<span class="token variable">${POLICY_ARN}</span>"</span> <span class="token punctuation">]</span><span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">then</span></span></span>
<span class="token output">cat << EOF > ${SCRATCH}/policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:CreateBucket",
"s3:DeleteBucket",
"s3:PutBucketTagging",
"s3:GetBucketTagging",
"s3:PutEncryptionConfiguration",
"s3:GetEncryptionConfiguration",
"s3:PutLifecycleConfiguration",
"s3:GetLifecycleConfiguration",
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts",
"ec2:DescribeSnapshots",
"ec2:DescribeVolumes",
"ec2:DescribeVolumeAttribute",
"ec2:DescribeVolumesModifications",
"ec2:DescribeVolumeStatus",
"ec2:CreateTags",
"ec2:CreateVolume",
"ec2:CreateSnapshot",
"ec2:DeleteSnapshot"
],
"Resource": "*"
}
]}
EOF
POLICY_ARN=$(aws iam create-policy --policy-name $POLICY_NAME \
--policy-document file:///${SCRATCH}/policy.json --query Policy.Arn \
--tags Key=openshift_version,Value=${CLUSTER_VERSION} Key=operator_namespace,Value=openshift-adp Key=operator_name,Value=oadp \
--output text) </span></code></pre><rh-badge id="CO195-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">fi</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">echo</span> <span class="token variable">${POLICY_ARN}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::${AWS_ACCOUNT_ID}:oidc-provider/${OIDC_ENDPOINT}"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"${OIDC_ENDPOINT}:sub": [
"system:serviceaccount:openshift-adp:openshift-adp-controller-manager",
"system:serviceaccount:openshift-adp:velero"]
}
}
}]
}
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span><span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">></span> <span class="token variable">${SCRATCH}</span>/trust-policy.json</span>
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::<span class="token variable">${AWS_ACCOUNT_ID}</span>:oidc-provider/<span class="token variable">${OIDC_ENDPOINT}</span>"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"<span class="token variable">${OIDC_ENDPOINT}</span>:sub": [
"system:serviceaccount:openshift-adp:openshift-adp-controller-manager",
"system:serviceaccount:openshift-adp:velero"]
}
}
}]
}
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
"${ROLE_NAME}" \
--assume-role-policy-document file://${SCRATCH}/trust-policy.json \
--tags Key=cluster_id,Value=${AWS_CLUSTER_ID} Key=openshift_version,Value=${CLUSTER_VERSION} Key=operator_namespace,Value=openshift-adp Key=operator_name,Value=oadp --query Role.Arn --output text)
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">ROLE_ARN</span><span class="token operator">=</span><span class="token variable"><span class="token variable">$(</span>aws iam create-role --role-name <span class="token punctuation">\</span>
<span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span> <span class="token punctuation">\</span>
--assume-role-policy-document file://$<span class="token punctuation">{</span>SCRATCH<span class="token punctuation">}</span>/trust-policy.json <span class="token punctuation">\</span>
<span class="token parameter variable">--tags</span> <span class="token assign-left variable">Key</span><span class="token operator">=</span>cluster_id,Value<span class="token operator">=</span>$<span class="token punctuation">{</span>AWS_CLUSTER_ID<span class="token punctuation">}</span> <span class="token assign-left variable">Key</span><span class="token operator">=</span>openshift_version,Value<span class="token operator">=</span>$<span class="token punctuation">{</span>CLUSTER_VERSION<span class="token punctuation">}</span> <span class="token assign-left variable">Key</span><span class="token operator">=</span>operator_namespace,Value<span class="token operator">=</span>openshift-adp <span class="token assign-left variable">Key</span><span class="token operator">=</span>operator_name,Value<span class="token operator">=</span>oadp <span class="token parameter variable">--query</span> Role.Arn <span class="token parameter variable">--output</span> text<span class="token variable">)</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">echo</span> <span class="token variable">${ROLE_ARN}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam attach-role-policy --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span> --policy-arn <span class="token variable">${POLICY_ARN}</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_sample>
spec:
# ...
configuration:
velero:
podConfig:
nodeSelector: <node_selector>
resourceAllocations:
limits:
cpu: "1"
memory: 1024Mi
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_sample<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <node_selector<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO196-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO196-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">limits</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"1"</span></span>
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1024Mi
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
[default]
role_arn = ${ROLE_ARN}
web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
region = <aws_region>
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> </span></span><span class="token output"><<EOF > ${SCRATCH}/credentials
[default]
role_arn = ${ROLE_ARN}
web_identity_token_file = /var/run/secrets/openshift/serviceaccount/token
region = <aws_region> </span></code></pre><rh-badge id="CO197-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create namespace openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--from-file=${SCRATCH}/credentials
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp create secret generic cloud-credentials <span class="token punctuation">\</span>
--from-file<span class="token operator">=</span><span class="token variable">${SCRATCH}</span>/credentials</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: CloudStorage
metadata:
name: ${CLUSTER_NAME}-oadp
namespace: openshift-adp
spec:
creationSecret:
key: credentials
name: cloud-credentials
enableSharedConfig: true
name: ${CLUSTER_NAME}-oadp
provider: aws
region: $REGION
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: oadp.openshift.io/v1alpha1
kind: CloudStorage
metadata:
name: <span class="token variable">${CLUSTER_NAME}</span>-oadp
namespace: openshift-adp
spec:
creationSecret:
key: credentials
name: cloud-credentials
enableSharedConfig: true
name: <span class="token variable">${CLUSTER_NAME}</span>-oadp
provider: aws
region: <span class="token variable">$REGION</span>
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pvc <span class="token parameter variable">-n</span> <span class="token operator"><</span>namespace<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
applog Bound pvc-351791ae-b6ab-4e8b-88a4-30f73caf5ef8 1Gi RWO gp3-csi 4d19h
mysql Bound pvc-16b8e009-a20a-4379-accc-bc81fedd0621 1Gi RWO gp3-csi 4d19h
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
applog Bound pvc-351791ae-b6ab-4e8b-88a4-30f73caf5ef8 1Gi RWO gp3-csi 4d19h
mysql Bound pvc-16b8e009-a20a-4379-accc-bc81fedd0621 1Gi RWO gp3-csi 4d19h</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get storageclass</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer true 4d21h
gp2-csi ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3 ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3-csi (default) ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
gp2 kubernetes.io/aws-ebs Delete WaitForFirstConsumer true 4d21h
gp2-csi ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3 ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h
gp3-csi (default) ebs.csi.aws.com Delete WaitForFirstConsumer true 4d21h</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true
features:
dataMover:
enable: false
backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
- csi
nodeAgent:
enable: false
uploaderType: kopia
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> </span></span><span class="token output"><< EOF | oc create -f -
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true </span></code></pre><rh-badge id="CO198-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> features:
dataMover:
enable: false
backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
- csi
nodeAgent: </span></code></pre><rh-badge id="CO198-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> enable: false
uploaderType: kopia </span></code></pre><rh-badge id="CO198-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true
features:
dataMover:
enable: false
backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
nodeAgent:
enable: false
uploaderType: restic
snapshotLocations:
- velero:
config:
credentialsFile: /tmp/credentials/openshift-adp/cloud-credentials-credentials
enableSharedConfig: "true"
profile: default
region: ${REGION}
provider: aws
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> </span></span><span class="token output"><< EOF | oc create -f -
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: ${CLUSTER_NAME}-dpa
namespace: openshift-adp
spec:
backupImages: true </span></code></pre><rh-badge id="CO199-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> features:
dataMover:
enable: false
backupLocations:
- bucket:
cloudStorageRef:
name: ${CLUSTER_NAME}-oadp
credential:
key: credentials
name: cloud-credentials
prefix: velero
default: true
config:
region: ${REGION}
configuration:
velero:
defaultPlugins:
- openshift
- aws
nodeAgent: </span></code></pre><rh-badge id="CO199-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> enable: false
uploaderType: restic
snapshotLocations:
- velero:
config:
credentialsFile: /tmp/credentials/openshift-adp/cloud-credentials-credentials </span></code></pre><rh-badge id="CO199-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> enableSharedConfig: "true" </span></code></pre><rh-badge id="CO199-4" state="info">4</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> profile: default </span></code></pre><rh-badge id="CO199-5" state="info">5</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> region: ${REGION} </span></code></pre><rh-badge id="CO199-6" state="info">6</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> provider: aws
EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
enable: false
uploaderType: restic
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">nodeAgent:
enable: false
uploaderType: restic</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
enable: false
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">restic:
enable: false</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create namespace hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc new-app <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">--image</span><span class="token operator">=</span>docker.io/openshift/hello-openshift</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc expose service/hello-openshift <span class="token parameter variable">-n</span> hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">curl</span> <span class="token variable"><span class="token variable">`</span>oc get route/hello-openshift <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.host}'</span><span class="token variable">`</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Hello OpenShift!</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
kind: Backup
metadata:
name: hello-world
namespace: openshift-adp
spec:
includedNamespaces:
- hello-world
storageLocation: ${CLUSTER_NAME}-dpa-1
ttl: 720h0m0s
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: velero.io/v1
kind: Backup
metadata:
name: hello-world
namespace: openshift-adp
spec:
includedNamespaces:
- hello-world
storageLocation: <span class="token variable">${CLUSTER_NAME}</span>-dpa-1
ttl: 720h0m0s
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">watch</span> <span class="token string">"oc -n openshift-adp get backup hello-world -o json | jq .status"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"completionTimestamp": "2022-09-07T22:20:44Z",
"expiration": "2022-10-07T22:20:22Z",
"formatVersion": "1.1.0",
"phase": "Completed",
"progress": {
"itemsBackedUp": 58,
"totalItems": 58
},
"startTimestamp": "2022-09-07T22:20:22Z",
"version": 1
}
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">{
"completionTimestamp": "2022-09-07T22:20:44Z",
"expiration": "2022-10-07T22:20:22Z",
"formatVersion": "1.1.0",
"phase": "Completed",
"progress": {
"itemsBackedUp": 58,
"totalItems": 58
},
"startTimestamp": "2022-09-07T22:20:22Z",
"version": 1
}</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
kind: Restore
metadata:
name: hello-world
namespace: openshift-adp
spec:
backupName: hello-world
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span> <span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc create <span class="token parameter variable">-f</span> -</span>
apiVersion: velero.io/v1
kind: Restore
metadata:
name: hello-world
namespace: openshift-adp
spec:
backupName: hello-world
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">watch</span> <span class="token string">"oc -n openshift-adp get restore hello-world -o json | jq .status"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
"completionTimestamp": "2022-09-07T22:25:47Z",
"phase": "Completed",
"progress": {
"itemsRestored": 38,
"totalItems": 38
},
"startTimestamp": "2022-09-07T22:25:28Z",
"warnings": 9
}
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">{
"completionTimestamp": "2022-09-07T22:25:47Z",
"phase": "Completed",
"progress": {
"itemsRestored": 38,
"totalItems": 38
},
"startTimestamp": "2022-09-07T22:25:28Z",
"warnings": 9
}</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> hello-world get pods</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME READY STATUS RESTARTS AGE
hello-openshift-9f885f7c6-kdjpj 1/1 Running 0 90s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">curl</span> <span class="token variable"><span class="token variable">`</span>oc get route/hello-openshift <span class="token parameter variable">-n</span> hello-world <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{.spec.host}'</span><span class="token variable">`</span></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Hello OpenShift!</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete dpa <span class="token variable">${CLUSTER_NAME}</span>-dpa</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete cloudstorage <span class="token variable">${CLUSTER_NAME}</span>-oadp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp patch cloudstorage <span class="token variable">${CLUSTER_NAME}</span>-oadp <span class="token parameter variable">-p</span> <span class="token string">'{"metadata":{"finalizers":null}}'</span> <span class="token parameter variable">--type</span><span class="token operator">=</span>merge</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp delete subscription oadp-operator</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete ns openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete backups.velero.io hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup delete hello-world</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token keyword">for</span> <span class="token for-or-select variable">CRD</span> <span class="token keyword">in</span> <span class="token variable"><span class="token variable">`</span>oc get crds <span class="token operator">|</span> <span class="token function">grep</span> velero <span class="token operator">|</span> <span class="token function">awk</span> <span class="token string">'{print $1}'</span><span class="token variable">`</span></span><span class="token punctuation">;</span> <span class="token keyword">do</span> oc delete crd <span class="token variable">$CRD</span><span class="token punctuation">;</span> <span class="token keyword">done</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3 <span class="token function">rm</span> s3://<span class="token variable">${CLUSTER_NAME}</span>-oadp <span class="token parameter variable">--recursive</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws s3api delete-bucket <span class="token parameter variable">--bucket</span> <span class="token variable">${CLUSTER_NAME}</span>-oadp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam detach-role-policy --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span> --policy-arn <span class="token string">"<span class="token variable">${POLICY_ARN}</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">aws iam delete-role --role-name <span class="token string">"<span class="token variable">${ROLE_NAME}</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: dpa-sample
namespace: openshift-adp
spec:
configuration:
velero:
defaultPlugins:
- openshift
- aws
- csi
resourceTimeout: 10m
nodeAgent:
enable: true
uploaderType: kopia
backupLocations:
- name: default
velero:
provider: aws
default: true
objectStorage:
bucket: <bucket_name>
prefix: <prefix>
config:
region: <region>
profile: "default"
s3ForcePathStyle: "true"
s3Url: <s3_url>
credential:
key: cloud
name: cloud-credentials
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO200-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <prefix<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO200-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO200-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">s3ForcePathStyle</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <s3_url<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO200-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> dpa.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: operator-install-backup
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: false
includedNamespaces:
- threescale
includedResources:
- operatorgroups
- subscriptions
- namespaces
itemOperationTimeout: 1h0m0s
snapshotMoveData: false
ttl: 720h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>install<span class="token punctuation"><span class="token punctuation">-</span></span>backup </code></pre><rh-badge id="CO201-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> threescale </code></pre><rh-badge id="CO201-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> operatorgroups
<span class="token punctuation"><span class="token punctuation">-</span></span> subscriptions
<span class="token punctuation"><span class="token punctuation">-</span></span> namespaces
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h0m0s
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> backup.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">backup.velero.io/operator-install-backup created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: operator-resources-secrets
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: false
includedNamespaces:
- threescale
includedResources:
- secrets
itemOperationTimeout: 1h0m0s
labelSelector:
matchLabels:
app: 3scale-api-management
snapshotMoveData: false
snapshotVolumes: false
ttl: 720h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>resources<span class="token punctuation"><span class="token punctuation">-</span></span>secrets </code></pre><rh-badge id="CO202-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> threescale
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> secrets
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h0m0s
<span class="token key atrule"><span class="token key atrule">labelSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 3scale<span class="token punctuation"><span class="token punctuation">-</span></span>api<span class="token punctuation"><span class="token punctuation">-</span></span>management
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotVolumes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> backup-secret.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">backup.velero.io/operator-resources-secrets created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: operator-resources-apim
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: false
includedNamespaces:
- threescale
includedResources:
- apimanagers
itemOperationTimeout: 1h0m0s
snapshotMoveData: false
snapshotVolumes: false
storageLocation: ts-dpa-1
ttl: 720h0m0s
volumeSnapshotLocations:
- ts-dpa-1
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>resources<span class="token punctuation"><span class="token punctuation">-</span></span>apim </code></pre><rh-badge id="CO203-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> threescale
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> apimanagers
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h0m0s
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotVolumes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s
<span class="token key atrule"><span class="token key atrule">volumeSnapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> backup-apimanager.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">backup.velero.io/operator-resources-apim created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: v1
metadata:
name: example-claim
namespace: threescale
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: gp3-csi
volumeMode: Filesystem
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PersistentVolumeClaim
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example<span class="token punctuation"><span class="token punctuation">-</span></span>claim
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> threescale
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">accessModes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ReadWriteOnce
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1Gi
<span class="token key atrule"><span class="token key atrule">storageClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gp3<span class="token punctuation"><span class="token punctuation">-</span></span>csi
<span class="token key atrule"><span class="token key atrule">volumeMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Filesystem</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> ts_pvc.yml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc edit deployment system-mysql <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
- name: example-claim
mountPath: /var/lib/mysqldump/data
- name: mysql-storage
mountPath: /var/lib/mysql/data
- name: mysql-extra-conf
mountPath: /etc/my-extra.d
- name: mysql-main-conf
mountPath: /etc/my-extra
...
serviceAccount: amp
volumes:
- name: example-claim
persistentVolumeClaim:
claimName: example-claim
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">volumeMounts</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example<span class="token punctuation"><span class="token punctuation">-</span></span>claim
<span class="token key atrule"><span class="token key atrule">mountPath</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /var/lib/mysqldump/data
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>storage
<span class="token key atrule"><span class="token key atrule">mountPath</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /var/lib/mysql/data
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>extra<span class="token punctuation"><span class="token punctuation">-</span></span>conf
<span class="token key atrule"><span class="token key atrule">mountPath</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /etc/my<span class="token punctuation"><span class="token punctuation">-</span></span>extra.d
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>main<span class="token punctuation"><span class="token punctuation">-</span></span>conf
<span class="token key atrule"><span class="token key atrule">mountPath</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /etc/my<span class="token punctuation"><span class="token punctuation">-</span></span>extra
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">serviceAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> amp
<span class="token key atrule"><span class="token key atrule">volumes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example<span class="token punctuation"><span class="token punctuation">-</span></span>claim
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaim</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">claimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example<span class="token punctuation"><span class="token punctuation">-</span></span>claim </code></pre><rh-badge id="CO204-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: mysql-backup
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: true
hooks:
resources:
- name: dumpdb
pre:
- exec:
command:
- /bin/sh
- -c
- mysqldump -u $MYSQL_USER --password=$MYSQL_PASSWORD system --no-tablespaces
> /var/lib/mysqldump/data/dump.sql
container: system-mysql
onError: Fail
timeout: 5m
includedNamespaces:
- threescale
includedResources:
- deployment
- pods
- replicationControllers
- persistentvolumeclaims
- persistentvolumes
itemOperationTimeout: 1h0m0s
labelSelector:
matchLabels:
app: 3scale-api-management
threescale_component_element: mysql
snapshotMoveData: false
ttl: 720h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>backup </code></pre><rh-badge id="CO205-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dumpdb
<span class="token key atrule"><span class="token key atrule">pre</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">exec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> /bin/sh
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token punctuation"><span class="token punctuation">-</span></span>c
<span class="token punctuation"><span class="token punctuation">-</span></span> mysqldump <span class="token punctuation"><span class="token punctuation">-</span></span>u $MYSQL_USER <span class="token punctuation"><span class="token punctuation">-</span></span><span class="token punctuation"><span class="token punctuation">-</span></span>password=$MYSQL_PASSWORD system <span class="token punctuation"><span class="token punctuation">-</span></span><span class="token punctuation"><span class="token punctuation">-</span></span>no<span class="token punctuation"><span class="token punctuation">-</span></span>tablespaces
<span class="token punctuation"><span class="token punctuation">></span></span> /var/lib/mysqldump/data/dump.sql </code></pre><rh-badge id="CO205-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">container</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> system<span class="token punctuation"><span class="token punctuation">-</span></span>mysql
<span class="token key atrule"><span class="token key atrule">onError</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Fail
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 5m
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> threescale
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO205-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> deployment
<span class="token punctuation"><span class="token punctuation">-</span></span> pods
<span class="token punctuation"><span class="token punctuation">-</span></span> replicationControllers
<span class="token punctuation"><span class="token punctuation">-</span></span> persistentvolumeclaims
<span class="token punctuation"><span class="token punctuation">-</span></span> persistentvolumes
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h0m0s
<span class="token key atrule"><span class="token key atrule">labelSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 3scale<span class="token punctuation"><span class="token punctuation">-</span></span>api<span class="token punctuation"><span class="token punctuation">-</span></span>management
<span class="token key atrule"><span class="token key atrule">threescale_component_element</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> mysql.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">backup.velero.io/mysql-backup created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backups.velero.io mysql-backup <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
completionTimestamp: "2025-04-17T13:25:19Z"
errors: 1
expiration: "2025-05-17T13:25:16Z"
formatVersion: 1.1.0
hookStatus: {}
phase: Completed
progress: {}
startTimestamp: "2025-04-17T13:25:16Z"
version: 1
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">status:
completionTimestamp: "2025-04-17T13:25:19Z"
errors: 1
expiration: "2025-05-17T13:25:16Z"
formatVersion: 1.1.0
hookStatus: {}
phase: Completed
progress: {}
startTimestamp: "2025-04-17T13:25:16Z"
version: 1</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc edit deployment backend-redis <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
post.hook.backup.velero.io/command: >-
["/bin/bash", "-c", "redis-cli CONFIG SET auto-aof-rewrite-percentage
100"]
pre.hook.backup.velero.io/command: >-
["/bin/bash", "-c", "redis-cli CONFIG SET auto-aof-rewrite-percentage
0"]
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">annotations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">post.hook.backup.velero.io/command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">></span></span><span class="token punctuation"><span class="token punctuation">-</span></span>
<span class="token punctuation"><span class="token punctuation">[</span></span><span class="token string"><span class="token string">"/bin/bash"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span> <span class="token string"><span class="token string">"-c"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span> "redis<span class="token punctuation"><span class="token punctuation">-</span></span>cli CONFIG SET auto<span class="token punctuation"><span class="token punctuation">-</span></span>aof<span class="token punctuation"><span class="token punctuation">-</span></span>rewrite<span class="token punctuation"><span class="token punctuation">-</span></span>percentage
100"<span class="token punctuation"><span class="token punctuation">]</span></span>
<span class="token key atrule"><span class="token key atrule">pre.hook.backup.velero.io/command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">></span></span><span class="token punctuation"><span class="token punctuation">-</span></span>
<span class="token punctuation"><span class="token punctuation">[</span></span><span class="token string"><span class="token string">"/bin/bash"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span> <span class="token string"><span class="token string">"-c"</span></span><span class="token punctuation"><span class="token punctuation">,</span></span> "redis<span class="token punctuation"><span class="token punctuation">-</span></span>cli CONFIG SET auto<span class="token punctuation"><span class="token punctuation">-</span></span>aof<span class="token punctuation"><span class="token punctuation">-</span></span>rewrite<span class="token punctuation"><span class="token punctuation">-</span></span>percentage
0"<span class="token punctuation"><span class="token punctuation">]</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: redis-backup
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup: true
includedNamespaces:
- threescale
includedResources:
- deployment
- pods
- replicationcontrollers
- persistentvolumes
- persistentvolumeclaims
itemOperationTimeout: 1h0m0s
labelSelector:
matchLabels:
app: 3scale-api-management
threescale_component: backend
threescale_component_element: redis
snapshotMoveData: false
snapshotVolumes: false
ttl: 720h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> redis<span class="token punctuation"><span class="token punctuation">-</span></span>backup </code></pre><rh-badge id="CO206-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> threescale
<span class="token key atrule"><span class="token key atrule">includedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> deployment
<span class="token punctuation"><span class="token punctuation">-</span></span> pods
<span class="token punctuation"><span class="token punctuation">-</span></span> replicationcontrollers
<span class="token punctuation"><span class="token punctuation">-</span></span> persistentvolumes
<span class="token punctuation"><span class="token punctuation">-</span></span> persistentvolumeclaims
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h0m0s
<span class="token key atrule"><span class="token key atrule">labelSelector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 3scale<span class="token punctuation"><span class="token punctuation">-</span></span>api<span class="token punctuation"><span class="token punctuation">-</span></span>management
<span class="token key atrule"><span class="token key atrule">threescale_component</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backend
<span class="token key atrule"><span class="token key atrule">threescale_component_element</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> redis
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotVolumes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> redis-backup.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">backup.velero.io/redis-backup created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backups.velero.io redis-backup <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
completionTimestamp: "2025-04-17T13:25:19Z"
errors: 1
expiration: "2025-05-17T13:25:16Z"
formatVersion: 1.1.0
hookStatus: {}
phase: Completed
progress: {}
startTimestamp: "2025-04-17T13:25:16Z"
version: 1
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">status:
completionTimestamp: "2025-04-17T13:25:19Z"
errors: 1
expiration: "2025-05-17T13:25:16Z"
formatVersion: 1.1.0
hookStatus: {}
phase: Completed
progress: {}
startTimestamp: "2025-04-17T13:25:16Z"
version: 1</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete project threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">"threescale" project deleted successfully</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: operator-installation-restore
namespace: openshift-adp
spec:
backupName: operator-install-backup
excludedResources:
- nodes
- events
- events.events.k8s.io
- backups.velero.io
- restores.velero.io
- resticrepositories.velero.io
- csinodes.storage.k8s.io
- volumeattachments.storage.k8s.io
- backuprepositories.velero.io
itemOperationTimeout: 4h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>installation<span class="token punctuation"><span class="token punctuation">-</span></span>restore
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>install<span class="token punctuation"><span class="token punctuation">-</span></span>backup </code></pre><rh-badge id="CO207-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nodes
<span class="token punctuation"><span class="token punctuation">-</span></span> events
<span class="token punctuation"><span class="token punctuation">-</span></span> events.events.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backups.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> restores.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> resticrepositories.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> csinodes.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> volumeattachments.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backuprepositories.velero.io
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 4h0m0s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> restore.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">restore.velerio.io/operator-installation-restore created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
---
apiVersion: v1
kind: Secret
metadata:
name: s3-credentials
namespace: threescale
stringData:
AWS_ACCESS_KEY_ID: <ID_123456>
AWS_SECRET_ACCESS_KEY: <ID_98765544>
AWS_BUCKET: <mybucket.example.com>
AWS_REGION: <us-east-1>
type: Opaque
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> - </span></span><span class="token output"><<EOF
---
apiVersion: v1
kind: Secret
metadata:
name: s3-credentials
namespace: threescale
stringData:
AWS_ACCESS_KEY_ID: <ID_123456> </span></code></pre><rh-badge id="CO208-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> AWS_SECRET_ACCESS_KEY: <ID_98765544> </span></code></pre><rh-badge id="CO208-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> AWS_BUCKET: <mybucket.example.com> </span></code></pre><rh-badge id="CO208-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> AWS_REGION: <us-east-1> </span></code></pre><rh-badge id="CO208-4" state="info">4</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">type: Opaque
EOF</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc scale deployment threescale-operator-controller-manager-v2 <span class="token parameter variable">--replicas</span><span class="token operator">=</span><span class="token number">0</span> <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">deployment.apps/threescale-operator-controller-manager-v2 scaled</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: operator-resources-secrets
namespace: openshift-adp
spec:
backupName: operator-resources-secrets
excludedResources:
- nodes
- events
- events.events.k8s.io
- backups.velero.io
- restores.velero.io
- resticrepositories.velero.io
- csinodes.storage.k8s.io
- volumeattachments.storage.k8s.io
- backuprepositories.velero.io
itemOperationTimeout: 4h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>resources<span class="token punctuation"><span class="token punctuation">-</span></span>secrets
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>resources<span class="token punctuation"><span class="token punctuation">-</span></span>secrets </code></pre><rh-badge id="CO209-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nodes
<span class="token punctuation"><span class="token punctuation">-</span></span> events
<span class="token punctuation"><span class="token punctuation">-</span></span> events.events.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backups.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> restores.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> resticrepositories.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> csinodes.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> volumeattachments.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backuprepositories.velero.io
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 4h0m0s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> restore-secrets.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">restore.velerio.io/operator-resources-secrets created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: operator-resources-apim
namespace: openshift-adp
spec:
backupName: operator-resources-apim
excludedResources:
- nodes
- events
- events.events.k8s.io
- backups.velero.io
- restores.velero.io
- resticrepositories.velero.io
- csinodes.storage.k8s.io
- volumeattachments.storage.k8s.io
- backuprepositories.velero.io
itemOperationTimeout: 4h0m0s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>resources<span class="token punctuation"><span class="token punctuation">-</span></span>apim
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator<span class="token punctuation"><span class="token punctuation">-</span></span>resources<span class="token punctuation"><span class="token punctuation">-</span></span>apim </code></pre><rh-badge id="CO210-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO210-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> nodes
<span class="token punctuation"><span class="token punctuation">-</span></span> events
<span class="token punctuation"><span class="token punctuation">-</span></span> events.events.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backups.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> restores.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> resticrepositories.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> csinodes.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> volumeattachments.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backuprepositories.velero.io
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 4h0m0s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> restore-apimanager.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">restore.velerio.io/operator-resources-apim created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc scale deployment threescale-operator-controller-manager-v2 <span class="token parameter variable">--replicas</span><span class="token operator">=</span><span class="token number">1</span> <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">deployment.apps/threescale-operator-controller-manager-v2 scaled</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc scale deployment threescale-operator-controller-manager-v2 <span class="token parameter variable">--replicas</span><span class="token operator">=</span><span class="token number">0</span> <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">deployment.apps/threescale-operator-controller-manager-v2 scaled</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">vi</span> ./scaledowndeployment.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
oc scale deployment/$deployment --replicas=0 -n threescale
done
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">for deployment in apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-searchd system-sidekiq zync zync-database zync-que; do
oc scale deployment/$deployment --replicas=0 -n threescale
done</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">./scaledowndeployment.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
deployment.apps.openshift.io/apicast-staging scaled
deployment.apps.openshift.io/backend-cron scaled
deployment.apps.openshift.io/backend-listener scaled
deployment.apps.openshift.io/backend-redis scaled
deployment.apps.openshift.io/backend-worker scaled
deployment.apps.openshift.io/system-app scaled
deployment.apps.openshift.io/system-memcache scaled
deployment.apps.openshift.io/system-mysql scaled
deployment.apps.openshift.io/system-redis scaled
deployment.apps.openshift.io/system-searchd scaled
deployment.apps.openshift.io/system-sidekiq scaled
deployment.apps.openshift.io/zync scaled
deployment.apps.openshift.io/zync-database scaled
deployment.apps.openshift.io/zync-que scaled
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">deployment.apps.openshift.io/apicast-production scaled
deployment.apps.openshift.io/apicast-staging scaled
deployment.apps.openshift.io/backend-cron scaled
deployment.apps.openshift.io/backend-listener scaled
deployment.apps.openshift.io/backend-redis scaled
deployment.apps.openshift.io/backend-worker scaled
deployment.apps.openshift.io/system-app scaled
deployment.apps.openshift.io/system-memcache scaled
deployment.apps.openshift.io/system-mysql scaled
deployment.apps.openshift.io/system-redis scaled
deployment.apps.openshift.io/system-searchd scaled
deployment.apps.openshift.io/system-sidekiq scaled
deployment.apps.openshift.io/zync scaled
deployment.apps.openshift.io/zync-database scaled
deployment.apps.openshift.io/zync-que scaled</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete deployment system-mysql <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
deployment.apps.openshift.io "system-mysql" deleted
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+
deployment.apps.openshift.io "system-mysql" deleted</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: restore-mysql
namespace: openshift-adp
spec:
backupName: mysql-backup
excludedResources:
- nodes
- events
- events.events.k8s.io
- backups.velero.io
- restores.velero.io
- csinodes.storage.k8s.io
- volumeattachments.storage.k8s.io
- backuprepositories.velero.io
- resticrepositories.velero.io
hooks:
resources:
- name: restoreDB
postHooks:
- exec:
command:
- /bin/sh
- '-c'
- >
sleep 30
mysql -h 127.0.0.1 -D system -u root
--password=$MYSQL_ROOT_PASSWORD <
/var/lib/mysqldump/data/dump.sql
container: system-mysql
execTimeout: 80s
onError: Fail
waitTimeout: 5m
itemOperationTimeout: 1h0m0s
restorePVs: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restore<span class="token punctuation"><span class="token punctuation">-</span></span>mysql
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>backup </code></pre><rh-badge id="CO211-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nodes
<span class="token punctuation"><span class="token punctuation">-</span></span> events
<span class="token punctuation"><span class="token punctuation">-</span></span> events.events.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backups.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> restores.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> csinodes.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> volumeattachments.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backuprepositories.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> resticrepositories.velero.io
<span class="token key atrule"><span class="token key atrule">hooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restoreDB
<span class="token key atrule"><span class="token key atrule">postHooks</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">exec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> /bin/sh
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token string"><span class="token string">'-c'</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token punctuation"><span class="token punctuation">></span></span><span class="token scalar string"><span class="token scalar string">
sleep 30</span></span>
mysql <span class="token punctuation"><span class="token punctuation">-</span></span>h 127.0.0.1 <span class="token punctuation"><span class="token punctuation">-</span></span>D system <span class="token punctuation"><span class="token punctuation">-</span></span>u root
<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token punctuation"><span class="token punctuation">-</span></span>password=$MYSQL_ROOT_PASSWORD <
/var/lib/mysqldump/data/dump.sql </code></pre><rh-badge id="CO211-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">container</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> system<span class="token punctuation"><span class="token punctuation">-</span></span>mysql
<span class="token key atrule"><span class="token key atrule">execTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 80s
<span class="token key atrule"><span class="token key atrule">onError</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Fail
<span class="token key atrule"><span class="token key atrule">waitTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 5m
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h0m0s
<span class="token key atrule"><span class="token key atrule">restorePVs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> restore-mysql.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">restore.velerio.io/restore-mysql created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get podvolumerestores.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
restore-mysql-rbzvm threescale system-mysql-2-kjkhl kopia mysql-storage Completed 771879108 771879108 40m
restore-mysql-z7x7l threescale system-mysql-2-kjkhl kopia example-claim Completed 380415 380415 40m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME NAMESPACE POD UPLOADER TYPE VOLUME STATUS TOTALBYTES BYTESDONE AGE
restore-mysql-rbzvm threescale system-mysql-2-kjkhl kopia mysql-storage Completed 771879108 771879108 40m
restore-mysql-z7x7l threescale system-mysql-2-kjkhl kopia example-claim Completed 380415 380415 40m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pvc <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
backend-redis-storage Bound pvc-3dca410d-3b9f-49d4-aebf-75f47152e09d 1Gi RWO gp3-csi <unset> 68m
example-claim Bound pvc-cbaa49b0-06cd-4b1a-9e90-0ef755c67a54 1Gi RWO gp3-csi <unset> 57m
mysql-storage Bound pvc-4549649f-b9ad-44f7-8f67-dd6b9dbb3896 1Gi RWO gp3-csi <unset> 68m
system-redis-storage Bound pvc-04dadafd-8a3e-4d00-8381-6041800a24fc 1Gi RWO gp3-csi <unset> 68m
system-searchd Bound pvc-afbf606c-d4a8-4041-8ec6-54c5baf1a3b9 1Gi RWO gp3-csi <unset> 68m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
backend-redis-storage Bound pvc-3dca410d-3b9f-49d4-aebf-75f47152e09d 1Gi RWO gp3-csi <unset> 68m
example-claim Bound pvc-cbaa49b0-06cd-4b1a-9e90-0ef755c67a54 1Gi RWO gp3-csi <unset> 57m
mysql-storage Bound pvc-4549649f-b9ad-44f7-8f67-dd6b9dbb3896 1Gi RWO gp3-csi <unset> 68m
system-redis-storage Bound pvc-04dadafd-8a3e-4d00-8381-6041800a24fc 1Gi RWO gp3-csi <unset> 68m
system-searchd Bound pvc-afbf606c-d4a8-4041-8ec6-54c5baf1a3b9 1Gi RWO gp3-csi <unset> 68m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete deployment backend-redis <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
deployment.apps.openshift.io "backend-redis" deleted
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+
deployment.apps.openshift.io "backend-redis" deleted</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: restore-backend
namespace: openshift-adp
spec:
backupName: redis-backup
excludedResources:
- nodes
- events
- events.events.k8s.io
- backups.velero.io
- restores.velero.io
- resticrepositories.velero.io
- csinodes.storage.k8s.io
- volumeattachments.storage.k8s.io
- backuprepositories.velero.io
itemOperationTimeout: 1h0m0s
restorePVs: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restore<span class="token punctuation"><span class="token punctuation">-</span></span>backend
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> redis<span class="token punctuation"><span class="token punctuation">-</span></span>backup </code></pre><rh-badge id="CO212-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">excludedResources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> nodes
<span class="token punctuation"><span class="token punctuation">-</span></span> events
<span class="token punctuation"><span class="token punctuation">-</span></span> events.events.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backups.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> restores.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> resticrepositories.velero.io
<span class="token punctuation"><span class="token punctuation">-</span></span> csinodes.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> volumeattachments.storage.k8s.io
<span class="token punctuation"><span class="token punctuation">-</span></span> backuprepositories.velero.io
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h0m0s
<span class="token key atrule"><span class="token key atrule">restorePVs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> restore-backend.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">restore.velerio.io/restore-backend created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get podvolumerestores.velero.io <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
restore-backend-jmrwx threescale backend-redis-1-bsfmv kopia backend-redis-storage Completed 76123 76123 21m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME NAMESPACE POD UPLOADER TYPE VOLUME STATUS TOTALBYTES BYTESDONE AGE
restore-backend-jmrwx threescale backend-redis-1-bsfmv kopia backend-redis-storage Completed 76123 76123 21m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc scale deployment threescale-operator-controller-manager-v2 <span class="token parameter variable">--replicas</span><span class="token operator">=</span><span class="token number">1</span> <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">deployment.apps/threescale-operator-controller-manager-v2 scaled</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pods <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
threescale-operator-controller-manager-v2-79546bd8c-b4qbh 1/1 Running 0 2m5s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME READY STATUS RESTARTS AGE
threescale-operator-controller-manager-v2-79546bd8c-b4qbh 1/1 Running 0 2m5s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">vi</span> ./scaledeployment.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
oc scale deployment/$deployment --replicas=1 -n threescale
done
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">for deployment in apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-searchd system-sidekiq zync zync-database zync-que; do
oc scale deployment/$deployment --replicas=1 -n threescale
done</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">./scaledeployment.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
deployment.apps.openshift.io/apicast-staging scaled
deployment.apps.openshift.io/backend-cron scaled
deployment.apps.openshift.io/backend-listener scaled
deployment.apps.openshift.io/backend-redis scaled
deployment.apps.openshift.io/backend-worker scaled
deployment.apps.openshift.io/system-app scaled
deployment.apps.openshift.io/system-memcache scaled
deployment.apps.openshift.io/system-mysql scaled
deployment.apps.openshift.io/system-redis scaled
deployment.apps.openshift.io/system-searchd scaled
deployment.apps.openshift.io/system-sidekiq scaled
deployment.apps.openshift.io/zync scaled
deployment.apps.openshift.io/zync-database scaled
deployment.apps.openshift.io/zync-que scaled
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">deployment.apps.openshift.io/apicast-production scaled
deployment.apps.openshift.io/apicast-staging scaled
deployment.apps.openshift.io/backend-cron scaled
deployment.apps.openshift.io/backend-listener scaled
deployment.apps.openshift.io/backend-redis scaled
deployment.apps.openshift.io/backend-worker scaled
deployment.apps.openshift.io/system-app scaled
deployment.apps.openshift.io/system-memcache scaled
deployment.apps.openshift.io/system-mysql scaled
deployment.apps.openshift.io/system-redis scaled
deployment.apps.openshift.io/system-searchd scaled
deployment.apps.openshift.io/system-sidekiq scaled
deployment.apps.openshift.io/zync scaled
deployment.apps.openshift.io/zync-database scaled
deployment.apps.openshift.io/zync-que scaled</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get routes <span class="token parameter variable">-n</span> threescale</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
backend backend-3scale.apps.custom-cluster-name.openshift.com backend-listener http edge/Allow None
zync-3scale-api-b4l4d api-3scale-apicast-production.apps.custom-cluster-name.openshift.com apicast-production gateway edge/Redirect None
zync-3scale-api-b6sns api-3scale-apicast-staging.apps.custom-cluster-name.openshift.com apicast-staging gateway edge/Redirect None
zync-3scale-master-7sc4j master.apps.custom-cluster-name.openshift.com system-master http edge/Redirect None
zync-3scale-provider-7r2nm 3scale-admin.apps.custom-cluster-name.openshift.com system-provider http edge/Redirect None
zync-3scale-provider-mjxlb 3scale.apps.custom-cluster-name.openshift.com system-developer http edge/Redirect None
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
backend backend-3scale.apps.custom-cluster-name.openshift.com backend-listener http edge/Allow None
zync-3scale-api-b4l4d api-3scale-apicast-production.apps.custom-cluster-name.openshift.com apicast-production gateway edge/Redirect None
zync-3scale-api-b6sns api-3scale-apicast-staging.apps.custom-cluster-name.openshift.com apicast-staging gateway edge/Redirect None
zync-3scale-master-7sc4j master.apps.custom-cluster-name.openshift.com system-master http edge/Redirect None
zync-3scale-provider-7r2nm 3scale-admin.apps.custom-cluster-name.openshift.com system-provider http edge/Redirect None
zync-3scale-provider-mjxlb 3scale.apps.custom-cluster-name.openshift.com system-developer http edge/Redirect None</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: dpa-sample
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- csi
defaultSnapshotMoveData: true
defaultVolumesToFSBackup:
featureFlags:
- EnableCSI
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO213-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO213-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO213-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultSnapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFSBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO213-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">featureFlags</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> EnableCSI
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: velero.io/v1
metadata:
name: backup
namespace: openshift-adp
spec:
csiSnapshotTimeout: 10m0s
defaultVolumesToFsBackup:
includedNamespaces:
- mysql-persistent
itemOperationTimeout: 4h0m0s
snapshotMoveData: true
storageLocation: default
ttl: 720h0m0s
volumeSnapshotLocations:
- dpa-sample-1
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO214-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>persistent
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 4h0m0s
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO214-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">ttl</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 720h0m0s
<span class="token key atrule"><span class="token key atrule">volumeSnapshotLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
kubernetes.io~csi/pvc-684..12c/mount: lsetxattr /var/lib/kubelet/ \
pods/3ac..34/volumes/kubernetes.io~csi/pvc-68..2c/mount/data-xfs-103: \
no space left on device
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Error: relabel failed /var/lib/kubelet/pods/3ac..34/volumes/ \
kubernetes.io~csi/pvc-684..12c/mount: lsetxattr /var/lib/kubelet/ \
pods/3ac..34/volumes/kubernetes.io~csi/pvc-68..2c/mount/data-xfs-103: \
no space left on device</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> backup.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get datauploads <span class="token parameter variable">-A</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
openshift-adp backup-test-1-sw76b Completed 9m47s 108104082 108104082 dpa-sample-1 9m47s ip-10-0-150-57.us-west-2.compute.internal
openshift-adp mongo-block-7dtpf Completed 14m 1073741824 1073741824 dpa-sample-1 14m ip-10-0-150-57.us-west-2.compute.internal
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAMESPACE NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE
openshift-adp backup-test-1-sw76b Completed 9m47s 108104082 108104082 dpa-sample-1 9m47s ip-10-0-150-57.us-west-2.compute.internal
openshift-adp mongo-block-7dtpf Completed 14m 1073741824 1073741824 dpa-sample-1 14m ip-10-0-150-57.us-west-2.compute.internal</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get datauploads <span class="token operator"><</span>dataupload_name<span class="token operator">></span> <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataUpload
metadata:
name: backup-test-1-sw76b
namespace: openshift-adp
spec:
backupStorageLocation: dpa-sample-1
csiSnapshot:
snapshotClass: ""
storageClass: gp3-csi
volumeSnapshot: velero-mysql-fq8sl
operationTimeout: 10m0s
snapshotType: CSI
sourceNamespace: mysql-persistent
sourcePVC: mysql
status:
completionTimestamp: "2023-11-02T16:57:02Z"
node: ip-10-0-150-57.us-west-2.compute.internal
path: /host_pods/15116bac-cc01-4d9b-8ee7-609c3bef6bde/volumes/kubernetes.io~csi/pvc-eead8167-556b-461a-b3ec-441749e291c4/mount
phase: Completed
progress:
bytesDone: 108104082
totalBytes: 108104082
snapshotID: 8da1c5febf25225f4577ada2aeb9f899
startTimestamp: "2023-11-02T16:56:22Z"
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v2alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataUpload
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> backup<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>1<span class="token punctuation"><span class="token punctuation">-</span></span>sw76b
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupStorageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotClass</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span>
<span class="token key atrule"><span class="token key atrule">storageClass</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gp3<span class="token punctuation"><span class="token punctuation">-</span></span>csi
<span class="token key atrule"><span class="token key atrule">volumeSnapshot</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero<span class="token punctuation"><span class="token punctuation">-</span></span>mysql<span class="token punctuation"><span class="token punctuation">-</span></span>fq8sl
<span class="token key atrule"><span class="token key atrule">operationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">snapshotType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> CSI
<span class="token key atrule"><span class="token key atrule">sourceNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>persistent
<span class="token key atrule"><span class="token key atrule">sourcePVC</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">completionTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2023-11-02T16:57:02Z"</span></span>
<span class="token key atrule"><span class="token key atrule">node</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ip<span class="token punctuation"><span class="token punctuation">-</span></span>10<span class="token punctuation"><span class="token punctuation">-</span></span>0<span class="token punctuation"><span class="token punctuation">-</span></span>150<span class="token punctuation"><span class="token punctuation">-</span></span>57.us<span class="token punctuation"><span class="token punctuation">-</span></span>west<span class="token punctuation"><span class="token punctuation">-</span></span>2.compute.internal
<span class="token key atrule"><span class="token key atrule">path</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /host_pods/15116bac<span class="token punctuation"><span class="token punctuation">-</span></span>cc01<span class="token punctuation"><span class="token punctuation">-</span></span>4d9b<span class="token punctuation"><span class="token punctuation">-</span></span>8ee7<span class="token punctuation"><span class="token punctuation">-</span></span>609c3bef6bde/volumes/kubernetes.io~csi/pvc<span class="token punctuation"><span class="token punctuation">-</span></span>eead8167<span class="token punctuation"><span class="token punctuation">-</span></span>556b<span class="token punctuation"><span class="token punctuation">-</span></span>461a<span class="token punctuation"><span class="token punctuation">-</span></span>b3ec<span class="token punctuation"><span class="token punctuation">-</span></span>441749e291c4/mount
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Completed </code></pre><rh-badge id="CO215-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">progress</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bytesDone</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">108104082</span></span>
<span class="token key atrule"><span class="token key atrule">totalBytes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">108104082</span></span>
<span class="token key atrule"><span class="token key atrule">snapshotID</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 8da1c5febf25225f4577ada2aeb9f899
<span class="token key atrule"><span class="token key atrule">startTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2023-11-02T16:56:22Z"</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: restore
namespace: openshift-adp
spec:
backupName: <backup>
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restore
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> restore.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get datadownloads <span class="token parameter variable">-A</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
openshift-adp restore-test-1-sk7lg Completed 7m11s 108104082 108104082 dpa-sample-1 7m11s ip-10-0-150-57.us-west-2.compute.internal
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAMESPACE NAME STATUS STARTED BYTES DONE TOTAL BYTES STORAGE LOCATION AGE NODE
openshift-adp restore-test-1-sk7lg Completed 7m11s 108104082 108104082 dpa-sample-1 7m11s ip-10-0-150-57.us-west-2.compute.internal</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get datadownloads <span class="token operator"><</span>datadownload_name<span class="token operator">></span> <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataDownload
metadata:
name: restore-test-1-sk7lg
namespace: openshift-adp
spec:
backupStorageLocation: dpa-sample-1
operationTimeout: 10m0s
snapshotID: 8da1c5febf25225f4577ada2aeb9f899
sourceNamespace: mysql-persistent
targetVolume:
namespace: mysql-persistent
pv: ""
pvc: mysql
status:
completionTimestamp: "2023-11-02T17:01:24Z"
node: ip-10-0-150-57.us-west-2.compute.internal
phase: Completed
progress:
bytesDone: 108104082
totalBytes: 108104082
startTimestamp: "2023-11-02T17:00:52Z"
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v2alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataDownload
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restore<span class="token punctuation"><span class="token punctuation">-</span></span>test<span class="token punctuation"><span class="token punctuation">-</span></span>1<span class="token punctuation"><span class="token punctuation">-</span></span>sk7lg
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupStorageLocation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpa<span class="token punctuation"><span class="token punctuation">-</span></span>sample<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">operationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m0s
<span class="token key atrule"><span class="token key atrule">snapshotID</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 8da1c5febf25225f4577ada2aeb9f899
<span class="token key atrule"><span class="token key atrule">sourceNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>persistent
<span class="token key atrule"><span class="token key atrule">targetVolume</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>persistent
<span class="token key atrule"><span class="token key atrule">pv</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span>
<span class="token key atrule"><span class="token key atrule">pvc</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">completionTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2023-11-02T17:01:24Z"</span></span>
<span class="token key atrule"><span class="token key atrule">node</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ip<span class="token punctuation"><span class="token punctuation">-</span></span>10<span class="token punctuation"><span class="token punctuation">-</span></span>0<span class="token punctuation"><span class="token punctuation">-</span></span>150<span class="token punctuation"><span class="token punctuation">-</span></span>57.us<span class="token punctuation"><span class="token punctuation">-</span></span>west<span class="token punctuation"><span class="token punctuation">-</span></span>2.compute.internal
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Completed </code></pre><rh-badge id="CO216-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">progress</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bytesDone</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">108104082</span></span>
<span class="token key atrule"><span class="token key atrule">totalBytes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">108104082</span></span>
<span class="token key atrule"><span class="token key atrule">startTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2023-11-02T17:00:52Z"</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
backupLocations:
- velero:
credential:
key: cloud
name: cloud-credentials-gcp
default: true
objectStorage:
bucket: oadp...2jw
prefix: velero
provider: gcp
configuration:
nodeAgent:
enable: true
uploaderType: kopia
backupPVC:
storage-class-1:
readOnly: true
spcNoRelabeling: true
storageClass: gp3-csi
storage-class-2:
readOnly: false
spcNoRelabeling: false
storageClass: gp3-csi
velero:
defaultPlugins:
- gcp
- openshift
- csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>gcp
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">...</span></span>2jw
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">backupPVC</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO217-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storage-class-1</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">readOnly</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO217-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">spcNoRelabeling</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO217-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageClass</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gp3<span class="token punctuation"><span class="token punctuation">-</span></span>csi
<span class="token key atrule"><span class="token key atrule">storage-class-2</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">readOnly</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">spcNoRelabeling</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span>
<span class="token key atrule"><span class="token key atrule">storageClass</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gp3<span class="token punctuation"><span class="token punctuation">-</span></span>csi
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: test-backup
namespace: openshift-adp
spec:
includedNamespaces:
- <application_namespace>
snapshotMoveData: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <application_namespace<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">snapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO218-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pvc <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-w</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
test-backup1-l..d Bound pvc-1298....022f8 2Gi ROX standard-csi <unset> 37s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">test-backup1-l..d Bound pvc-1298.....22f8 2Gi ROX standard-csi <unset> 37s
test-backup1-l..d Bound pvc-1298....022f8 2Gi ROX standard-csi <unset> 37s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
# ...
configuration:
nodeAgent:
enable: true
uploaderType: kopia
restorePVC:
ignoreDelayBinding: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">restorePVC</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO219-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">ignoreDelayBinding</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO219-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
#...
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- csi
defaultSnapshotMoveData: true
podConfig:
env:
- name: KOPIA_HASHING_ALGORITHM
value: <hashing_algorithm_name>
- name: KOPIA_ENCRYPTION_ALGORITHM
value: <encryption_algorithm_name>
- name: KOPIA_SPLITTER_ALGORITHM
value: <splitter_algorithm_name>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token comment"><span class="token comment">#...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO220-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia </code></pre><rh-badge id="CO220-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO220-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultSnapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">env</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> KOPIA_HASHING_ALGORITHM
<span class="token key atrule"><span class="token key atrule">value</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <hashing_algorithm_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO220-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> KOPIA_ENCRYPTION_ALGORITHM
<span class="token key atrule"><span class="token key atrule">value</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <encryption_algorithm_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO220-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> KOPIA_SPLITTER_ALGORITHM
<span class="token key atrule"><span class="token key atrule">value</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <splitter_algorithm_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO220-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_name>
namespace: openshift-adp
spec:
backupLocations:
- name: aws
velero:
config:
profile: default
region: <region_name>
credential:
key: cloud
name: cloud-credentials
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
provider: aws
configuration:
nodeAgent:
enable: true
uploaderType: kopia
velero:
defaultPlugins:
- openshift
- aws
- csi
defaultSnapshotMoveData: true
podConfig:
env:
- name: KOPIA_HASHING_ALGORITHM
value: BLAKE3-256
- name: KOPIA_ENCRYPTION_ALGORITHM
value: CHACHA20-POLY1305-HMAC-SHA256
- name: KOPIA_SPLITTER_ALGORITHM
value: DYNAMIC-8M-RABINKARP
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO221-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> default
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <region_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO221-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials </code></pre><rh-badge id="CO221-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO221-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> aws
<span class="token punctuation"><span class="token punctuation">-</span></span> csi </code></pre><rh-badge id="CO221-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultSnapshotMoveData</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">env</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> KOPIA_HASHING_ALGORITHM
<span class="token key atrule"><span class="token key atrule">value</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BLAKE3<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">256</span></span> </code></pre><rh-badge id="CO221-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> KOPIA_ENCRYPTION_ALGORITHM
<span class="token key atrule"><span class="token key atrule">value</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> CHACHA20<span class="token punctuation"><span class="token punctuation">-</span></span>POLY1305<span class="token punctuation"><span class="token punctuation">-</span></span>HMAC<span class="token punctuation"><span class="token punctuation">-</span></span>SHA256 </code></pre><rh-badge id="CO221-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> KOPIA_SPLITTER_ALGORITHM
<span class="token key atrule"><span class="token key atrule">value</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DYNAMIC<span class="token punctuation"><span class="token punctuation">-</span></span>8M<span class="token punctuation"><span class="token punctuation">-</span></span>RABINKARP </code></pre><rh-badge id="CO221-8" state="info">8</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpa_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO222-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: test-backup
namespace: openshift-adp
spec:
includedNamespaces:
- <application_namespace>
defaultVolumesToFsBackup: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> test<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">includedNamespaces</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <application_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO223-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultVolumesToFsBackup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>backup_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO224-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backups.velero.io <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">-o</span> yaml </span></span></code></pre><rh-badge id="CO225-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--bucket=<bucket_name> \
--prefix=velero/kopia/<application_namespace> \
--password=static-passw0rd \
--access-key="<aws_s3_access_key>" \
--secret-access-key="<aws_s3_secret_access_key>" \
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">kopia repository connect s3 <span class="token punctuation">\</span>
<span class="token parameter variable">--bucket</span><span class="token operator">=</span><span class="token operator"><</span>bucket_name<span class="token operator">></span> <span class="token punctuation">\</span> </span></span></code></pre><rh-badge id="CO226-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --prefix=velero/kopia/<application_namespace> \ </span></code></pre><rh-badge id="CO226-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --password=static-passw0rd \ </span></code></pre><rh-badge id="CO226-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --access-key="<aws_s3_access_key>" \ </span></code></pre><rh-badge id="CO226-4" state="info">4</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --secret-access-key="<aws_s3_secret_access_key>" \ </span></code></pre><rh-badge id="CO226-5" state="info">5</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">kopia repository status</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
Description: Repository in S3: s3.amazonaws.com <bucket_name>
# ...
Storage type: s3
Storage capacity: unbounded
Storage config: {
"bucket": <bucket_name>,
"prefix": "velero/kopia/<application_namespace>/",
"endpoint": "s3.amazonaws.com",
"accessKeyID": <access_key>,
"secretAccessKey": "****************************************",
"sessionToken": ""
}
Unique ID: 58....aeb0
Hash: BLAKE3-256
Encryption: CHACHA20-POLY1305-HMAC-SHA256
Splitter: DYNAMIC-8M-RABINKARP
Format version: 3
# ...
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Config file: /../.config/kopia/repository.config
Description: Repository in S3: s3.amazonaws.com <bucket_name>
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash"><span class="token punctuation">..</span>.</span></span>
<span class="token output">Storage type: s3
Storage capacity: unbounded
Storage config: {
"bucket": <bucket_name>,
"prefix": "velero/kopia/<application_namespace>/",
"endpoint": "s3.amazonaws.com",
"accessKeyID": <access_key>,
"secretAccessKey": "****************************************",
"sessionToken": ""
}
Unique ID: 58....aeb0
Hash: BLAKE3-256
Encryption: CHACHA20-POLY1305-HMAC-SHA256
Splitter: DYNAMIC-8M-RABINKARP
Format version: 3
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash"><span class="token punctuation">..</span>.</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Pod
metadata:
name: oadp-mustgather-pod
labels:
purpose: user-interaction
spec:
containers:
- name: oadp-mustgather-container
image: registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.3
command: ["sleep"]
args: ["infinity"]
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Pod
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>mustgather<span class="token punctuation"><span class="token punctuation">-</span></span>pod
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">purpose</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> user<span class="token punctuation"><span class="token punctuation">-</span></span>interaction
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">containers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>mustgather<span class="token punctuation"><span class="token punctuation">-</span></span>container
<span class="token key atrule"><span class="token key atrule">image</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> registry.redhat.io/oadp/oadp<span class="token punctuation"><span class="token punctuation">-</span></span>mustgather<span class="token punctuation"><span class="token punctuation">-</span></span>rhel9<span class="token punctuation"><span class="token punctuation">:</span></span>v1.3
<span class="token key atrule"><span class="token key atrule">command</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token string"><span class="token string">"sleep"</span></span><span class="token punctuation"><span class="token punctuation">]</span></span>
<span class="token key atrule"><span class="token key atrule">args</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">[</span></span><span class="token string"><span class="token string">"infinity"</span></span><span class="token punctuation"><span class="token punctuation">]</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> <span class="token operator"><</span>pod_config_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO227-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe pod/oadp-mustgather-pod <span class="token operator">|</span> <span class="token function">grep</span> scc</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">openshift.io/scc: anyuid</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp rsh pod/oadp-mustgather-pod</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--bucket=<bucket_name> \
--prefix=velero/kopia/<application_namespace> \
--password=static-passw0rd \
--access-key="<access_key>" \
--secret-access-key="<secret_access_key>" \
--endpoint=<bucket_endpoint> \
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-5.1# kopia repository connect s3 \
--bucket=<bucket_name> \ </span></code></pre><rh-badge id="CO228-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --prefix=velero/kopia/<application_namespace> \ </span></code></pre><rh-badge id="CO228-2" state="info">2</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --password=static-passw0rd \ </span></code></pre><rh-badge id="CO228-3" state="info">3</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --access-key="<access_key>" \ </span></code></pre><rh-badge id="CO228-4" state="info">4</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --secret-access-key="<secret_access_key>" \ </span></code></pre><rh-badge id="CO228-5" state="info">5</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> --endpoint=<bucket_endpoint> \ </span></code></pre><rh-badge id="CO228-6" state="info">6</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-5.1# kopia benchmark hashing</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
Benchmarking hash 'BLAKE2B-256-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE2S-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE2S-256' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE3-256' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE3-256-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA224' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA256' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA256-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA3-224' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA3-256' (100 x 1048576 bytes, parallelism 1)
Hash Throughput
-----------------------------------------------------------------
0. BLAKE3-256 15.3 GB / second
1. BLAKE3-256-128 15.2 GB / second
2. HMAC-SHA256-128 6.4 GB / second
3. HMAC-SHA256 6.4 GB / second
4. HMAC-SHA224 6.4 GB / second
5. BLAKE2B-256-128 4.2 GB / second
6. BLAKE2B-256 4.1 GB / second
7. BLAKE2S-256 2.9 GB / second
8. BLAKE2S-128 2.9 GB / second
9. HMAC-SHA3-224 1.6 GB / second
10. HMAC-SHA3-256 1.5 GB / second
-----------------------------------------------------------------
Fastest option for this machine is: --block-hash=BLAKE3-256
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Benchmarking hash 'BLAKE2B-256' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE2B-256-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE2S-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE2S-256' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE3-256' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'BLAKE3-256-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA224' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA256' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA256-128' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA3-224' (100 x 1048576 bytes, parallelism 1)
Benchmarking hash 'HMAC-SHA3-256' (100 x 1048576 bytes, parallelism 1)
Hash Throughput
-----------------------------------------------------------------
0. BLAKE3-256 15.3 GB / second
1. BLAKE3-256-128 15.2 GB / second
2. HMAC-SHA256-128 6.4 GB / second
3. HMAC-SHA256 6.4 GB / second
4. HMAC-SHA224 6.4 GB / second
5. BLAKE2B-256-128 4.2 GB / second
6. BLAKE2B-256 4.1 GB / second
7. BLAKE2S-256 2.9 GB / second
8. BLAKE2S-128 2.9 GB / second
9. HMAC-SHA3-224 1.6 GB / second
10. HMAC-SHA3-256 1.5 GB / second
-----------------------------------------------------------------
Fastest option for this machine is: --block-hash=BLAKE3-256</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-5.1# kopia benchmark encryption</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
Benchmarking encryption 'CHACHA20-POLY1305-HMAC-SHA256'... (1000 x 1048576 bytes, parallelism 1)
Encryption Throughput
-----------------------------------------------------------------
0. AES256-GCM-HMAC-SHA256 2.2 GB / second
1. CHACHA20-POLY1305-HMAC-SHA256 1.8 GB / second
-----------------------------------------------------------------
Fastest option for this machine is: --encryption=AES256-GCM-HMAC-SHA256
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Benchmarking encryption 'AES256-GCM-HMAC-SHA256'... (1000 x 1048576 bytes, parallelism 1)
Benchmarking encryption 'CHACHA20-POLY1305-HMAC-SHA256'... (1000 x 1048576 bytes, parallelism 1)
Encryption Throughput
-----------------------------------------------------------------
0. AES256-GCM-HMAC-SHA256 2.2 GB / second
1. CHACHA20-POLY1305-HMAC-SHA256 1.8 GB / second
-----------------------------------------------------------------
Fastest option for this machine is: --encryption=AES256-GCM-HMAC-SHA256</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-5.1# kopia benchmark splitter</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
DYNAMIC 747.6 MB/s count:107 min:9467 10th:2277562 25th:2971794 50th:4747177 75th:7603998 90th:8388608 max:8388608
DYNAMIC-128K-BUZHASH 718.5 MB/s count:3183 min:3076 10th:80896 25th:104312 50th:157621 75th:249115 90th:262144 max:262144
DYNAMIC-128K-RABINKARP 164.4 MB/s count:3160 min:9667 10th:80098 25th:106626 50th:162269 75th:250655 90th:262144 max:262144
# ...
FIXED-512K 102.9 TB/s count:1024 min:524288 10th:524288 25th:524288 50th:524288 75th:524288 90th:524288 max:524288
FIXED-8M 566.3 TB/s count:64 min:8388608 10th:8388608 25th:8388608 50th:8388608 75th:8388608 90th:8388608 max:8388608
-----------------------------------------------------------------
0. FIXED-8M 566.3 TB/s count:64 min:8388608 10th:8388608 25th:8388608 50th:8388608 75th:8388608 90th:8388608 max:8388608
1. FIXED-4M 425.8 TB/s count:128 min:4194304 10th:4194304 25th:4194304 50th:4194304 75th:4194304 90th:4194304 max:4194304
# ...
22. DYNAMIC-128K-RABINKARP 164.4 MB/s count:3160 min:9667 10th:80098 25th:106626 50th:162269 75th:250655 90th:262144 max:262144
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">splitting 16 blocks of 32MiB each, parallelism 1
DYNAMIC 747.6 MB/s count:107 min:9467 10th:2277562 25th:2971794 50th:4747177 75th:7603998 90th:8388608 max:8388608
DYNAMIC-128K-BUZHASH 718.5 MB/s count:3183 min:3076 10th:80896 25th:104312 50th:157621 75th:249115 90th:262144 max:262144
DYNAMIC-128K-RABINKARP 164.4 MB/s count:3160 min:9667 10th:80098 25th:106626 50th:162269 75th:250655 90th:262144 max:262144
</span><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash"><span class="token punctuation">..</span>.</span></span>
<span class="token output">FIXED-512K 102.9 TB/s count:1024 min:524288 10th:524288 25th:524288 50th:524288 75th:524288 90th:524288 max:524288
FIXED-8M 566.3 TB/s count:64 min:8388608 10th:8388608 25th:8388608 50th:8388608 75th:8388608 90th:8388608 max:8388608
-----------------------------------------------------------------
0. FIXED-8M 566.3 TB/s count:64 min:8388608 10th:8388608 25th:8388608 50th:8388608 75th:8388608 90th:8388608 max:8388608
1. FIXED-4M 425.8 TB/s count:128 min:4194304 10th:4194304 25th:4194304 50th:4194304 75th:4194304 90th:4194304 max:4194304
# ...
22. DYNAMIC-128K-RABINKARP 164.4 MB/s count:3160 min:9667 10th:80098 25th:106626 50th:162269 75th:250655 90th:262144 max:262144</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc api-resources</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
spec:
configuration:
velero:
featureFlags:
- EnableAPIGroupVersions
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/vialpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">featureFlags</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> EnableAPIGroupVersions</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
backup.velero.io/backup-volumes=<your_volume_name_1>, \ <your_volume_name_2>>,...,<your_volume_name_n>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> <span class="token operator"><</span>your_pod_namespace<span class="token operator">></span> annotate pod/<span class="token operator"><</span>your_pod_name<span class="token operator">></span> <span class="token punctuation">\</span>
backup.velero.io/backup-volumes<span class="token operator">=</span><span class="token operator"><</span>your_volume_name_<span class="token operator"><span class="token file-descriptor important">1</span>></span>, <span class="token punctuation">\</span> <span class="token operator"><</span>your_volume_name_<span class="token operator"><span class="token file-descriptor important">2</span>>></span>,<span class="token punctuation">..</span>.,<span class="token operator"><</span>your_volume_name_n<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
backup.velero.io/backup-volumes-excludes=<your_volume_name_1>, \ <your_volume_name_2>>,...,<your_volume_name_n>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> <span class="token operator"><</span>your_pod_namespace<span class="token operator">></span> annotate pod/<span class="token operator"><</span>your_pod_name<span class="token operator">></span> <span class="token punctuation">\</span>
backup.velero.io/backup-volumes-excludes<span class="token operator">=</span><span class="token operator"><</span>your_volume_name_<span class="token operator"><span class="token file-descriptor important">1</span>></span>, <span class="token punctuation">\</span> <span class="token operator"><</span>your_volume_name_<span class="token operator"><span class="token file-descriptor important">2</span>>></span>,<span class="token punctuation">..</span>.,<span class="token operator"><</span>your_volume_name_n<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup create <span class="token operator"><</span>backup_name<span class="token operator">></span> --default-volumes-to-fs-backup <span class="token operator"><</span>any_other_options<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> change-storageclass.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: ConfigMap
metadata:
name: change-storage-class-config
namespace: openshift-adp
labels:
velero.io/plugin-config: ""
velero.io/change-storage-class: RestoreItemAction
data:
standard-csi: ssd-csi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ConfigMap
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> change<span class="token punctuation"><span class="token punctuation">-</span></span>storage<span class="token punctuation"><span class="token punctuation">-</span></span>class<span class="token punctuation"><span class="token punctuation">-</span></span>config
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero.io/plugin-config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span>
<span class="token key atrule"><span class="token key atrule">velero.io/change-storage-class</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RestoreItemAction
<span class="token key atrule"><span class="token key atrule">data</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">standard-csi</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ssd<span class="token punctuation"><span class="token punctuation">-</span></span>csi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> change-storage-class-config</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">alias</span> <span class="token assign-left variable">velero</span><span class="token operator">=</span><span class="token string">'oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe <span class="token operator"><</span>velero_cr<span class="token operator">></span> <span class="token operator"><</span>cr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc logs pod/<span class="token operator"><</span>velero<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: velero-sample
spec:
configuration:
velero:
logLevel: warning
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">logLevel</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> warning</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<backup_restore_cr> <command> <cr_name>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
<span class="token operator"><</span>backup_restore_cr<span class="token operator">></span> <span class="token operator"><</span>command<span class="token operator">></span> <span class="token operator"><</span>cr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--help
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
<span class="token parameter variable">--help</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<backup_restore_cr> logs <cr_name>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
<span class="token operator"><</span>backup_restore_cr<span class="token operator">></span> logs <span class="token operator"><</span>cr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
restore logs ccc7c2d0-6017-11eb-afab-85d0007f5a19-x4lbf</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<backup_restore_cr> describe <cr_name>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
<span class="token operator"><</span>backup_restore_cr<span class="token operator">></span> describe <span class="token operator"><</span>cr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
backup describe 0e44ae00-5dc3-11eb-9ca8-df7e5254778b-2d8ql</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
cpu: 500m
memory: 128Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 500m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 128Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
configuration:
velero:
podConfig:
resourceAllocations:
requests:
cpu: 200m
memory: 256Mi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO229-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 256Mi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
...
configuration:
restic:
podConfig:
resourceAllocations:
requests:
cpu: 1000m
memory: 16Gi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">restic</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO230-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1000m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 16Gi</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
spec:
backupLocations:
- velero:
default: true
objectStorage:
bucket: oadp.....njph
prefix: velero
credential:
key: cloud
name: cloud-credentials-gcp
provider: gcp
configuration:
velero:
defaultPlugins:
- gcp
- openshift
- csi
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
resourceAllocations:
requests:
cpu: 1000m
memory: 16Gi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">...</span></span>..njph
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>gcp
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> gcp
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token punctuation"><span class="token punctuation">-</span></span> csi
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kopia
<span class="token key atrule"><span class="token key atrule">podConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceAllocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO231-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">cpu</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1000m
<span class="token key atrule"><span class="token key atrule">memory</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 16Gi </code></pre><rh-badge id="CO231-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> nodeAgent.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pods</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
node-agent-hbj9l 1/1 Running 0 97s
node-agent-wmwgz 1/1 Running 0 95s
node-agent-zvc7k 1/1 Running 0 98s
openshift-adp-controller-manager-7f9db86d96-4lhgq 1/1 Running 0 137m
velero-7b6c7fb8d7-ppc8m 1/1 Running 0 4m2s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME READY STATUS RESTARTS AGE
node-agent-hbj9l 1/1 Running 0 97s
node-agent-wmwgz 1/1 Running 0 95s
node-agent-zvc7k 1/1 Running 0 98s
openshift-adp-controller-manager-7f9db86d96-4lhgq 1/1 Running 0 137m
velero-7b6c7fb8d7-ppc8m 1/1 Running 0 4m2s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe pod node-agent-hbj9l <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-C</span> <span class="token number">5</span> Requests</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
State: Running
Started: Mon, 09 Jun 2025 16:22:15 +0530
Ready: True
Restart Count: 0
Requests:
cpu: 1
memory: 1Gi
Environment:
NODE_NAME: (v1:spec.nodeName)
VELERO_NAMESPACE: openshift-adp (v1:metadata.namespace)
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"> --log-format=text
State: Running
Started: Mon, 09 Jun 2025 16:22:15 +0530
Ready: True
Restart Count: 0
Requests:
cpu: 1
memory: 1Gi
Environment:
NODE_NAME: (v1:spec.nodeName)
VELERO_NAMESPACE: openshift-adp (v1:metadata.namespace)</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--from-backup=<backup_name> --include-resources \
service.serving.knavtive.dev
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero restore <span class="token operator"><</span>restore_name<span class="token operator">></span> <span class="token punctuation">\</span>
--from-backup<span class="token operator">=</span><span class="token operator"><</span>backup_name<span class="token operator">></span> --include-resources <span class="token punctuation">\</span>
service.serving.knavtive.dev</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get mutatingwebhookconfigurations</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">024-02-27T10:46:50.028951744Z time="2024-02-27T10:46:50Z" level=error msg="Error backing up item"
backup=openshift-adp/<backup name> error="error executing custom action (groupResource=imagestreams.image.openshift.io,
namespace=<BSL Name>, name=postgres): rpc error: code = Aborted desc = plugin panicked:
runtime error: index out of range with length 1, stack trace: goroutine 94…</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label backupstoragelocations.velero.io <span class="token operator"><</span>bsl_name<span class="token operator">></span> app.kubernetes.io/component<span class="token operator">=</span>bsl</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-adp get secret/oadp-<span class="token operator"><</span>bsl_name<span class="token operator">></span>-<span class="token operator"><</span>bsl_provider<span class="token operator">></span>-registry-secret <span class="token parameter variable">-o</span> json <span class="token operator">|</span> jq <span class="token parameter variable">-r</span> <span class="token string">'.data'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">Backup storage contains invalid top-level directories.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">`InvalidAccessKeyId: The AWS Access Key Id you provided does not exist in our records.`</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NoCredentialProviders: no valid providers in chain.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
aws_access_key_id=AKIAIOSFODNN7EXAMPLE
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">[default] </code></pre><rh-badge id="CO232-1" state="info">1</rh-badge>
<pre class="language-plaintext" tabindex="0"><code class="language-plaintext">
aws_access_key_id=AKIAIOSFODNN7EXAMPLE </code></pre><rh-badge id="CO232-2" state="info">2</rh-badge>
<pre class="language-plaintext" tabindex="0"><code class="language-plaintext">
aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-A</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup-location get <span class="token parameter variable">-n</span> <span class="token operator"><</span>oadp_operator_namespace<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get backupstoragelocations.velero.io <span class="token parameter variable">-n</span> <span class="token operator"><</span>namespace<span class="token operator">></span> <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
items:
- apiVersion: velero.io/v1
kind: BackupStorageLocation
metadata:
creationTimestamp: "2023-11-03T19:49:04Z"
generation: 9703
name: example-dpa-1
namespace: openshift-adp-operator
ownerReferences:
- apiVersion: oadp.openshift.io/v1alpha1
blockOwnerDeletion: true
controller: true
kind: DataProtectionApplication
name: example-dpa
uid: 0beeeaff-0287-4f32-bcb1-2e3c921b6e82
resourceVersion: "24273698"
uid: ba37cd15-cf17-4f7d-bf03-8af8655cea83
spec:
config:
enableSharedConfig: "true"
region: us-west-2
credential:
key: credentials
name: cloud-credentials
default: true
objectStorage:
bucket: example-oadp-operator
prefix: example
provider: aws
status:
lastValidationTime: "2023-11-10T22:06:46Z"
message: "BackupStorageLocation \"example-dpa-1\" is unavailable: rpc
error: code = Unknown desc = WebIdentityErr: failed to retrieve credentials\ncaused
by: AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity\n\tstatus
code: 403, request id: d3f2e099-70a0-467b-997e-ff62345e3b54"
phase: Unavailable
kind: List
metadata:
resourceVersion: ""
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">items</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> BackupStorageLocation
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">creationTimestamp</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2023-11-03T19:49:04Z"</span></span>
<span class="token key atrule"><span class="token key atrule">generation</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">9703</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example<span class="token punctuation"><span class="token punctuation">-</span></span>dpa<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span>
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp<span class="token punctuation"><span class="token punctuation">-</span></span>operator
<span class="token key atrule"><span class="token key atrule">ownerReferences</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">blockOwnerDeletion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">controller</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 0beeeaff<span class="token punctuation"><span class="token punctuation">-</span></span>0287<span class="token punctuation"><span class="token punctuation">-</span></span>4f32<span class="token punctuation"><span class="token punctuation">-</span></span>bcb1<span class="token punctuation"><span class="token punctuation">-</span></span>2e3c921b6e82
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"24273698"</span></span>
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ba37cd15<span class="token punctuation"><span class="token punctuation">-</span></span>cf17<span class="token punctuation"><span class="token punctuation">-</span></span>4f7d<span class="token punctuation"><span class="token punctuation">-</span></span>bf03<span class="token punctuation"><span class="token punctuation">-</span></span>8af8655cea83
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enableSharedConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>west<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">2</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> credentials
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example<span class="token punctuation"><span class="token punctuation">-</span></span>oadp<span class="token punctuation"><span class="token punctuation">-</span></span>operator
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> example
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">lastValidationTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2023-11-10T22:06:46Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> "BackupStorageLocation \"example<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token key atrule"><span class="token key atrule">dpa-1\" is unavailable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> rpc
<span class="token key atrule"><span class="token key atrule">error</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token key atrule"><span class="token key atrule">code = Unknown desc = WebIdentityErr</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> failed to retrieve credentials\ncaused
<span class="token key atrule"><span class="token key atrule">by</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token key atrule"><span class="token key atrule">AccessDenied</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Not authorized to perform sts<span class="token punctuation"><span class="token punctuation">:</span></span>AssumeRoleWithWebIdentity\n\tstatus
<span class="token key atrule"><span class="token key atrule">code</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">403</span></span><span class="token punctuation"><span class="token punctuation">,</span></span> <span class="token key atrule"><span class="token key atrule">request id</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> d3f2e099<span class="token punctuation"><span class="token punctuation">-</span></span>70a0<span class="token punctuation"><span class="token punctuation">-</span></span>467b<span class="token punctuation"><span class="token punctuation">-</span></span>997e<span class="token punctuation"><span class="token punctuation">-</span></span>ff62345e3b54"
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Unavailable
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> List
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">""</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">level=error msg="Error backing up item" backup=velero/monitoring error="timed out waiting for all PodVolumeBackups to complete"</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_name>
spec:
configuration:
nodeAgent:
enable: true
uploaderType: restic
timeout: 1h
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_name>
spec:
configuration:
velero:
resourceTimeout: 10m
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_name>
spec:
configuration:
velero:
defaultItemOperationTimeout: 1h
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultItemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: <dpa_name>
spec:
features:
dataMover:
timeout: 10m
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <dpa_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">features</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">dataMover</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: <backup_name>
spec:
csiSnapshotTimeout: 10m
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">csiSnapshotTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10m
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Restore
metadata:
name: <restore_name>
spec:
itemOperationTimeout: 1h
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Restore
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <restore_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: <backup_name>
spec:
itemOperationTimeout: 1h
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <backup_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">itemOperationTimeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 1h
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">InvalidVolume.NotFound: The volume ‘vol-xxxx’ does not exist.</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
backup describe <backup>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> <span class="token punctuation">{</span>namespace<span class="token punctuation">}</span> <span class="token builtin class-name">exec</span> deployment/velero <span class="token parameter variable">-c</span> velero -- ./velero <span class="token punctuation">\</span>
backup describe <span class="token operator"><</span>backup<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete backups.velero.io <span class="token operator"><</span>backup<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">velero backup describe <span class="token operator"><</span>backup_name<span class="token operator">></span> <span class="token parameter variable">--details</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">time="2023-02-17T16:33:13Z" level=error msg="Error backing up item" backup=openshift-adp/user1-backup-check5 error="error executing custom action (groupResource=persistentvolumeclaims, namespace=busy1, name=pvc1-user1): rpc error: code = Unknown desc = failed to get volumesnapshotclass for storageclass ocs-storagecluster-ceph-rbd: failed to get volumesnapshotclass for provisioner openshift-storage.rbd.csi.ceph.com, ensure that the desired volumesnapshot class has the velero.io/csi-volumesnapshot-class label" logSource="/remote-source/velero/app/pkg/backup/backup.go:417" name=busybox-79799557b5-vprq</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete backups.velero.io <span class="token operator"><</span>backup<span class="token operator">></span> <span class="token parameter variable">-n</span> openshift-adp</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc label volumesnapshotclass/<span class="token operator"><</span>snapclass_name<span class="token operator">></span> velero.io/csi-volumesnapshot-class<span class="token operator">=</span>true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">controller=pod-volume-backup error="fork/exec/usr/bin/restic: permission denied".</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
# ...
spec:
configuration:
nodeAgent:
enable: true
uploaderType: restic
supplementalGroups:
- <group_id>
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeAgent</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">uploaderType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> restic
<span class="token key atrule"><span class="token key atrule">supplementalGroups</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <group_id<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO233-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">stderr=Fatal: unable to open config file: Stat: The specified key does not exist.\nIs there a repository at the following location?</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete resticrepository openshift-adp <span class="token operator"><</span>name_of_the_restic_repository<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
encountered backup up item" backup=velero/backup65
logSource="pkg/backup/backup.go:431" name=mysql-7d99fc949-qbkds
time="2021-12-29T18:29:14Z" level=error msg="Error backing up item"
backup=velero/backup65 error="pod volume backup failed: error running
restic backup, stderr=Fatal: unable to open config file: Stat: The
specified key does not exist.\nIs there a repository at the following
location?\ns3:http://minio-minio.apps.mayap-oadp-
veleo-1234.qe.devcluster.openshift.com/mayapvelerooadp2/velero1/
restic/mysql-persistent\n: exit status 1" error.file="/remote-source/
src/github.com/vmware-tanzu/velero/pkg/restic/backupper.go:184"
error.function="github.com/vmware-tanzu/velero/
pkg/restic.(*backupper).BackupPodVolumes"
logSource="pkg/backup/backup.go:435" name=mysql-7d99fc949-qbkds
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext"> time="2021-12-29T18:29:14Z" level=info msg="1 errors
encountered backup up item" backup=velero/backup65
logSource="pkg/backup/backup.go:431" name=mysql-7d99fc949-qbkds
time="2021-12-29T18:29:14Z" level=error msg="Error backing up item"
backup=velero/backup65 error="pod volume backup failed: error running
restic backup, stderr=Fatal: unable to open config file: Stat: The
specified key does not exist.\nIs there a repository at the following
location?\ns3:http://minio-minio.apps.mayap-oadp-
veleo-1234.qe.devcluster.openshift.com/mayapvelerooadp2/velero1/
restic/<span class="token italic">mysql-persistent</span>\n: exit status 1" error.file="/remote-source/
src/github.com/vmware-tanzu/velero/pkg/restic/backupper.go:184"
error.function="github.com/vmware-tanzu/velero/
pkg/restic.(*backupper).BackupPodVolumes"
logSource="pkg/backup/backup.go:435" name=mysql-7d99fc949-qbkds</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
level=error msg=\"error restoring mysql-869f9f44f6-tp5lv: pods\\\
"mysql-869f9f44f6-tp5lv\\\" is forbidden: violates PodSecurity\\\
"restricted:v1.24\\\": privil eged (container \\\"mysql\\\
" must not set securityContext.privileged=true),
allowPrivilegeEscalation != false (containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.capabilities.drop=[\\\"ALL\\\"]), seccompProfile (pod or containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.seccompProfile.type to \\\
"RuntimeDefault\\\" or \\\"Localhost\\\")\" logSource=\"/remote-source/velero/app/pkg/restore/restore.go:1388\" restore=openshift-adp/todolist-backup-0780518c-08ed-11ee-805c-0a580a80e92c\n
velero container contains \"level=error\" in line#2447: time=\"2023-06-12T06:50:05Z\"
level=error msg=\"Namespace todolist-mariadb,
resource restore error: error restoring pods/todolist-mariadb/mysql-869f9f44f6-tp5lv: pods \\\
"mysql-869f9f44f6-tp5lv\\\" is forbidden: violates PodSecurity \\\"restricted:v1.24\\\": privileged (container \\\
"mysql\\\" must not set securityContext.privileged=true),
allowPrivilegeEscalation != false (containers \\\
"restic-wait\\\",\\\"mysql\\\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.capabilities.drop=[\\\"ALL\\\"]), seccompProfile (pod or containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.seccompProfile.type to \\\
"RuntimeDefault\\\" or \\\"Localhost\\\")\"
logSource=\"/remote-source/velero/app/pkg/controller/restore_controller.go:510\"
restore=openshift-adp/todolist-backup-0780518c-08ed-11ee-805c-0a580a80e92c\n]",
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">\"level=error\" in line#2273: time=\"2023-06-12T06:50:04Z\"
level=error msg=\"error restoring mysql-869f9f44f6-tp5lv: pods\\\
"mysql-869f9f44f6-tp5lv\\\" is forbidden: violates PodSecurity\\\
"restricted:v1.24\\\": privil eged (container \\\"mysql\\\
" must not set securityContext.privileged=true),
allowPrivilegeEscalation != false (containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.capabilities.drop=[\\\"ALL\\\"]), seccompProfile (pod or containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.seccompProfile.type to \\\
"RuntimeDefault\\\" or \\\"Localhost\\\")\" logSource=\"/remote-source/velero/app/pkg/restore/restore.go:1388\" restore=openshift-adp/todolist-backup-0780518c-08ed-11ee-805c-0a580a80e92c\n
velero container contains \"level=error\" in line#2447: time=\"2023-06-12T06:50:05Z\"
level=error msg=\"Namespace todolist-mariadb,
resource restore error: error restoring pods/todolist-mariadb/mysql-869f9f44f6-tp5lv: pods \\\
"mysql-869f9f44f6-tp5lv\\\" is forbidden: violates PodSecurity \\\"restricted:v1.24\\\": privileged (container \\\
"mysql\\\" must not set securityContext.privileged=true),
allowPrivilegeEscalation != false (containers \\\
"restic-wait\\\",\\\"mysql\\\" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.capabilities.drop=[\\\"ALL\\\"]), seccompProfile (pod or containers \\\
"restic-wait\\\", \\\"mysql\\\" must set securityContext.seccompProfile.type to \\\
"RuntimeDefault\\\" or \\\"Localhost\\\")\"
logSource=\"/remote-source/velero/app/pkg/controller/restore_controller.go:510\"
restore=openshift-adp/todolist-backup-0780518c-08ed-11ee-805c-0a580a80e92c\n]",</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpa <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
configuration:
restic:
enable: true
velero:
args:
restore-resource-priorities: 'securitycontextconstraints,customresourcedefinitions,namespaces,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,datauploads.velero.io,persistentvolumes,persistentvolumeclaims,serviceaccounts,secrets,configmaps,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,endpoints,services,-,clusterbootstraps.run.tanzu.vmware.com,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io'
defaultPlugins:
- gcp
- openshift
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token comment"><span class="token comment"># ...</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">restic</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">enable</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">args</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">restore-resource-priorities</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'securitycontextconstraints,customresourcedefinitions,namespaces,storageclasses,volumesnapshotclass.snapshot.storage.k8s.io,volumesnapshotcontents.snapshot.storage.k8s.io,volumesnapshots.snapshot.storage.k8s.io,datauploads.velero.io,persistentvolumes,persistentvolumeclaims,serviceaccounts,secrets,configmaps,limitranges,pods,replicasets.apps,clusterclasses.cluster.x-k8s.io,endpoints,services,-,clusterbootstraps.run.tanzu.vmware.com,clusters.cluster.x-k8s.io,clusterresourcesets.addons.cluster.x-k8s.io'</span></span> </code></pre><rh-badge id="CO234-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> gcp
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionTest
metadata:
name: dpt-sample
namespace: openshift-adp
spec:
backupLocationName: <bsl_name>
csiVolumeSnapshotTestConfigs:
- snapshotClassName: csi-gce-pd-vsc
timeout: 90s
volumeSnapshotSource:
persistentVolumeClaimName: <pvc1_name>
persistentVolumeClaimNamespace: <pvc_namespace>
- snapshotClassName: csi-gce-pd-vsc
timeout: 120s
volumeSnapshotSource:
persistentVolumeClaimName: <pvc2_name>
persistentVolumeClaimNamespace: <pvc_namespace>
forceRun: false
uploadSpeedTestConfig:
fileSize: 200MB
timeout: 120s
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionTest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpt<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocationName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bsl_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO235-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">csiVolumeSnapshotTestConfigs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO235-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">snapshotClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> csi<span class="token punctuation"><span class="token punctuation">-</span></span>gce<span class="token punctuation"><span class="token punctuation">-</span></span>pd<span class="token punctuation"><span class="token punctuation">-</span></span>vsc
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 90s
<span class="token key atrule"><span class="token key atrule">volumeSnapshotSource</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <pvc1_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO235-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <pvc_namespace<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO235-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">snapshotClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> csi<span class="token punctuation"><span class="token punctuation">-</span></span>gce<span class="token punctuation"><span class="token punctuation">-</span></span>pd<span class="token punctuation"><span class="token punctuation">-</span></span>vsc
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 120s
<span class="token key atrule"><span class="token key atrule">volumeSnapshotSource</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <pvc2_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO235-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <pvc_namespace<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">forceRun</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">false</span></span> </code></pre><rh-badge id="CO235-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploadSpeedTestConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO235-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">fileSize</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200MB
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 120s</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpt_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO236-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpt dpt-sample</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LASTTESTED UPLOADSPEED(MBPS) ENCRYPTION VERSIONING SNAPSHOTS AGE
dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpt dpt-sample <span class="token parameter variable">-o</span> yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionTest
....
status:
bucketMetadata:
encryptionAlgorithm: AES256
versioningStatus: Enabled
lastTested: "202...:47:51Z"
phase: Complete
s3Vendor: AWS
snapshotSummary: 2/2 passed
snapshotTests:
- persistentVolumeClaimName: mysql-data
persistentVolumeClaimNamespace: ocp-mysql
readyDuration: 24s
status: Ready
- persistentVolumeClaimName: mysql-data1
persistentVolumeClaimNamespace: ocp-mysql
readyDuration: 40s
status: Ready
uploadTest:
duration: 3.071s
speedMbps: 546
success: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionTest
<span class="token punctuation"><span class="token punctuation">...</span></span>.
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucketMetadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO237-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">encryptionAlgorithm</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> AES256
<span class="token key atrule"><span class="token key atrule">versioningStatus</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Enabled
<span class="token key atrule"><span class="token key atrule">lastTested</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"202...:47:51Z"</span></span>
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Complete
<span class="token key atrule"><span class="token key atrule">s3Vendor</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> AWS </code></pre><rh-badge id="CO237-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">snapshotSummary</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 2/2 passed </code></pre><rh-badge id="CO237-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">snapshotTests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">persistentVolumeClaimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>data
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ocp<span class="token punctuation"><span class="token punctuation">-</span></span>mysql
<span class="token key atrule"><span class="token key atrule">readyDuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 24s
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Ready
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">persistentVolumeClaimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>data1
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ocp<span class="token punctuation"><span class="token punctuation">-</span></span>mysql
<span class="token key atrule"><span class="token key atrule">readyDuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 40s
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Ready
<span class="token key atrule"><span class="token key atrule">uploadTest</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO237-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">duration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 3.071s
<span class="token key atrule"><span class="token key atrule">speedMbps</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">546</span></span>
<span class="token key atrule"><span class="token key atrule">success</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionTest
metadata:
name: dpt-sample
namespace: openshift-adp
spec:
backupLocationSpec:
provider: aws
default: true
objectStorage:
bucket: sample-bucket
prefix: velero
config:
region: us-east-1
profile: "default"
insecureSkipTLSVerify: "true"
s3Url: "https://s3.amazonaws.com/sample-bucket"
credential:
name: cloud-credentials
key: cloud
uploadSpeedTestConfig:
fileSize: 50MB
timeout: 120s
csiVolumeSnapshotTestConfigs:
- volumeSnapshotSource:
persistentVolumeClaimName: mongo
persistentVolumeClaimNamespace: mongo-persistent
snapshotClassName: csi-snapclass
timeout: 2m
forceRun: true
skipTLSVerify: true
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionTest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpt<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocationSpec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO238-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> sample<span class="token punctuation"><span class="token punctuation">-</span></span>bucket </code></pre><rh-badge id="CO238-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">region</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> us<span class="token punctuation"><span class="token punctuation">-</span></span>east<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">1</span></span> </code></pre><rh-badge id="CO238-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">profile</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"default"</span></span>
<span class="token key atrule"><span class="token key atrule">insecureSkipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"true"</span></span>
<span class="token key atrule"><span class="token key atrule">s3Url</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"https://s3.amazonaws.com/sample-bucket"</span></span>
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO238-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">uploadSpeedTestConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO238-5" state="info">5</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">fileSize</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 50MB
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 120s
<span class="token key atrule"><span class="token key atrule">csiVolumeSnapshotTestConfigs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> </code></pre><rh-badge id="CO238-6" state="info">6</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">volumeSnapshotSource</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mongo
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mongo<span class="token punctuation"><span class="token punctuation">-</span></span>persistent
<span class="token key atrule"><span class="token key atrule">snapshotClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> csi<span class="token punctuation"><span class="token punctuation">-</span></span>snapclass
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 2m
<span class="token key atrule"><span class="token key atrule">forceRun</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">skipTLSVerify</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span> </code></pre><rh-badge id="CO238-7" state="info">7</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> <span class="token operator"><</span>dpt_file_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO239-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get dpt dpt-sample</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE LASTTESTED UPLOADSPEED(MBPS) ENCRYPTION VERSIONING SNAPSHOTS AGE
dpt-sample Complete 17m 546 AES256 Enabled 2/2 passed 17m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
--assignee "$AZURE_CLIENT_ID" \
--role "Storage Blob Data Contributor" \
--scope "/subscriptions/$AZURE_SUBSCRIPTION_ID/resourceGroups/$AZURE_RESOURCE_GROUP/providers/Microsoft.Storage/storageAccounts/$AZURE_STORAGE_ACCOUNT_ID"
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">az role assignment create <span class="token punctuation">\</span>
<span class="token parameter variable">--assignee</span> <span class="token string">"<span class="token variable">$AZURE_CLIENT_ID</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--role</span> <span class="token string">"Storage Blob Data Contributor"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--scope</span> <span class="token string">"/subscriptions/<span class="token variable">$AZURE_SUBSCRIPTION_ID</span>/resourceGroups/<span class="token variable">$AZURE_RESOURCE_GROUP</span>/providers/Microsoft.Storage/storageAccounts/<span class="token variable">$AZURE_STORAGE_ACCOUNT_ID</span>"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
AZURE_TENANT_ID=<tenant-id>
AZURE_CLIENT_ID=<client-id>
AZURE_CLIENT_SECRET=<client-secret>
AZURE_RESOURCE_GROUP=<resource-group>
AZURE_STORAGE_ACCOUNT_ID=<storage-account>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">AZURE_SUBSCRIPTION_ID=<subscription-id>
AZURE_TENANT_ID=<tenant-id>
AZURE_CLIENT_ID=<client-id>
AZURE_CLIENT_SECRET=<client-secret>
AZURE_RESOURCE_GROUP=<resource-group>
AZURE_STORAGE_ACCOUNT_ID=<storage-account></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create secret generic cloud-credentials-azure <span class="token parameter variable">-n</span> openshift-adp --from-file <span class="token assign-left variable">cloud</span><span class="token operator">=</span><span class="token operator"><</span>credentials_file_path<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionApplication
metadata:
name: ts-dpa
namespace: openshift-adp
spec:
configuration:
velero:
defaultPlugins:
- azure
- openshift
backupLocations:
- velero:
config:
resourceGroup: oadp-....-b7q4-rg
storageAccount: oadp...kb7q4
subscriptionId: 53b8f5...fd54c8a
credential:
key: cloud
name: cloud-credentials-azure
provider: azure
default: true
objectStorage:
bucket: <bucket_name>
prefix: velero
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionApplication
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ts<span class="token punctuation"><span class="token punctuation">-</span></span>dpa
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">configuration</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">defaultPlugins</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> azure
<span class="token punctuation"><span class="token punctuation">-</span></span> openshift
<span class="token key atrule"><span class="token key atrule">backupLocations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">velero</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">resourceGroup</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token punctuation"><span class="token punctuation">...</span></span>.<span class="token punctuation"><span class="token punctuation">-</span></span>b7q4<span class="token punctuation"><span class="token punctuation">-</span></span>rg
<span class="token key atrule"><span class="token key atrule">storageAccount</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">...</span></span>kb7q4
<span class="token key atrule"><span class="token key atrule">subscriptionId</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 53b8f5<span class="token punctuation"><span class="token punctuation">...</span></span>fd54c8a
<span class="token key atrule"><span class="token key atrule">credential</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cloud<span class="token punctuation"><span class="token punctuation">-</span></span>credentials<span class="token punctuation"><span class="token punctuation">-</span></span>azure </code></pre><rh-badge id="CO240-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">provider</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> azure
<span class="token key atrule"><span class="token key atrule">default</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token boolean important"><span class="token boolean important">true</span></span>
<span class="token key atrule"><span class="token key atrule">objectStorage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">bucket</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bucket_name<span class="token punctuation"><span class="token punctuation">></span></span>
<span class="token key atrule"><span class="token key atrule">prefix</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> velero</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: DataProtectionTest
metadata:
name: dpt-sample
namespace: openshift-adp
spec:
backupLocationName: <bsl_name>
uploadSpeedTestConfig:
fileSize: 40MB
timeout: 120s
csiVolumeSnapshotTestConfigs:
- snapshotClassName: csi-azuredisk-vsc
timeout: 90s
volumeSnapshotSource:
persistentVolumeClaimName: mysql-data
persistentVolumeClaimNamespace: ocp-mysql
- snapshotClassName: csi-azuredisk-vsc
timeout: 120s
volumeSnapshotSource:
persistentVolumeClaimName: mysql-data1
persistentVolumeClaimNamespace: ocp-mysql
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> DataProtectionTest
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> dpt<span class="token punctuation"><span class="token punctuation">-</span></span>sample
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">backupLocationName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <bsl_name<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO241-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">uploadSpeedTestConfig</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">fileSize</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 40MB
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 120s
<span class="token key atrule"><span class="token key atrule">csiVolumeSnapshotTestConfigs</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">snapshotClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> csi<span class="token punctuation"><span class="token punctuation">-</span></span>azuredisk<span class="token punctuation"><span class="token punctuation">-</span></span>vsc </code></pre><rh-badge id="CO241-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 90s
<span class="token key atrule"><span class="token key atrule">volumeSnapshotSource</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>data </code></pre><rh-badge id="CO241-3" state="info">3</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ocp<span class="token punctuation"><span class="token punctuation">-</span></span>mysql </code></pre><rh-badge id="CO241-4" state="info">4</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">snapshotClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> csi<span class="token punctuation"><span class="token punctuation">-</span></span>azuredisk<span class="token punctuation"><span class="token punctuation">-</span></span>vsc
<span class="token key atrule"><span class="token key atrule">timeout</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 120s
<span class="token key atrule"><span class="token key atrule">volumeSnapshotSource</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> mysql<span class="token punctuation"><span class="token punctuation">-</span></span>data1
<span class="token key atrule"><span class="token key atrule">persistentVolumeClaimNamespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ocp<span class="token punctuation"><span class="token punctuation">-</span></span>mysql</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm must-gather <span class="token parameter variable">--image</span><span class="token operator">=</span>registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather <span class="token parameter variable">-h</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm must-gather <span class="token parameter variable">--image</span><span class="token operator">=</span>registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm must-gather <span class="token parameter variable">--image</span><span class="token operator">=</span>registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --request-timeout 1m </span></span></code></pre><rh-badge id="CO242-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm must-gather <span class="token parameter variable">--image</span><span class="token operator">=</span>registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --skip-tls</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm must-gather <span class="token parameter variable">--image</span><span class="token operator">=</span>registry.redhat.io/oadp/oadp-mustgather-rhel9:v1.5 -- /usr/bin/gather --request-timeout 15s --skip-tls </span></span></code></pre><rh-badge id="CO243-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc edit configmap cluster-monitoring-config <span class="token parameter variable">-n</span> openshift-monitoring</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: ConfigMap
data:
config.yaml: |
enableUserWorkload: true
metadata:
# ...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ConfigMap
<span class="token key atrule"><span class="token key atrule">data</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config.yaml</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">|</span></span><span class="token scalar string"><span class="token scalar string">
enableUserWorkload: true </span></span></code></pre><rh-badge id="CO244-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token comment"><span class="token comment"># ...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pods <span class="token parameter variable">-n</span> openshift-user-workload-monitoring</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
prometheus-operator-6844b4b99c-b57j9 2/2 Running 0 43s
prometheus-user-workload-0 5/5 Running 0 32s
prometheus-user-workload-1 5/5 Running 0 32s
thanos-ruler-user-workload-0 3/3 Running 0 32s
thanos-ruler-user-workload-1 3/3 Running 0 32s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME READY STATUS RESTARTS AGE
prometheus-operator-6844b4b99c-b57j9 2/2 Running 0 43s
prometheus-user-workload-0 5/5 Running 0 32s
prometheus-user-workload-1 5/5 Running 0 32s
thanos-ruler-user-workload-0 3/3 Running 0 32s
thanos-ruler-user-workload-1 3/3 Running 0 32s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get configmap user-workload-monitoring-config <span class="token parameter variable">-n</span> openshift-user-workload-monitoring</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Error from server (NotFound): configmaps "user-workload-monitoring-config" not found</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ConfigMap
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> user<span class="token punctuation"><span class="token punctuation">-</span></span>workload<span class="token punctuation"><span class="token punctuation">-</span></span>monitoring<span class="token punctuation"><span class="token punctuation">-</span></span>config
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>user<span class="token punctuation"><span class="token punctuation">-</span></span>workload<span class="token punctuation"><span class="token punctuation">-</span></span>monitoring
<span class="token key atrule"><span class="token key atrule">data</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">config.yaml</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">|</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> 2_configure_user_workload_monitoring.yaml</span></span>
<span class="token output">configmap/user-workload-monitoring-config created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get svc <span class="token parameter variable">-n</span> openshift-adp <span class="token parameter variable">-l</span> app.kubernetes.io/name<span class="token operator">=</span>velero</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
openshift-adp-velero-metrics-svc ClusterIP 172.30.38.244 <none> 8085/TCP 1h
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
openshift-adp-velero-metrics-svc ClusterIP 172.30.38.244 <none> 8085/TCP 1h</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: ServiceMonitor
metadata:
labels:
app: oadp-service-monitor
name: oadp-service-monitor
namespace: openshift-adp
spec:
endpoints:
- interval: 30s
path: /metrics
targetPort: 8085
scheme: http
selector:
matchLabels:
app.kubernetes.io/name: "velero"
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> monitoring.coreos.com/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ServiceMonitor
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>service<span class="token punctuation"><span class="token punctuation">-</span></span>monitor
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> oadp<span class="token punctuation"><span class="token punctuation">-</span></span>service<span class="token punctuation"><span class="token punctuation">-</span></span>monitor
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">endpoints</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">interval</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 30s
<span class="token key atrule"><span class="token key atrule">path</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /metrics
<span class="token key atrule"><span class="token key atrule">targetPort</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">8085</span></span>
<span class="token key atrule"><span class="token key atrule">scheme</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> http
<span class="token key atrule"><span class="token key atrule">selector</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">matchLabels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">app.kubernetes.io/name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"velero"</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> 3_create_oadp_service_monitor.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">servicemonitor.monitoring.coreos.com/oadp-service-monitor created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: PrometheusRule
metadata:
name: sample-oadp-alert
namespace: openshift-adp
spec:
groups:
- name: sample-oadp-backup-alert
rules:
- alert: OADPBackupFailing
annotations:
description: 'OADP had {{#123;{{#123;$value | humanize}} backup failures over the last 2 hours.'
summary: OADP has issues creating backups
expr: |
increase(velero_backup_failure_total{job="openshift-adp-velero-metrics-svc"}[2h]) > 0
for: 5m
labels:
severity: warning
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> monitoring.coreos.com/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PrometheusRule
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> sample<span class="token punctuation"><span class="token punctuation">-</span></span>oadp<span class="token punctuation"><span class="token punctuation">-</span></span>alert
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>adp
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">groups</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> sample<span class="token punctuation"><span class="token punctuation">-</span></span>oadp<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>alert
<span class="token key atrule"><span class="token key atrule">rules</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">alert</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> OADPBackupFailing
<span class="token key atrule"><span class="token key atrule">annotations</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">description</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">'OADP had {{#123;{{#123;$value | humanize}} backup failures over the last 2 hours.'</span></span>
<span class="token key atrule"><span class="token key atrule">summary</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> OADP has issues creating backups
<span class="token key atrule"><span class="token key atrule">expr</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token punctuation"><span class="token punctuation">|</span></span><span class="token scalar string"><span class="token scalar string">
increase(velero_backup_failure_total{job="openshift-adp-velero-metrics-svc"}[2h]) > 0</span></span>
<span class="token key atrule"><span class="token key atrule">for</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 5m
<span class="token key atrule"><span class="token key atrule">labels</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">severity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> warning</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> 4_create_oadp_alert_rule.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">prometheusrule.monitoring.coreos.com/sample-oadp-alert created</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc debug --as-root node/<span class="token operator"><</span>node_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.4# chroot /host</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">HTTP_PROXY</span><span class="token operator">=</span>http://<span class="token operator"><</span>your_proxy.example.com<span class="token operator">></span>:8080</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">HTTPS_PROXY</span><span class="token operator">=</span>https://<span class="token operator"><</span>your_proxy.example.com<span class="token operator">></span>:8080</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">export</span> <span class="token assign-left variable">NO_PROXY</span><span class="token operator">=</span><span class="token operator"><</span>example.com<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.4# /usr/local/bin/cluster-backup.sh /home/core/assets/backup</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
found latest kube-controller-manager: /etc/kubernetes/static-pod-resources/kube-controller-manager-pod-7
found latest kube-scheduler: /etc/kubernetes/static-pod-resources/kube-scheduler-pod-6
found latest etcd: /etc/kubernetes/static-pod-resources/etcd-pod-3
ede95fe6b88b87ba86a03c15e669fb4aa5bf0991c180d3c6895ce72eaade54a1
etcdctl version: 3.4.14
API version: 3.4
{"level":"info","ts":1624647639.0188997,"caller":"snapshot/v3_snapshot.go:119","msg":"created temporary db file","path":"/home/core/assets/backup/snapshot_2021-06-25_190035.db.part"}
{"level":"info","ts":"2021-06-25T19:00:39.030Z","caller":"clientv3/maintenance.go:200","msg":"opened snapshot stream; downloading"}
{"level":"info","ts":1624647639.0301006,"caller":"snapshot/v3_snapshot.go:127","msg":"fetching snapshot","endpoint":"https://10.0.0.5:2379"}
{"level":"info","ts":"2021-06-25T19:00:40.215Z","caller":"clientv3/maintenance.go:208","msg":"completed snapshot read; closing"}
{"level":"info","ts":1624647640.6032252,"caller":"snapshot/v3_snapshot.go:142","msg":"fetched snapshot","endpoint":"https://10.0.0.5:2379","size":"114 MB","took":1.584090459}
{"level":"info","ts":1624647640.6047094,"caller":"snapshot/v3_snapshot.go:152","msg":"saved","path":"/home/core/assets/backup/snapshot_2021-06-25_190035.db"}
Snapshot saved at /home/core/assets/backup/snapshot_2021-06-25_190035.db
{"hash":3866667823,"revision":31407,"totalKey":12828,"totalSize":114446336}
snapshot db and kube resources are successfully saved to /home/core/assets/backup
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">found latest kube-apiserver: /etc/kubernetes/static-pod-resources/kube-apiserver-pod-6
found latest kube-controller-manager: /etc/kubernetes/static-pod-resources/kube-controller-manager-pod-7
found latest kube-scheduler: /etc/kubernetes/static-pod-resources/kube-scheduler-pod-6
found latest etcd: /etc/kubernetes/static-pod-resources/etcd-pod-3
ede95fe6b88b87ba86a03c15e669fb4aa5bf0991c180d3c6895ce72eaade54a1
etcdctl version: 3.4.14
API version: 3.4
{"level":"info","ts":1624647639.0188997,"caller":"snapshot/v3_snapshot.go:119","msg":"created temporary db file","path":"/home/core/assets/backup/snapshot_2021-06-25_190035.db.part"}
{"level":"info","ts":"2021-06-25T19:00:39.030Z","caller":"clientv3/maintenance.go:200","msg":"opened snapshot stream; downloading"}
{"level":"info","ts":1624647639.0301006,"caller":"snapshot/v3_snapshot.go:127","msg":"fetching snapshot","endpoint":"https://10.0.0.5:2379"}
{"level":"info","ts":"2021-06-25T19:00:40.215Z","caller":"clientv3/maintenance.go:208","msg":"completed snapshot read; closing"}
{"level":"info","ts":1624647640.6032252,"caller":"snapshot/v3_snapshot.go:142","msg":"fetched snapshot","endpoint":"https://10.0.0.5:2379","size":"114 MB","took":1.584090459}
{"level":"info","ts":1624647640.6047094,"caller":"snapshot/v3_snapshot.go:152","msg":"saved","path":"/home/core/assets/backup/snapshot_2021-06-25_190035.db"}
Snapshot saved at /home/core/assets/backup/snapshot_2021-06-25_190035.db
{"hash":3866667823,"revision":31407,"totalKey":12828,"totalSize":114446336}
snapshot db and kube resources are successfully saved to /home/core/assets/backup</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: FeatureGate
metadata:
name: cluster
spec:
featureSet: TechPreviewNoUpgrade
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> config.openshift.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> FeatureGate
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> cluster
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">featureSet</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> TechPreviewNoUpgrade</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> enable-tech-preview-no-upgrade.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get crd <span class="token operator">|</span> <span class="token function">grep</span> backup</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcdbackups.operator.openshift.io 2023-10-25T13:32:04Z
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">backups.config.openshift.io 2023-10-25T13:32:43Z
etcdbackups.operator.openshift.io 2023-10-25T13:32:04Z</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: v1
metadata:
name: etcd-backup-pvc
namespace: openshift-etcd
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gi
volumeMode: Filesystem
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PersistentVolumeClaim
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pvc
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>etcd
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">accessModes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ReadWriteOnce
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200Gi </code></pre><rh-badge id="CO245-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">volumeMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Filesystem</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-backup-pvc.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pvc</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-backup-pvc Bound 51s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
etcd-backup-pvc Bound 51s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: EtcdBackup
metadata:
name: etcd-single-backup
namespace: openshift-etcd
spec:
pvcName: etcd-backup-pvc
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> EtcdBackup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>single<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>etcd
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">pvcName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pvc </code></pre><rh-badge id="CO246-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-single-backup.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: StorageClass
metadata:
name: etcd-backup-local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> storage.k8s.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> StorageClass
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>local<span class="token punctuation"><span class="token punctuation">-</span></span>storage
<span class="token key atrule"><span class="token key atrule">provisioner</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kubernetes.io/no<span class="token punctuation"><span class="token punctuation">-</span></span>provisioner
<span class="token key atrule"><span class="token key atrule">volumeBindingMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Immediate</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-backup-local-storage.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: PersistentVolume
metadata:
name: etcd-backup-pv-fs
spec:
capacity:
storage: 100Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: etcd-backup-local-storage
local:
path: /mnt
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <example_master_node>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PersistentVolume
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pv<span class="token punctuation"><span class="token punctuation">-</span></span>fs
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">capacity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 100Gi </code></pre><rh-badge id="CO247-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">volumeMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Filesystem
<span class="token key atrule"><span class="token key atrule">accessModes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ReadWriteOnce
<span class="token key atrule"><span class="token key atrule">persistentVolumeReclaimPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Retain
<span class="token key atrule"><span class="token key atrule">storageClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>local<span class="token punctuation"><span class="token punctuation">-</span></span>storage
<span class="token key atrule"><span class="token key atrule">local</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">path</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /mnt
<span class="token key atrule"><span class="token key atrule">nodeAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">required</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelectorTerms</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kubernetes.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <example_master_node<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO247-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get <span class="token function">pv</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-backup-pv-fs 100Gi RWO Retain Available etcd-backup-local-storage 10s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
etcd-backup-pv-fs 100Gi RWO Retain Available etcd-backup-local-storage 10s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: v1
metadata:
name: etcd-backup-pvc
namespace: openshift-etcd
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 10Gi
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PersistentVolumeClaim
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pvc
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>etcd
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">accessModes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ReadWriteOnce
<span class="token key atrule"><span class="token key atrule">volumeMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Filesystem
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10Gi </code></pre><rh-badge id="CO248-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-backup-pvc.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: EtcdBackup
metadata:
name: etcd-single-backup
namespace: openshift-etcd
spec:
pvcName: etcd-backup-pvc
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> operator.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> EtcdBackup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>single<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>etcd
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">pvcName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pvc </code></pre><rh-badge id="CO249-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-single-backup.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: v1
metadata:
name: etcd-backup-pvc
namespace: openshift-etcd
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 200Gi
volumeMode: Filesystem
storageClassName: etcd-backup-local-storage
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PersistentVolumeClaim
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pvc
<span class="token key atrule"><span class="token key atrule">namespace</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> openshift<span class="token punctuation"><span class="token punctuation">-</span></span>etcd
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">accessModes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ReadWriteOnce
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 200Gi </code></pre><rh-badge id="CO250-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">volumeMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Filesystem
<span class="token key atrule"><span class="token key atrule">storageClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>local<span class="token punctuation"><span class="token punctuation">-</span></span>storage</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-backup-pvc.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pvc</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-backup-pvc Bound 51s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
etcd-backup-pvc Bound 51s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: StorageClass
metadata:
name: etcd-backup-local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> storage.k8s.io/v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> StorageClass
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>local<span class="token punctuation"><span class="token punctuation">-</span></span>storage
<span class="token key atrule"><span class="token key atrule">provisioner</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kubernetes.io/no<span class="token punctuation"><span class="token punctuation">-</span></span>provisioner
<span class="token key atrule"><span class="token key atrule">volumeBindingMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Immediate</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-backup-local-storage.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: PersistentVolume
metadata:
name: etcd-backup-pv-fs
spec:
capacity:
storage: 100Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Delete
storageClassName: etcd-backup-local-storage
local:
path: /mnt/
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- <example_master_node>
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PersistentVolume
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pv<span class="token punctuation"><span class="token punctuation">-</span></span>fs
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">capacity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 100Gi </code></pre><rh-badge id="CO251-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">volumeMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Filesystem
<span class="token key atrule"><span class="token key atrule">accessModes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ReadWriteMany
<span class="token key atrule"><span class="token key atrule">persistentVolumeReclaimPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Delete
<span class="token key atrule"><span class="token key atrule">storageClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>local<span class="token punctuation"><span class="token punctuation">-</span></span>storage
<span class="token key atrule"><span class="token key atrule">local</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">path</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> /mnt/
<span class="token key atrule"><span class="token key atrule">nodeAffinity</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">required</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">nodeSelectorTerms</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">matchExpressions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">key</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> kubernetes.io/hostname
<span class="token key atrule"><span class="token key atrule">operator</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> In
<span class="token key atrule"><span class="token key atrule">values</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <example_master_node<span class="token punctuation"><span class="token punctuation">></span></span> </code></pre><rh-badge id="CO251-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get <span class="token function">pv</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-backup-pv-fs 100Gi RWX Delete Available etcd-backup-local-storage 10s
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
etcd-backup-pv-fs 100Gi RWX Delete Available etcd-backup-local-storage 10s</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: v1
metadata:
name: etcd-backup-pvc
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 10Gi
storageClassName: etcd-backup-local-storage
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> PersistentVolumeClaim
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> v1
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pvc
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">accessModes</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> ReadWriteMany
<span class="token key atrule"><span class="token key atrule">volumeMode</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Filesystem
<span class="token key atrule"><span class="token key atrule">resources</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">requests</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">storage</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10Gi </code></pre><rh-badge id="CO252-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">storageClassName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>local<span class="token punctuation"><span class="token punctuation">-</span></span>storage</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> etcd-backup-pvc.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Backup
metadata:
name: etcd-recurring-backup
spec:
etcd:
schedule: "20 4 * * *"
timeZone: "UTC"
pvcName: etcd-backup-pvc
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> config.openshift.io/v1alpha1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Backup
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>recurring<span class="token punctuation"><span class="token punctuation">-</span></span>backup
<span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">etcd</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">schedule</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"20 4 * * *"</span></span> </code></pre><rh-badge id="CO253-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">timeZone</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"UTC"</span></span>
<span class="token key atrule"><span class="token key atrule">pvcName</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> etcd<span class="token punctuation"><span class="token punctuation">-</span></span>backup<span class="token punctuation"><span class="token punctuation">-</span></span>pvc</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
etcd:
retentionPolicy:
retentionType: RetentionNumber
retentionNumber:
maxNumberOfBackups: 5
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">etcd</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">retentionPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">retentionType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RetentionNumber </code></pre><rh-badge id="CO254-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml">
<span class="token key atrule"><span class="token key atrule">retentionNumber</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">maxNumberOfBackups</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">5</span></span> </code></pre><rh-badge id="CO254-2" state="info">2</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
etcd:
retentionPolicy:
retentionType: RetentionSize
retentionSize:
maxSizeOfBackupsGb: 20
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">spec</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">etcd</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">retentionPolicy</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">retentionType</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> RetentionSize
<span class="token key atrule"><span class="token key atrule">retentionSize</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">maxSizeOfBackupsGb</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token number"><span class="token number">20</span></span> </code></pre><rh-badge id="CO255-1" state="info">1</rh-badge>
<pre class="language-yaml" tabindex="0"><code class="language-yaml"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc create <span class="token parameter variable">-f</span> etcd-recurring-backup.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get cronjob <span class="token parameter variable">-n</span> openshift-etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get etcd <span class="token parameter variable">-o</span><span class="token operator">=</span>jsonpath<span class="token operator">=</span><span class="token string">'{range .items[0].status.conditions[?(@.type=="EtcdMembersAvailable")]}{.message}{"\n"}{end}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">2 of 3 members are available, ip-10-0-131-183.ec2.internal is unhealthy</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-A</span> <span class="token parameter variable">-ojsonpath</span><span class="token operator">=</span><span class="token string">'{range .items[*]}{@.status.nodeRef.name}{"\t"}{@.status.providerStatus.instanceState}{"\n"}'</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-v</span> running</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">ip-10-0-131-183.ec2.internal stopped </span></code></pre><rh-badge id="CO256-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{range .items[*]}{"\n"}{.metadata.name}{"\t"}{range .spec.taints[*]}{.key}{" "}'</span> <span class="token operator">|</span> <span class="token function">grep</span> unreachable</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">ip-10-0-131-183.ec2.internal node-role.kubernetes.io/master node.kubernetes.io/unreachable node.kubernetes.io/unreachable </span></code></pre><rh-badge id="CO257-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes <span class="token parameter variable">-l</span> node-role.kubernetes.io/master <span class="token operator">|</span> <span class="token function">grep</span> <span class="token string">"NotReady"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">ip-10-0-131-183.ec2.internal NotReady master 122m v1.32.3 </span></code></pre><rh-badge id="CO258-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes <span class="token parameter variable">-l</span> node-role.kubernetes.io/master</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
ip-10-0-131-183.ec2.internal Ready master 6h13m v1.32.3
ip-10-0-164-97.ec2.internal Ready master 6h13m v1.32.3
ip-10-0-154-204.ec2.internal Ready master 6h13m v1.32.3
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME STATUS ROLES AGE VERSION
ip-10-0-131-183.ec2.internal Ready master 6h13m v1.32.3
ip-10-0-164-97.ec2.internal Ready master 6h13m v1.32.3
ip-10-0-154-204.ec2.internal Ready master 6h13m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-etcd get pods <span class="token parameter variable">-l</span> k8s-app<span class="token operator">=</span>etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 6h6m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 6h6m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-ip-10-0-131-183.ec2.internal 2/3 Error 7 6h9m </span></code></pre><rh-badge id="CO259-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 6h6m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 6h6m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-etcd get pods <span class="token parameter variable">-l</span> k8s-app<span class="token operator">=</span>etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 123m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 124m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-ip-10-0-131-183.ec2.internal 3/3 Running 0 123m
etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 123m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 124m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc rsh <span class="token parameter variable">-n</span> openshift-etcd etcd-ip-10-0-154-204.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 6fc1e7c9db35841d | started | ip-10-0-131-183.ec2.internal | https://10.0.131.183:2380 | https://10.0.131.183:2379 |
| 757b6793e2408b6c | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| ca8c2990a0aa29d1 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+------------------------------+---------------------------+---------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 6fc1e7c9db35841d | started | ip-10-0-131-183.ec2.internal | https://10.0.131.183:2380 | https://10.0.131.183:2379 |
| 757b6793e2408b6c | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| ca8c2990a0aa29d1 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member remove 6fc1e7c9db35841d</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Member 6fc1e7c9db35841d removed from cluster ead669ce1fbfb346</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 757b6793e2408b6c | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| ca8c2990a0aa29d1 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+------------------------------+---------------------------+---------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 757b6793e2408b6c | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| ca8c2990a0aa29d1 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": {"useUnsupportedUnsafeNonHANonProductionUnstableEtcd": true}}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete <span class="token function">node</span> <span class="token operator"><</span>node_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete <span class="token function">node</span> ip-10-0-131-183.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get secrets <span class="token parameter variable">-n</span> openshift-etcd <span class="token operator">|</span> <span class="token function">grep</span> ip-10-0-131-183.ec2.internal </span></span></code></pre><rh-badge id="CO260-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-serving-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
etcd-serving-metrics-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-peer-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
etcd-serving-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
etcd-serving-metrics-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret <span class="token parameter variable">-n</span> openshift-etcd etcd-peer-ip-10-0-131-183.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret <span class="token parameter variable">-n</span> openshift-etcd etcd-serving-ip-10-0-131-183.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret <span class="token parameter variable">-n</span> openshift-etcd etcd-serving-metrics-ip-10-0-131-183.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-machine-api get controlplanemachineset</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
clustername-8qw5l-master-0 Running m4.xlarge us-east-1 us-east-1a 3h37m ip-10-0-131-183.ec2.internal aws:///us-east-1a/i-0ec2782f8287dfb7e stopped
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
clustername-8qw5l-master-0 Running m4.xlarge us-east-1 us-east-1a 3h37m ip-10-0-131-183.ec2.internal aws:///us-east-1a/i-0ec2782f8287dfb7e stopped </span></code></pre><rh-badge id="CO261-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete machine <span class="token parameter variable">-n</span> openshift-machine-api clustername-8qw5l-master-0 </span></span></code></pre><rh-badge id="CO262-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-master-3 Provisioning m4.xlarge us-east-1 us-east-1a 85s ip-10-0-133-53.ec2.internal aws:///us-east-1a/i-015b0888fe17bc2c8 running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-master-3 Provisioning m4.xlarge us-east-1 us-east-1a 85s ip-10-0-133-53.ec2.internal aws:///us-east-1a/i-015b0888fe17bc2c8 running </span></code></pre><rh-badge id="CO263-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
clustername-8qw5l-master-0 Running m4.xlarge us-east-1 us-east-1a 3h37m ip-10-0-131-183.ec2.internal aws:///us-east-1a/i-0ec2782f8287dfb7e stopped
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
clustername-8qw5l-master-0 Running m4.xlarge us-east-1 us-east-1a 3h37m ip-10-0-131-183.ec2.internal aws:///us-east-1a/i-0ec2782f8287dfb7e stopped </span></code></pre><rh-badge id="CO264-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
-n openshift-machine-api \
-o yaml \
> new-master-machine.yaml
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machine clustername-8qw5l-master-0 <span class="token punctuation">\</span> </span></span></code></pre><rh-badge id="CO265-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output"> -n openshift-machine-api \
-o yaml \
> new-master-machine.yaml</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
addresses:
- address: 10.0.131.183
type: InternalIP
- address: ip-10-0-131-183.ec2.internal
type: InternalDNS
- address: ip-10-0-131-183.ec2.internal
type: Hostname
lastUpdated: "2020-04-20T17:44:29Z"
nodeRef:
kind: Node
name: ip-10-0-131-183.ec2.internal
uid: acca4411-af0d-4387-b73e-52b2484295ad
phase: Running
providerStatus:
apiVersion: awsproviderconfig.openshift.io/v1beta1
conditions:
- lastProbeTime: "2020-04-20T16:53:50Z"
lastTransitionTime: "2020-04-20T16:53:50Z"
message: machine successfully created
reason: MachineCreationSucceeded
status: "True"
type: MachineCreation
instanceId: i-0fdb85790d76d0c3f
instanceState: stopped
kind: AWSMachineProviderStatus
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">addresses</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">address</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> 10.0.131.183
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> InternalIP
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">address</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ip<span class="token punctuation"><span class="token punctuation">-</span></span>10<span class="token punctuation"><span class="token punctuation">-</span></span>0<span class="token punctuation"><span class="token punctuation">-</span></span>131<span class="token punctuation"><span class="token punctuation">-</span></span>183.ec2.internal
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> InternalDNS
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">address</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ip<span class="token punctuation"><span class="token punctuation">-</span></span>10<span class="token punctuation"><span class="token punctuation">-</span></span>0<span class="token punctuation"><span class="token punctuation">-</span></span>131<span class="token punctuation"><span class="token punctuation">-</span></span>183.ec2.internal
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Hostname
<span class="token key atrule"><span class="token key atrule">lastUpdated</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2020-04-20T17:44:29Z"</span></span>
<span class="token key atrule"><span class="token key atrule">nodeRef</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Node
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> ip<span class="token punctuation"><span class="token punctuation">-</span></span>10<span class="token punctuation"><span class="token punctuation">-</span></span>0<span class="token punctuation"><span class="token punctuation">-</span></span>131<span class="token punctuation"><span class="token punctuation">-</span></span>183.ec2.internal
<span class="token key atrule"><span class="token key atrule">uid</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> acca4411<span class="token punctuation"><span class="token punctuation">-</span></span>af0d<span class="token punctuation"><span class="token punctuation">-</span></span>4387<span class="token punctuation"><span class="token punctuation">-</span></span>b73e<span class="token punctuation"><span class="token punctuation">-</span></span>52b2484295ad
<span class="token key atrule"><span class="token key atrule">phase</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Running
<span class="token key atrule"><span class="token key atrule">providerStatus</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> awsproviderconfig.openshift.io/v1beta1
<span class="token key atrule"><span class="token key atrule">conditions</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> <span class="token key atrule"><span class="token key atrule">lastProbeTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2020-04-20T16:53:50Z"</span></span>
<span class="token key atrule"><span class="token key atrule">lastTransitionTime</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"2020-04-20T16:53:50Z"</span></span>
<span class="token key atrule"><span class="token key atrule">message</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> machine successfully created
<span class="token key atrule"><span class="token key atrule">reason</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> MachineCreationSucceeded
<span class="token key atrule"><span class="token key atrule">status</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> <span class="token string"><span class="token string">"True"</span></span>
<span class="token key atrule"><span class="token key atrule">type</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> MachineCreation
<span class="token key atrule"><span class="token key atrule">instanceId</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> i<span class="token punctuation"><span class="token punctuation">-</span></span>0fdb85790d76d0c3f
<span class="token key atrule"><span class="token key atrule">instanceState</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> stopped
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> AWSMachineProviderStatus</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
kind: Machine
metadata:
...
name: clustername-8qw5l-master-3
...
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">apiVersion</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> machine.openshift.io/v1beta1
<span class="token key atrule"><span class="token key atrule">kind</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> Machine
<span class="token key atrule"><span class="token key atrule">metadata</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span>
<span class="token key atrule"><span class="token key atrule">name</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> clustername<span class="token punctuation"><span class="token punctuation">-</span></span>8qw5l<span class="token punctuation"><span class="token punctuation">-</span></span>master<span class="token punctuation"><span class="token punctuation">-</span></span><span class="token number"><span class="token number">3</span></span>
<span class="token punctuation"><span class="token punctuation">...</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"> <span class="token key atrule"><span class="token key atrule">providerID</span></span><span class="token punctuation"><span class="token punctuation">:</span></span> aws<span class="token punctuation"><span class="token punctuation">:</span></span>///us<span class="token punctuation"><span class="token punctuation">-</span></span>east<span class="token punctuation"><span class="token punctuation">-</span></span>1a/i<span class="token punctuation"><span class="token punctuation">-</span></span>0fdb85790d76d0c3f</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete machine <span class="token parameter variable">-n</span> openshift-machine-api clustername-8qw5l-master-0 </span></span></code></pre><rh-badge id="CO266-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc apply <span class="token parameter variable">-f</span> new-master-machine.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-master-3 Provisioning m4.xlarge us-east-1 us-east-1a 85s ip-10-0-133-53.ec2.internal aws:///us-east-1a/i-015b0888fe17bc2c8 running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-154-204.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-164-97.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-master-3 Provisioning m4.xlarge us-east-1 us-east-1a 85s ip-10-0-133-53.ec2.internal aws:///us-east-1a/i-015b0888fe17bc2c8 running </span></code></pre><rh-badge id="CO267-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": null}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get etcd/cluster <span class="token parameter variable">-oyaml</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">EtcdCertSignerControllerDegraded: [Operation cannot be fulfilled on secrets "etcd-peer-sno-0": the object has been modified; please apply your changes to the latest version and try again, Operation cannot be fulfilled on secrets "etcd-serving-sno-0": the object has been modified; please apply your changes to the latest version and try again, Operation cannot be fulfilled on secrets "etcd-serving-metrics-sno-0": the object has been modified; please apply your changes to the latest version and try again]</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-etcd get pods <span class="token parameter variable">-l</span> k8s-app<span class="token operator">=</span>etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 123m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 124m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-ip-10-0-133-53.ec2.internal 3/3 Running 0 7m49s
etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 123m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 124m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd cluster <span class="token parameter variable">-p</span><span class="token operator">=</span><span class="token string">'{"spec": {"forceRedeploymentReason": "recovery-'</span>"<span class="token variable"><span class="token variable">$(</span> <span class="token function">date</span> --rfc-3339<span class="token operator">=</span>ns <span class="token variable">)</span></span><span class="token string">"'"</span><span class="token punctuation">}</span><span class="token punctuation">}</span>' <span class="token parameter variable">--type</span><span class="token operator">=</span>merge </span></span></code></pre><rh-badge id="CO268-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc rsh <span class="token parameter variable">-n</span> openshift-etcd etcd-ip-10-0-154-204.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 5eb0d6b8ca24730c | started | ip-10-0-133-53.ec2.internal | https://10.0.133.53:2380 | https://10.0.133.53:2379 |
| 757b6793e2408b6c | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| ca8c2990a0aa29d1 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+------------------------------+---------------------------+---------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 5eb0d6b8ca24730c | started | ip-10-0-133-53.ec2.internal | https://10.0.133.53:2380 | https://10.0.133.53:2379 |
| 757b6793e2408b6c | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| ca8c2990a0aa29d1 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc debug node/ip-10-0-131-183.ec2.internal </span></span></code></pre><rh-badge id="CO269-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# chroot /host</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# mkdir /var/lib/etcd-backup</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# mv /etc/kubernetes/manifests/etcd-pod.yaml /var/lib/etcd-backup/</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# mv /var/lib/etcd/ /tmp</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-etcd get pods <span class="token parameter variable">-l</span> k8s-app<span class="token operator">=</span>etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 6h6m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 6h6m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-ip-10-0-131-183.ec2.internal 2/3 Error 7 6h9m
etcd-ip-10-0-164-97.ec2.internal 3/3 Running 0 6h6m
etcd-ip-10-0-154-204.ec2.internal 3/3 Running 0 6h6m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc rsh <span class="token parameter variable">-n</span> openshift-etcd etcd-ip-10-0-154-204.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 62bcf33650a7170a | started | ip-10-0-131-183.ec2.internal | https://10.0.131.183:2380 | https://10.0.131.183:2379 |
| b78e2856655bc2eb | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| d022e10b498760d5 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+------------------------------+---------------------------+---------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| 62bcf33650a7170a | started | ip-10-0-131-183.ec2.internal | https://10.0.131.183:2380 | https://10.0.131.183:2379 |
| b78e2856655bc2eb | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| d022e10b498760d5 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member remove 62bcf33650a7170a</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Member 62bcf33650a7170a removed from cluster ead669ce1fbfb346</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| b78e2856655bc2eb | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| d022e10b498760d5 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+------------------------------+---------------------------+---------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS |
+------------------+---------+------------------------------+---------------------------+---------------------------+
| b78e2856655bc2eb | started | ip-10-0-164-97.ec2.internal | https://10.0.164.97:2380 | https://10.0.164.97:2379 |
| d022e10b498760d5 | started | ip-10-0-154-204.ec2.internal | https://10.0.154.204:2380 | https://10.0.154.204:2379 |
+------------------+---------+------------------------------+---------------------------+---------------------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": {"useUnsupportedUnsafeNonHANonProductionUnstableEtcd": true}}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get secrets <span class="token parameter variable">-n</span> openshift-etcd <span class="token operator">|</span> <span class="token function">grep</span> ip-10-0-131-183.ec2.internal </span></span></code></pre><rh-badge id="CO270-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-serving-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
etcd-serving-metrics-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-peer-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
etcd-serving-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m
etcd-serving-metrics-ip-10-0-131-183.ec2.internal kubernetes.io/tls 2 47m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret <span class="token parameter variable">-n</span> openshift-etcd etcd-peer-ip-10-0-131-183.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret <span class="token parameter variable">-n</span> openshift-etcd etcd-serving-ip-10-0-131-183.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret <span class="token parameter variable">-n</span> openshift-etcd etcd-serving-metrics-ip-10-0-131-183.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd cluster <span class="token parameter variable">-p</span><span class="token operator">=</span><span class="token string">'{"spec": {"forceRedeploymentReason": "single-master-recovery-'</span>"<span class="token variable"><span class="token variable">$(</span> <span class="token function">date</span> --rfc-3339<span class="token operator">=</span>ns <span class="token variable">)</span></span><span class="token string">"'"</span><span class="token punctuation">}</span><span class="token punctuation">}</span>' <span class="token parameter variable">--type</span><span class="token operator">=</span>merge </span></span></code></pre><rh-badge id="CO271-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": null}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get etcd/cluster <span class="token parameter variable">-oyaml</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">EtcdCertSignerControllerDegraded: [Operation cannot be fulfilled on secrets "etcd-peer-sno-0": the object has been modified; please apply your changes to the latest version and try again, Operation cannot be fulfilled on secrets "etcd-serving-sno-0": the object has been modified; please apply your changes to the latest version and try again, Operation cannot be fulfilled on secrets "etcd-serving-metrics-sno-0": the object has been modified; please apply your changes to the latest version and try again]</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc rsh <span class="token parameter variable">-n</span> openshift-etcd etcd-ip-10-0-154-204.ec2.internal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl endpoint health</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
https://10.0.154.204:2379 is healthy: successfully committed proposal: took = 16.698331ms
https://10.0.164.97:2379 is healthy: successfully committed proposal: took = 16.621645ms
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">https://10.0.131.183:2379 is healthy: successfully committed proposal: took = 16.671434ms
https://10.0.154.204:2379 is healthy: successfully committed proposal: took = 16.698331ms
https://10.0.164.97:2379 is healthy: successfully committed proposal: took = 16.621645ms</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-etcd get pods <span class="token parameter variable">-l</span> k8s-app<span class="token operator">=</span>etcd <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-openshift-control-plane-1 5/5 Running 0 3h54m 192.168.10.10 openshift-control-plane-1 <none> <none>
etcd-openshift-control-plane-2 5/5 Running 0 3h58m 192.168.10.11 openshift-control-plane-2 <none> <none>
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-openshift-control-plane-0 5/5 Running 11 3h56m 192.168.10.9 openshift-control-plane-0 <none> <none>
etcd-openshift-control-plane-1 5/5 Running 0 3h54m 192.168.10.10 openshift-control-plane-1 <none> <none>
etcd-openshift-control-plane-2 5/5 Running 0 3h58m 192.168.10.11 openshift-control-plane-2 <none> <none></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc rsh <span class="token parameter variable">-n</span> openshift-etcd etcd-openshift-control-plane-0</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+------------------+---------+--------------------+---------------------------+---------------------------+---------------------+
| 7a8197040a5126c8 | started | openshift-control-plane-2 | https://192.168.10.11:2380/ | https://192.168.10.11:2379/ | false |
| 8d5abe9669a39192 | started | openshift-control-plane-1 | https://192.168.10.10:2380/ | https://192.168.10.10:2379/ | false |
| cc3830a72fc357f9 | started | openshift-control-plane-0 | https://192.168.10.9:2380/ | https://192.168.10.9:2379/ | false |
+------------------+---------+--------------------+---------------------------+---------------------------+---------------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+--------------------+---------------------------+---------------------------+---------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+------------------+---------+--------------------+---------------------------+---------------------------+---------------------+
| 7a8197040a5126c8 | started | openshift-control-plane-2 | https://192.168.10.11:2380/ | https://192.168.10.11:2379/ | false |
| 8d5abe9669a39192 | started | openshift-control-plane-1 | https://192.168.10.10:2380/ | https://192.168.10.10:2379/ | false |
| cc3830a72fc357f9 | started | openshift-control-plane-0 | https://192.168.10.9:2380/ | https://192.168.10.9:2379/ | false |
+------------------+---------+--------------------+---------------------------+---------------------------+---------------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member remove 7a8197040a5126c8</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">Member 7a8197040a5126c8 removed from cluster b23536c33f2cdd1b</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+------------------+---------+--------------------+---------------------------+---------------------------+-------------------------+
| cc3830a72fc357f9 | started | openshift-control-plane-2 | https://192.168.10.11:2380/ | https://192.168.10.11:2379/ | false |
| 8d5abe9669a39192 | started | openshift-control-plane-1 | https://192.168.10.10:2380/ | https://192.168.10.10:2379/ | false |
+------------------+---------+--------------------+---------------------------+---------------------------+-------------------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+--------------------+---------------------------+---------------------------+-------------------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+------------------+---------+--------------------+---------------------------+---------------------------+-------------------------+
| cc3830a72fc357f9 | started | openshift-control-plane-2 | https://192.168.10.11:2380/ | https://192.168.10.11:2379/ | false |
| 8d5abe9669a39192 | started | openshift-control-plane-1 | https://192.168.10.10:2380/ | https://192.168.10.10:2379/ | false |
+------------------+---------+--------------------+---------------------------+---------------------------+-------------------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": {"useUnsupportedUnsafeNonHANonProductionUnstableEtcd": true}}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get secrets <span class="token parameter variable">-n</span> openshift-etcd <span class="token operator">|</span> <span class="token function">grep</span> openshift-control-plane-2</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-serving-metrics-openshift-control-plane-2 kubernetes.io/tls 2 134m
etcd-serving-openshift-control-plane-2 kubernetes.io/tls 2 134m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-peer-openshift-control-plane-2 kubernetes.io/tls 2 134m
etcd-serving-metrics-openshift-control-plane-2 kubernetes.io/tls 2 134m
etcd-serving-openshift-control-plane-2 kubernetes.io/tls 2 134m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret etcd-peer-openshift-control-plane-2 <span class="token parameter variable">-n</span> openshift-etcd</span></span>
<span class="token output">secret "etcd-peer-openshift-control-plane-2" deleted</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret etcd-serving-metrics-openshift-control-plane-2 <span class="token parameter variable">-n</span> openshift-etcd</span></span>
<span class="token output">secret "etcd-serving-metrics-openshift-control-plane-2" deleted</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete secret etcd-serving-openshift-control-plane-2 <span class="token parameter variable">-n</span> openshift-etcd</span></span>
<span class="token output">secret "etcd-serving-openshift-control-plane-2" deleted</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
examplecluster-control-plane-0 Running 3h11m openshift-control-plane-0 baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e externally provisioned
examplecluster-control-plane-1 Running 3h11m openshift-control-plane-1 baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1 externally provisioned
examplecluster-control-plane-2 Running 3h11m openshift-control-plane-2 baremetalhost:///openshift-machine-api/openshift-control-plane-2/3354bdac-61d8-410f-be5b-6a395b056135 externally provisioned
examplecluster-compute-0 Running 165m openshift-compute-0 baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f provisioned
examplecluster-compute-1 Running 165m openshift-compute-1 baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9 provisioned
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
examplecluster-control-plane-0 Running 3h11m openshift-control-plane-0 baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e externally provisioned </span></code></pre><rh-badge id="CO272-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">examplecluster-control-plane-1 Running 3h11m openshift-control-plane-1 baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1 externally provisioned
examplecluster-control-plane-2 Running 3h11m openshift-control-plane-2 baremetalhost:///openshift-machine-api/openshift-control-plane-2/3354bdac-61d8-410f-be5b-6a395b056135 externally provisioned
examplecluster-compute-0 Running 165m openshift-compute-0 baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f provisioned
examplecluster-compute-1 Running 165m openshift-compute-1 baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9 provisioned</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get clusteroperator baremetal</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
baremetal 4.19.0 True False False 3d15h
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
baremetal 4.19.0 True False False 3d15h</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete bmh openshift-control-plane-2 <span class="token parameter variable">-n</span> openshift-machine-api</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">baremetalhost.metal3.io "openshift-control-plane-2" deleted</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete machine <span class="token parameter variable">-n</span> openshift-machine-api examplecluster-control-plane-2</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc edit machine <span class="token parameter variable">-n</span> openshift-machine-api examplecluster-control-plane-2</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
- machine.machine.openshift.io
<pre class="language-yaml" tabindex="-1"><code class="language-yaml"><span class="token key atrule"><span class="token key atrule">finalizers</span></span><span class="token punctuation"><span class="token punctuation">:</span></span>
<span class="token punctuation"><span class="token punctuation">-</span></span> machine.machine.openshift.io</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">machine.machine.openshift.io/examplecluster-control-plane-2 edited</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
examplecluster-control-plane-0 Running 3h11m openshift-control-plane-0 baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e externally provisioned
examplecluster-control-plane-1 Running 3h11m openshift-control-plane-1 baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1 externally provisioned
examplecluster-compute-0 Running 165m openshift-compute-0 baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f provisioned
examplecluster-compute-1 Running 165m openshift-compute-1 baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9 provisioned
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
examplecluster-control-plane-0 Running 3h11m openshift-control-plane-0 baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e externally provisioned
examplecluster-control-plane-1 Running 3h11m openshift-control-plane-1 baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1 externally provisioned
examplecluster-compute-0 Running 165m openshift-compute-0 baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f provisioned
examplecluster-compute-1 Running 165m openshift-compute-1 baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9 provisioned</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span>
<span class="token output">NAME STATUS ROLES AGE VERSION
openshift-control-plane-0 Ready master 3h24m v1.32.3
openshift-control-plane-1 Ready master 3h24m v1.32.3
openshift-compute-0 Ready worker 176m v1.32.3
openshift-compute-1 Ready worker 176m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
apiVersion: v1
kind: Secret
metadata:
name: openshift-control-plane-2-bmc-secret
namespace: openshift-machine-api
data:
password: <password>
username: <username>
type: Opaque
---
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: openshift-control-plane-2
namespace: openshift-machine-api
spec:
automatedCleaningMode: disabled
bmc:
address: redfish://10.46.61.18:443/redfish/v1/Systems/1
credentialsName: openshift-control-plane-2-bmc-secret
disableCertificateVerification: true
bootMACAddress: 48:df:37:b0:8a:a0
bootMode: UEFI
externallyProvisioned: false
online: true
rootDeviceHints:
deviceName: /dev/disk/by-id/scsi-<serial_number>
userData:
name: master-user-data-managed
namespace: openshift-machine-api
EOF
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cat</span> <span class="token operator"><<</span><span class="token string">EOF<span class="token bash punctuation"> <span class="token operator">|</span> oc apply <span class="token parameter variable">-f</span> -</span>
apiVersion: v1
kind: Secret
metadata:
name: openshift-control-plane-2-bmc-secret
namespace: openshift-machine-api
data:
password: <password>
username: <username>
type: Opaque
---
apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
name: openshift-control-plane-2
namespace: openshift-machine-api
spec:
automatedCleaningMode: disabled
bmc:
address: redfish://10.46.61.18:443/redfish/v1/Systems/1
credentialsName: openshift-control-plane-2-bmc-secret
disableCertificateVerification: true
bootMACAddress: 48:df:37:b0:8a:a0
bootMode: UEFI
externallyProvisioned: false
online: true
rootDeviceHints:
deviceName: /dev/disk/by-id/scsi-<serial_number>
userData:
name: master-user-data-managed
namespace: openshift-machine-api
EOF</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get bmh <span class="token parameter variable">-n</span> openshift-machine-api</span></span>
<span class="token output">NAME STATE CONSUMER ONLINE ERROR AGE
openshift-control-plane-0 externally provisioned examplecluster-control-plane-0 true 4h48m
openshift-control-plane-1 externally provisioned examplecluster-control-plane-1 true 4h48m
openshift-control-plane-2 available examplecluster-control-plane-3 true 47m
openshift-compute-0 provisioned examplecluster-compute-0 true 4h48m
openshift-compute-1 provisioned examplecluster-compute-1 true 4h48m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
examplecluster-control-plane-0 Running 3h11m openshift-control-plane-0 baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e externally provisioned
examplecluster-control-plane-1 Running 3h11m openshift-control-plane-1 baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1 externally provisioned
examplecluster-control-plane-2 Running 3h11m openshift-control-plane-2 baremetalhost:///openshift-machine-api/openshift-control-plane-2/3354bdac-61d8-410f-be5b-6a395b056135 externally provisioned
examplecluster-compute-0 Running 165m openshift-compute-0 baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f provisioned
examplecluster-compute-1 Running 165m openshift-compute-1 baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9 provisioned
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
examplecluster-control-plane-0 Running 3h11m openshift-control-plane-0 baremetalhost:///openshift-machine-api/openshift-control-plane-0/da1ebe11-3ff2-41c5-b099-0aa41222964e externally provisioned </span></code></pre><rh-badge id="CO273-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">examplecluster-control-plane-1 Running 3h11m openshift-control-plane-1 baremetalhost:///openshift-machine-api/openshift-control-plane-1/d9f9acbc-329c-475e-8d81-03b20280a3e1 externally provisioned
examplecluster-control-plane-2 Running 3h11m openshift-control-plane-2 baremetalhost:///openshift-machine-api/openshift-control-plane-2/3354bdac-61d8-410f-be5b-6a395b056135 externally provisioned
examplecluster-compute-0 Running 165m openshift-compute-0 baremetalhost:///openshift-machine-api/openshift-compute-0/3d685b81-7410-4bb3-80ec-13a31858241f provisioned
examplecluster-compute-1 Running 165m openshift-compute-1 baremetalhost:///openshift-machine-api/openshift-compute-1/0fdae6eb-2066-4241-91dc-e7ea72ab13b9 provisioned</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get bmh <span class="token parameter variable">-n</span> openshift-machine-api</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get bmh <span class="token parameter variable">-n</span> openshift-machine-api</span></span>
<span class="token output">NAME STATE CONSUMER ONLINE ERROR AGE
openshift-control-plane-0 externally provisioned examplecluster-control-plane-0 true 4h48m
openshift-control-plane-1 externally provisioned examplecluster-control-plane-1 true 4h48m
openshift-control-plane-2 provisioned examplecluster-control-plane-3 true 47m
openshift-compute-0 provisioned examplecluster-compute-0 true 4h48m
openshift-compute-1 provisioned examplecluster-compute-1 true 4h48m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span>
<span class="token output">NAME STATUS ROLES AGE VERSION
openshift-control-plane-0 Ready master 4h26m v1.32.3
openshift-control-plane-1 Ready master 4h26m v1.32.3
openshift-control-plane-2 Ready master 12m v1.32.3
openshift-compute-0 Ready worker 3h58m v1.32.3
openshift-compute-1 Ready worker 3h58m v1.32.3</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": null}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get etcd/cluster <span class="token parameter variable">-oyaml</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">EtcdCertSignerControllerDegraded: [Operation cannot be fulfilled on secrets "etcd-peer-sno-0": the object has been modified; please apply your changes to the latest version and try again, Operation cannot be fulfilled on secrets "etcd-serving-sno-0": the object has been modified; please apply your changes to the latest version and try again, Operation cannot be fulfilled on secrets "etcd-serving-metrics-sno-0": the object has been modified; please apply your changes to the latest version and try again]</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token parameter variable">-n</span> openshift-etcd get pods <span class="token parameter variable">-l</span> k8s-app<span class="token operator">=</span>etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
etcd-openshift-control-plane-1 5/5 Running 0 107m
etcd-openshift-control-plane-2 5/5 Running 0 103m
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">etcd-openshift-control-plane-0 5/5 Running 0 105m
etcd-openshift-control-plane-1 5/5 Running 0 107m
etcd-openshift-control-plane-2 5/5 Running 0 103m</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd cluster <span class="token parameter variable">-p</span><span class="token operator">=</span><span class="token string">'{"spec": {"forceRedeploymentReason": "recovery-'</span>"<span class="token variable"><span class="token variable">$(</span> <span class="token function">date</span> --rfc-3339<span class="token operator">=</span>ns <span class="token variable">)</span></span><span class="token string">"'"</span><span class="token punctuation">}</span><span class="token punctuation">}</span>' <span class="token parameter variable">--type</span><span class="token operator">=</span>merge </span></span></code></pre><rh-badge id="CO274-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc rsh <span class="token parameter variable">-n</span> openshift-etcd etcd-openshift-control-plane-0</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">sh-4.2# etcdctl member list -w table</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+------------------+---------+--------------------+---------------------------+---------------------------+-----------------+
| 7a8197040a5126c8 | started | openshift-control-plane-2 | https://192.168.10.11:2380 | https://192.168.10.11:2379 | false |
| 8d5abe9669a39192 | started | openshift-control-plane-1 | https://192.168.10.10:2380 | https://192.168.10.10:2379 | false |
| cc3830a72fc357f9 | started | openshift-control-plane-0 | https://192.168.10.9:2380 | https://192.168.10.9:2379 | false |
+------------------+---------+--------------------+---------------------------+---------------------------+-----------------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+------------------+---------+--------------------+---------------------------+---------------------------+-----------------+
| ID | STATUS | NAME | PEER ADDRS | CLIENT ADDRS | IS LEARNER |
+------------------+---------+--------------------+---------------------------+---------------------------+-----------------+
| 7a8197040a5126c8 | started | openshift-control-plane-2 | https://192.168.10.11:2380 | https://192.168.10.11:2379 | false |
| 8d5abe9669a39192 | started | openshift-control-plane-1 | https://192.168.10.10:2380 | https://192.168.10.10:2379 | false |
| cc3830a72fc357f9 | started | openshift-control-plane-0 | https://192.168.10.9:2380 | https://192.168.10.9:2379 | false |
+------------------+---------+--------------------+---------------------------+---------------------------+-----------------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">#</span> <span class="token bash language-bash">etcdctl endpoint health <span class="token parameter variable">--cluster</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
https://192.168.10.9:2379 is healthy: successfully committed proposal: took = 11.559829ms
https://192.168.10.11:2379 is healthy: successfully committed proposal: took = 11.665203ms
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">https://192.168.10.10:2379 is healthy: successfully committed proposal: took = 8.973065ms
https://192.168.10.9:2379 is healthy: successfully committed proposal: took = 11.559829ms
https://192.168.10.11:2379 is healthy: successfully committed proposal: took = 11.665203ms</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get etcd <span class="token parameter variable">-o</span><span class="token operator">=</span>jsonpath<span class="token operator">=</span><span class="token string">'{range.items[0].status.conditions[?(@.type=="NodeInstallerProgressing")]}{.reason}{"\n"}{.message}{"\n"}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">AllNodesAtLatestRevision</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> /usr/local/bin/disable-etcd.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token function">rm</span> <span class="token parameter variable">-rf</span> /var/lib/etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> systemctl disable kubelet.service</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> systemctl <span class="token builtin class-name">enable</span> kubelet.service</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pods <span class="token parameter variable">-n</span> openshift-etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get pods <span class="token parameter variable">-n</span> openshift-etcd <span class="token parameter variable">-l</span> <span class="token assign-left variable">app</span><span class="token operator">=</span>etcd --field-selector<span class="token operator">=</span><span class="token string">"status.phase==Running"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc <span class="token builtin class-name">exec</span> <span class="token parameter variable">-n</span> openshift-etcd <span class="token operator"><</span>etcd-pod<span class="token operator">></span> <span class="token parameter variable">-c</span> etcdctl -- etcdctl endpoint status <span class="token parameter variable">-w</span> table</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get nodes <span class="token parameter variable">-o</span> <span class="token assign-left variable">jsonpath</span><span class="token operator">=</span><span class="token string">'{range .items[*]}[{.metadata.name},{.status.addresses[?(@.type=="InternalIP")].address}]{end}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token parameter variable">-E</span> /usr/local/bin/quorum-restore.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
clustername-8qw5l-master-0 Running m4.xlarge us-east-1 us-east-1a 3h37m ip-10-0-131-183.ec2.internal aws:///us-east-1a/i-0ec2782f8287dfb7e stopped
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-143-125.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-154-194.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
clustername-8qw5l-master-0 Running m4.xlarge us-east-1 us-east-1a 3h37m ip-10-0-131-183.ec2.internal aws:///us-east-1a/i-0ec2782f8287dfb7e stopped </span></code></pre><rh-badge id="CO275-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-143-125.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-154-194.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc delete machine <span class="token parameter variable">-n</span> openshift-machine-api clustername-8qw5l-master-0 </span></span></code></pre><rh-badge id="CO276-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get machines <span class="token parameter variable">-n</span> openshift-machine-api <span class="token parameter variable">-o</span> wide</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-143-125.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-154-194.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-master-3 Provisioning m4.xlarge us-east-1 us-east-1a 85s ip-10-0-173-171.ec2.internal aws:///us-east-1a/i-015b0888fe17bc2c8 running
clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">NAME PHASE TYPE REGION ZONE AGE NODE PROVIDERID STATE
clustername-8qw5l-master-1 Running m4.xlarge us-east-1 us-east-1b 3h37m ip-10-0-143-125.ec2.internal aws:///us-east-1b/i-096c349b700a19631 running
clustername-8qw5l-master-2 Running m4.xlarge us-east-1 us-east-1c 3h37m ip-10-0-154-194.ec2.internal aws:///us-east-1c/i-02626f1dba9ed5bba running
clustername-8qw5l-master-3 Provisioning m4.xlarge us-east-1 us-east-1a 85s ip-10-0-173-171.ec2.internal aws:///us-east-1a/i-015b0888fe17bc2c8 running </span></code></pre><rh-badge id="CO277-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session">
<span class="token output">clustername-8qw5l-worker-us-east-1a-wbtgd Running m4.large us-east-1 us-east-1a 3h28m ip-10-0-129-226.ec2.internal aws:///us-east-1a/i-010ef6279b4662ced running
clustername-8qw5l-worker-us-east-1b-lrdxb Running m4.large us-east-1 us-east-1b 3h28m ip-10-0-144-248.ec2.internal aws:///us-east-1b/i-0cb45ac45a166173b running
clustername-8qw5l-worker-us-east-1c-pkg26 Running m4.large us-east-1 us-east-1c 3h28m ip-10-0-170-181.ec2.internal aws:///us-east-1c/i-06861c00007751b0a running</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm wait-for-stable-cluster</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd cluster <span class="token parameter variable">-p</span><span class="token operator">=</span><span class="token string">'{"spec": {"forceRedeploymentReason": "recovery-'</span>"<span class="token variable"><span class="token variable">$(</span><span class="token function">date</span> --rfc-3339<span class="token operator">=</span>ns <span class="token variable">)</span></span><span class="token string">"'"</span><span class="token punctuation">}</span><span class="token punctuation">}</span>' <span class="token parameter variable">--type</span><span class="token operator">=</span>merge</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cp</span> <span class="token operator"><</span>etcd_backup_directory<span class="token operator">></span> /home/core</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token parameter variable">-E</span> /usr/local/bin/cluster-restore.sh /home/core/<span class="token operator"><</span>etcd_backup_directory<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm wait-for-stable-cluster</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token parameter variable">-E</span> /usr/local/bin/disable-etcd.sh</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">sudo</span> <span class="token parameter variable">-E</span> /usr/local/bin/cluster-restore.sh /home/core/<span class="token operator"><</span>etcd-backup-directory<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": {"useUnsupportedUnsafeNonHANonProductionUnstableEtcd": true}}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm wait-for-stable-cluster</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd/cluster <span class="token parameter variable">--type</span><span class="token operator">=</span>merge <span class="token parameter variable">-p</span> <span class="token string">'{"spec": {"unsupportedConfigOverrides": null}}'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc patch etcd cluster <span class="token parameter variable">-p</span><span class="token operator">=</span><span class="token string">'{"spec": {"forceRedeploymentReason": "recovery-'</span>"<span class="token variable"><span class="token variable">$(</span><span class="token function">date</span> --rfc-3339<span class="token operator">=</span>ns <span class="token variable">)</span></span><span class="token string">"'"</span><span class="token punctuation">}</span><span class="token punctuation">}</span>' <span class="token parameter variable">--type</span><span class="token operator">=</span>merge</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
mv /etc/kubernetes/manifests/kube-apiserver-pod.yaml /root/manifests-backup/
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mkdir</span> <span class="token parameter variable">-p</span> /root/manifests-backup</span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /etc/kubernetes/manifests/kube-apiserver-pod.yaml /root/manifests-backup/</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> kube-apiserver <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-E</span> <span class="token parameter variable">-v</span> <span class="token string">"operator|guard"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl stop <span class="token operator"><</span>container_id<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /etc/kubernetes/manifests/kube-controller-manager-pod.yaml /root/manifests-backup/</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> kube-controller-manager <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-E</span> <span class="token parameter variable">-v</span> <span class="token string">"operator|guard"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /etc/kubernetes/manifests/kube-scheduler-pod.yaml /root/manifests-backup/</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> kube-scheduler <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-E</span> <span class="token parameter variable">-v</span> <span class="token string">"operator|guard"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /etc/kubernetes/manifests/etcd-pod.yaml /root/manifests-backup/</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> etcd <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-E</span> <span class="token parameter variable">-v</span> <span class="token string">"operator|guard"</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
mv /var/lib/etcd/member /home/core/assets/old-member-data
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mkdir</span> /home/core/assets/old-member-data</span></span>
<span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /var/lib/etcd/member /home/core/assets/old-member-data</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
cat $RESTORE_ETCD_POD_YAML | \
grep -A 1 $(cat $RESTORE_ETCD_POD_YAML | grep 'export ETCD_NAME' | grep -Eo 'NODE_.+_ETCD_NAME') | \
grep -Po '(?<=value: ").+(?=")'
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">RESTORE_ETCD_POD_YAML="/etc/kubernetes/static-pod-resources/etcd-certs/configmaps/restore-etcd-pod/pod.yaml"
cat $RESTORE_ETCD_POD_YAML | \
grep -A 1 $(cat $RESTORE_ETCD_POD_YAML | grep 'export ETCD_NAME' | grep -Eo 'NODE_.+_ETCD_NAME') | \
grep -Po '(?<=value: ").+(?=")'</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">uuidgen</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="yaml" line-numbers="hidden" actions="copy">
<pre class="language-yaml" tabindex="-1"><code class="language-yaml">https<span class="token punctuation"><span class="token punctuation">:</span></span>//<IP_CURRENT_HOST<span class="token punctuation"><span class="token punctuation">></span></span><span class="token punctuation"><span class="token punctuation">:</span></span><span class="token number"><span class="token number">2380</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
sed -E 's/[.-]/_/g' | \
xargs -I {} grep {} /etc/kubernetes/static-pod-resources/etcd-certs/configmaps/etcd-scripts/etcd.env | \
grep "IP" | grep -Po '(?<=").+(?=")'
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token builtin class-name">echo</span> <span class="token operator"><</span>ETCD_NAME<span class="token operator">></span> <span class="token operator">|</span> <span class="token punctuation">\</span>
<span class="token function">sed</span> <span class="token parameter variable">-E</span> <span class="token string">'s/[.-]/_/g'</span> <span class="token operator">|</span> <span class="token punctuation">\</span>
<span class="token function">xargs</span> <span class="token parameter variable">-I</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> <span class="token function">grep</span> <span class="token punctuation">{</span><span class="token punctuation">}</span> /etc/kubernetes/static-pod-resources/etcd-certs/configmaps/etcd-scripts/etcd.env <span class="token operator">|</span> <span class="token punctuation">\</span>
<span class="token function">grep</span> <span class="token string">"IP"</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-Po</span> <span class="token string">'(?<=").+(?=")'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output"><ETCD_NAME_0>=<ETCD_NODE_PEER_URL_0>,<ETCD_NAME_1>=<ETCD_NODE_PEER_URL_1>,<ETCD_NAME_2>=<ETCD_NODE_PEER_URL_2> </span></code></pre><rh-badge id="CO278-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">cp</span> /home/core/assets/backup/<span class="token operator"><</span>snapshot_yyyy-mm-dd_hhmmss<span class="token operator">></span>.db /var/lib/etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">jq <span class="token parameter variable">-r</span> <span class="token string">'.spec.containers[]|select(.name=="etcdctl")|.image'</span> /root/manifests-backup/etcd-pod.yaml</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">podman</span> run <span class="token parameter variable">--rm</span> <span class="token parameter variable">-it</span> <span class="token parameter variable">--entrypoint</span><span class="token operator">=</span><span class="token string">"/bin/bash"</span> <span class="token parameter variable">-v</span> /var/lib/etcd:/var/lib/etcd:z <span class="token operator"><</span>image-hash<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">etcdctl version</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
--name "<ETCD_NAME>" \
--initial-cluster="<ETCD_INITIAL_CLUSTER>" \
--initial-cluster-token "openshift-etcd-<UUID>" \
--initial-advertise-peer-urls "<ETCD_NODE_PEER_URL>" \
--data-dir="/var/lib/etcd/restore-<UUID>" \
--skip-hash-check=true
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token assign-left variable">ETCDCTL_API</span><span class="token operator">=</span><span class="token number">3</span> /usr/bin/etcdctl snapshot restore /var/lib/etcd/<span class="token operator"><</span>snapshot_yyyy-mm-dd_hhmmss<span class="token operator">></span>.db <span class="token punctuation">\</span>
<span class="token parameter variable">--name</span> <span class="token string">"<ETCD_NAME>"</span> <span class="token punctuation">\</span>
--initial-cluster<span class="token operator">=</span><span class="token string">"<ETCD_INITIAL_CLUSTER>"</span> <span class="token punctuation">\</span>
--initial-cluster-token <span class="token string">"openshift-etcd-<UUID>"</span> <span class="token punctuation">\</span>
--initial-advertise-peer-urls <span class="token string">"<ETCD_NODE_PEER_URL>"</span> <span class="token punctuation">\</span>
--data-dir<span class="token operator">=</span><span class="token string">"/var/lib/etcd/restore-<UUID>"</span> <span class="token punctuation">\</span>
--skip-hash-check<span class="token operator">=</span>true</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" actions="copy">
2022-06-28T19:52:43Z info membership/cluster.go:421 added member {"cluster-id": "c5996b7c11c30d6b", "local-member-id": "0", "added-peer-id": "1f63d01b31bb9a9e", "added-peer-peer-urls": ["https://10.0.90.221:2380"], "added-peer-is-learner": false}
2022-06-28T19:52:43Z info membership/cluster.go:421 added member {"cluster-id": "c5996b7c11c30d6b", "local-member-id": "0", "added-peer-id": "fdc2725b3b70127c", "added-peer-peer-urls": ["https://10.0.94.214:2380"], "added-peer-is-learner": false}
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">2022-06-28T19:52:43Z info membership/cluster.go:421 added member {"cluster-id": "c5996b7c11c30d6b", "local-member-id": "0", "added-peer-id": "56cd73b614699e7", "added-peer-peer-urls": ["https://10.0.91.5:2380"], "added-peer-is-learner": false}
2022-06-28T19:52:43Z info membership/cluster.go:421 added member {"cluster-id": "c5996b7c11c30d6b", "local-member-id": "0", "added-peer-id": "1f63d01b31bb9a9e", "added-peer-peer-urls": ["https://10.0.90.221:2380"], "added-peer-is-learner": false}
2022-06-28T19:52:43Z info membership/cluster.go:421 added member {"cluster-id": "c5996b7c11c30d6b", "local-member-id": "0", "added-peer-id": "fdc2725b3b70127c", "added-peer-peer-urls": ["https://10.0.94.214:2380"], "added-peer-is-learner": false}</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /var/lib/etcd/restore-<span class="token operator"><</span>UUID<span class="token operator">></span>/member /var/lib/etcd</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">restorecon <span class="token parameter variable">-vR</span> /var/lib/etcd/</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">rm</span> <span class="token parameter variable">-rf</span> /var/lib/etcd/restore-<span class="token operator"><</span>UUID<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">rm</span> /var/lib/etcd/<span class="token operator"><</span>snapshot_yyyy-mm-dd_hhmmss<span class="token operator">></span>.db</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /tmp/etcd-pod.yaml /etc/kubernetes/manifests</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> etcd <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-v</span> operator</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
e1646b15207c6 9d28c15860870e85c91d0e36b45f7a6edd3da757b113ec4abb4507df88b17f06 About a minute ago Running etcd-metrics 0 fe4b9c3d6483c
08ba29b1f58a7 9d28c15860870e85c91d0e36b45f7a6edd3da757b113ec4abb4507df88b17f06 About a minute ago Running etcd 0 fe4b9c3d6483c
2ddc9eda16f53 9d28c15860870e85c91d0e36b45f7a6edd3da757b113ec4abb4507df88b17f06 About a minute ago Running etcdctl
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">38c814767ad983 f79db5a8799fd2c08960ad9ee22f784b9fbe23babe008e8a3bf68323f004c840 28 seconds ago Running etcd-health-monitor 2 fe4b9c3d6483c
e1646b15207c6 9d28c15860870e85c91d0e36b45f7a6edd3da757b113ec4abb4507df88b17f06 About a minute ago Running etcd-metrics 0 fe4b9c3d6483c
08ba29b1f58a7 9d28c15860870e85c91d0e36b45f7a6edd3da757b113ec4abb4507df88b17f06 About a minute ago Running etcd 0 fe4b9c3d6483c
2ddc9eda16f53 9d28c15860870e85c91d0e36b45f7a6edd3da757b113ec4abb4507df88b17f06 About a minute ago Running etcdctl</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token builtin class-name">exec</span> <span class="token parameter variable">-it</span> <span class="token variable"><span class="token variable">$(</span>crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> etcdctl <span class="token operator">|</span> <span class="token function">awk</span> <span class="token string">'{print $1}'</span><span class="token variable">)</span></span> etcdctl endpoint status <span class="token parameter variable">-w</span> table</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+--------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| https://10.0.89.133:2379 | 682e4a83a0cec6c0 | 3.5.0 | 67 MB | true | false | 2 | 218 | 218 | |
| https://10.0.92.74:2379 | 450bcf6999538512 | 3.5.0 | 67 MB | false | false | 2 | 218 | 218 | |
| https://10.0.93.129:2379 | 358efa9c1d91c3d6 | 3.5.0 | 67 MB | false | false | 2 | 218 | 218 | |
+--------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">+--------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+--------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| https://10.0.89.133:2379 | 682e4a83a0cec6c0 | 3.5.0 | 67 MB | true | false | 2 | 218 | 218 | |
| https://10.0.92.74:2379 | 450bcf6999538512 | 3.5.0 | 67 MB | false | false | 2 | 218 | 218 | |
| https://10.0.93.129:2379 | 358efa9c1d91c3d6 | 3.5.0 | 67 MB | false | false | 2 | 218 | 218 | |
+--------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /root/manifests-backup/kube-apiserver-pod.yaml /etc/kubernetes/manifests</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> kube-apiserver <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-v</span> operator</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">systemctl restart kubelet</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash"><span class="token function">mv</span> /root/manifests-backup/kube-* /etc/kubernetes/manifests/</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">crictl <span class="token function">ps</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-E</span> <span class="token string">'kube-(apiserver|scheduler|controller-manager)'</span> <span class="token operator">|</span> <span class="token function">grep</span> <span class="token parameter variable">-v</span> <span class="token parameter variable">-E</span> <span class="token string">'operator|guard'</span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
do
oc debug node/${NODE} -- chroot /host /bin/bash -c 'rm -f /var/lib/ovn-ic/etc/ovn*.db && systemctl restart ovs-vswitchd ovsdb-server'
oc -n openshift-ovn-kubernetes delete pod -l app=ovnkube-node --field-selector=spec.nodeName=${NODE} --wait
oc -n openshift-ovn-kubernetes wait pod -l app=ovnkube-node --field-selector=spec.nodeName=${NODE} --for condition=ContainersReady --timeout=600s
done
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token output">for NODE in $(oc get node -o name | sed 's:node/::g')
do
oc debug node/${NODE} -- chroot /host /bin/bash -c 'rm -f /var/lib/ovn-ic/etc/ovn*.db && systemctl restart ovs-vswitchd ovsdb-server'
oc -n openshift-ovn-kubernetes delete pod -l app=ovnkube-node --field-selector=spec.nodeName=${NODE} --wait
oc -n openshift-ovn-kubernetes wait pod -l app=ovnkube-node --field-selector=spec.nodeName=${NODE} --for condition=ContainersReady --timeout=600s
done</span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc get csr</span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="plaintext" line-numbers="hidden" data-expandable="true" style="overflow: hidden;" actions="copy">
csr-2s94x 8m3s kubernetes.io/kubelet-serving system:node:<node_name> Pending
csr-4bd6t 8m3s kubernetes.io/kubelet-serving system:node:<node_name> Pending
csr-4hl85 13m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending
csr-zhhhp 3m8s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending
...
<pre class="language-plaintext" tabindex="-1"><code class="language-plaintext">NAME AGE SIGNERNAME REQUESTOR CONDITION
csr-2s94x 8m3s kubernetes.io/kubelet-serving system:node:<node_name> Pending </code></pre><rh-badge id="CO279-1" state="info">1</rh-badge>
<pre class="language-plaintext" tabindex="0"><code class="language-plaintext">
csr-4bd6t 8m3s kubernetes.io/kubelet-serving system:node:<node_name> Pending
csr-4hl85 13m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending </code></pre><rh-badge id="CO279-2" state="info">2</rh-badge>
<pre class="language-plaintext" tabindex="0"><code class="language-plaintext">
csr-zhhhp 3m8s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending
...</code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc describe csr <span class="token operator"><</span>csr_name<span class="token operator">></span> </span></span></code></pre><rh-badge id="CO280-1" state="info">1</rh-badge>
<pre class="language-shell-session" tabindex="0"><code class="language-shell-session"></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm certificate approve <span class="token operator"><</span>csr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
<rh-code-block highlighting="prerendered" language="shell-session" line-numbers="hidden" actions="copy">
<pre class="language-shell-session" tabindex="-1"><code class="language-shell-session"><span class="token command"><span class="token shell-symbol important">$</span> <span class="token bash language-bash">oc adm certificate approve <span class="token operator"><</span>csr_name<span class="token operator">></span></span></span></code></pre>
</rh-code-block>
Other libraries
To learn more about our other libraries, visit this page.
Feedback
To give feedback about anything on this page, contact us.