Conversation
✅ Deploy Preview for cozystack ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
📝 WalkthroughWalkthroughSplit backup docs into tenant-facing guidance that uses new public resources ( Changes
Sequence Diagram(s)sequenceDiagram
participant Tenant as Tenant (kubectl)
participant API as Kubernetes API (backups.cozystack.io)
participant Controller as BackupController (operator)
participant Velero as Velero (cozy-velero)
participant Store as Object Storage
Tenant->>API: create `BackupJob` / `Plan`
API-->>Controller: deliver resource event
Controller->>Velero: create Velero Backup CR / trigger snapshot
Velero->>Store: upload backup data
Velero-->>Controller: report backup status
Controller-->>API: update `BackupJob` / `Plan` status
Tenant->>API: kubectl get/describe `BackupJob` / `Plan`
Estimated Code Review Effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly refactors the documentation related to backup and recovery within Cozystack. The primary goal is to improve clarity and relevance for different user personas by separating administrator-level Velero configuration details from tenant-level backup creation and management instructions. This ensures that both administrators and end-users can quickly find the information pertinent to their roles, streamlining the process of managing backups. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request refactors the backup documentation by splitting it into a user-facing guide (backup-and-recovery.md) and an administrator guide (velero-backup-configuration.md). The changes are well-structured and make the documentation clearer for both audiences. I've added a couple of minor suggestions to improve the consistency of kubectl commands used in the examples.
content/en/docs/v1/operations/services/velero-backup-configuration.md
Outdated
Show resolved
Hide resolved
c2a1f15 to
b8c6f0f
Compare
There was a problem hiding this comment.
Actionable comments posted: 5
🧹 Nitpick comments (1)
content/en/docs/v1/operations/services/velero-backup-configuration.md (1)
18-18: Polish unclear sentences to avoid operator confusion.A few lines are grammatically unclear and hard to execute literally (
Line 18,Line 148-150,Line 158).Suggested wording cleanup
-- S3-compatible storage: if you want store backups in Cozy you need enable SeaweedFS and create a Bucket or can use another external S3 service. +- S3-compatible storage: to store backups in Cozy, enable SeaweedFS and create a Bucket, or use an external S3-compatible service. -Template context for substitutions in template spec will be resolved according defined Parameters in BackupClass and desired ApplicationRef defined in BackupJob / Plan. +Template substitutions in `spec.template` are resolved from `parameters` in `BackupClass` and `applicationRef` in `BackupJob`/`Plan`. -Don't forget apply it into management cluster: +Apply it to the management cluster: -A **BackupClass** binds a strategy to applications, you can define some Parameters +A **BackupClass** binds a strategy to applications and allows defining parameters.Also applies to: 148-150, 158-158
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/operations/services/velero-backup-configuration.md` at line 18, The sentence "S3-compatible storage: if you want store backups in Cozy you need enable SeaweedFS and create a Bucket or can use another external S3 service." (and similar unclear lines around 148-150 and 158) is grammatically incorrect and ambiguous; rephrase these sentences for clarity and consistent style: explicitly mention the requirement to enable SeaweedFS and create a bucket when choosing Cozy as the S3-compatible backend, or state that an external S3 service is an alternative, and make verbs and articles correct (e.g., "If you want to store backups in Cozy, enable SeaweedFS and create a bucket; alternatively, use an external S3-compatible service."). Locate the problematic text by searching for the exact sentence fragment above and the nearby lines referenced and replace them with clear, imperative instructions and parallel structure.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@content/en/docs/v1/kubernetes/backup-and-recovery.md`:
- Around line 32-36: Replace the malformed apologetic sentence "Let's apologize
that you see something like" with a direct instruction that tells the user what
to look for and to confirm the Velero class exists; specifically, change that
sentence to something like "You should see output similar to the
following—confirm the velero class is present:" and retain the example table
showing "NAME AGE" with "velero 14m" so readers know what to verify.
- Around line 49-64: The manifest shows BackupJob created with "namespace:
tenant-root" but subsequent commands use "-n cozy-velero", causing a mismatch;
update the example so the BackupJob namespace and the kubectl commands match
(either change the manifest's namespace to "cozy-velero" or change the kubectl
commands to use "-n tenant-root")—look for the BackupJob resource definition and
the example commands (kubectl get backupjobs -n cozy-velero and kubectl describe
backupjob my-manual-backup -n cozy-velero) and make them consistent.
- Around line 72-99: The header and text inconsistently use "BackupPlan" while
the manifest uses kind: Plan and the kubectl commands are wrong; update the
heading "Create scheduled backups (BackupPlan)" to "Create scheduled backups
(Plan)", change the sentence "Use a **BackupPlan** to run backups..." to "Use a
**Plan** to run backups...", and replace any `kubectl describe backupplan`
occurrences with `kubectl describe plan my-backup-plan` so the documentation and
the manifest (`kind: Plan`, metadata.name: my-backup-plan) are consistent.
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md`:
- Line 200: Fix the malformed Markdown link for Velero CLI by removing the extra
closing bracket in the text "[Velero
CLI]](https://velero.io/docs/v1.17/basic-install/#install-the-cli)" so it
becomes "[Velero
CLI](https://velero.io/docs/v1.17/basic-install/#install-the-cli)"; locate the
occurrence of the string "[Velero CLI]]" in the document and update it to a
single closing bracket to restore proper Markdown link syntax.
- Around line 179-181: Fix the typos in the BackupClass example: correct the
resource kind value from "VirtialMachine" to "VirtualMachine" (the
application.kind field in the example) and rename the parameter key
"backupStoragelocationName" to "backupStorageLocationName" so it matches the
template key used earlier and allows proper template substitution.
---
Nitpick comments:
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md`:
- Line 18: The sentence "S3-compatible storage: if you want store backups in
Cozy you need enable SeaweedFS and create a Bucket or can use another external
S3 service." (and similar unclear lines around 148-150 and 158) is grammatically
incorrect and ambiguous; rephrase these sentences for clarity and consistent
style: explicitly mention the requirement to enable SeaweedFS and create a
bucket when choosing Cozy as the S3-compatible backend, or state that an
external S3 service is an alternative, and make verbs and articles correct
(e.g., "If you want to store backups in Cozy, enable SeaweedFS and create a
bucket; alternatively, use an external S3-compatible service."). Locate the
problematic text by searching for the exact sentence fragment above and the
nearby lines referenced and replace them with clear, imperative instructions and
parallel structure.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
content/en/docs/v1/kubernetes/backup-and-recovery.mdcontent/en/docs/v1/operations/services/velero-backup-configuration.md
content/en/docs/v1/operations/services/velero-backup-configuration.md
Outdated
Show resolved
Hide resolved
content/en/docs/v1/operations/services/velero-backup-configuration.md
Outdated
Show resolved
Hide resolved
a26dcfe to
ab2ebd4
Compare
There was a problem hiding this comment.
♻️ Duplicate comments (5)
content/en/docs/v1/kubernetes/backup-and-recovery.md (5)
49-49:⚠️ Potential issue | 🟠 MajorFix namespace mismatch between BackupJob and status commands.
The BackupJob is created in
tenant-root(line 49) but the status commands querycozy-velero(lines 62-63). Users will encounter "not found" errors. This was previously flagged but remains unresolved.🔧 Suggested fix (standardize namespace)
kubectl apply -f backupjob.yaml -kubectl get backupjobs -n cozy-velero -kubectl describe backupjob my-manual-backup -n cozy-velero +kubectl get backupjobs -n tenant-root +kubectl describe backupjob my-manual-backup -n tenant-rootAlso applies to: 62-63
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` at line 49, The namespace used to create the BackupJob ("tenant-root") does not match the namespace used in the status commands ("cozy-velero"); update the status command examples to use the same namespace as the BackupJob (tenant-root) or change the BackupJob namespace to cozy-velero so both are identical—search for "BackupJob" and the status command examples (kubectl get backup/… and kubectl describe backup/…) in the document and make their namespace argument consistent (use tenant-root or cozy-velero) across lines referencing the job and status checks.
32-36:⚠️ Potential issue | 🟡 MinorReplace malformed sentence with clear instruction.
The sentence "Let's apologize that you see something like" is grammatically incorrect and unprofessional. This was previously flagged but remains unresolved.
📝 Suggested fix
-Let's apologize that you see something like and we will use this velero class in the next steps: +You should see output similar to this; we'll use the `velero` class in the next steps: -``` +```bash NAME AGE velero 14m</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@content/en/docs/v1/kubernetes/backup-and-recovery.mdaround lines 32 - 36,
Replace the malformed sentence "Let's apologize that you see something like"
with a clear instruction and a properly formatted bash code block showing the
expected Velero class output; update the surrounding text to say something like
"You should see output similar to the following:" and then include the fenced
bash block that displays the NAME/AGE table (the lines starting with "NAME
AGE" and "velero 14m") so the example is professional and
readable.</details> --- `72-72`: _⚠️ Potential issue_ | _🟠 Major_ **Standardize terminology: use "Plan" consistently, not "BackupPlan".** The heading (line 72) and description (line 74) reference "BackupPlan" but the manifest uses `kind: Plan` (line 80). The kubectl command on line 98 also uses `backupplan` which won't match the actual resource. This was previously flagged but remains unresolved. <details> <summary>🔧 Suggested fix</summary> ```diff -## 3. Create scheduled backups (BackupPlan) +## 3. Create scheduled backups (Plan) -Use a **BackupPlan** to run backups on a schedule (e.g. daily or every 6 hours). +Use a **Plan** to run backups on a schedule (e.g. daily or every 6 hours).kubectl apply -f backupplan.yaml kubectl get plans -n cozy-velero -kubectl describe backupplan my-backup-plan -n cozy-velero +kubectl describe plan my-backup-plan -n cozy-velero kubectl get backups.velero.io -n cozy-veleroAlso applies to: 74-74, 98-98
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` at line 72, Heading and text refer to "BackupPlan" but the manifest uses kind: Plan and the kubectl command uses the wrong resource name; update the heading "Create scheduled backups (BackupPlan)" to "Create scheduled backups (Plan)", change any inline references from "BackupPlan" to "Plan" (including the description that mentions BackupPlan), and fix the kubectl command to use the correct resource name for the CRD (e.g., use "plan" or the correct plural "plans" as required by kubectl) so it matches kind: Plan in the manifest.
105-105:⚠️ Potential issue | 🟠 MajorFix kubectl command: use "plan" not "backupplan".
The command uses
kubectl describe backupplanbut the resource kind isPlan(line 80), so the correct command should bekubectl describe plan.🔧 Suggested fix
-- **Plans**: `kubectl get plans -n cozy-velero` and `kubectl describe backupplan <name> -n cozy-velero` +- **Plans**: `kubectl get plans -n cozy-velero` and `kubectl describe plan <name> -n cozy-velero`🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` at line 105, The kubectl command incorrectly uses the resource name "backupplan"; update the documentation to use the correct resource kind "Plan" by replacing the string "kubectl describe backupplan <name> -n cozy-velero" with "kubectl describe plan <name> -n cozy-velero" (the other command "kubectl get plans -n cozy-velero" is already correct), ensuring the command text in the content matches the resource kind "Plan".
104-104:⚠️ Potential issue | 🟠 MajorAlign namespace in status commands with BackupJob example.
The BackupJob status commands reference
cozy-veleronamespace, but the example BackupJob (line 49) was created intenant-root. For consistency, status commands should match the example namespace.🔧 Suggested fix
-- **BackupJobs**: `kubectl get backupjobs -n cozy-velero` and `kubectl describe backupjob <name> -n cozy-velero` +- **BackupJobs**: `kubectl get backupjobs -n tenant-root` and `kubectl describe backupjob <name> -n tenant-root`🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` at line 104, The BackupJob status commands use the wrong namespace; update the two commands referencing `cozy-velero` to use `tenant-root` so they match the example BackupJob shown earlier (change `kubectl get backupjobs -n cozy-velero` and `kubectl describe backupjob <name> -n cozy-velero` to use `-n tenant-root`), ensuring `BackupJobs` status commands align with the example BackupJob.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@content/en/docs/v1/kubernetes/backup-and-recovery.md`:
- Line 49: The namespace used to create the BackupJob ("tenant-root") does not
match the namespace used in the status commands ("cozy-velero"); update the
status command examples to use the same namespace as the BackupJob (tenant-root)
or change the BackupJob namespace to cozy-velero so both are identical—search
for "BackupJob" and the status command examples (kubectl get backup/… and
kubectl describe backup/…) in the document and make their namespace argument
consistent (use tenant-root or cozy-velero) across lines referencing the job and
status checks.
- Around line 32-36: Replace the malformed sentence "Let's apologize that you
see something like" with a clear instruction and a properly formatted bash code
block showing the expected Velero class output; update the surrounding text to
say something like "You should see output similar to the following:" and then
include the fenced bash block that displays the NAME/AGE table (the lines
starting with "NAME AGE" and "velero 14m") so
the example is professional and readable.
- Line 72: Heading and text refer to "BackupPlan" but the manifest uses kind:
Plan and the kubectl command uses the wrong resource name; update the heading
"Create scheduled backups (BackupPlan)" to "Create scheduled backups (Plan)",
change any inline references from "BackupPlan" to "Plan" (including the
description that mentions BackupPlan), and fix the kubectl command to use the
correct resource name for the CRD (e.g., use "plan" or the correct plural
"plans" as required by kubectl) so it matches kind: Plan in the manifest.
- Line 105: The kubectl command incorrectly uses the resource name "backupplan";
update the documentation to use the correct resource kind "Plan" by replacing
the string "kubectl describe backupplan <name> -n cozy-velero" with "kubectl
describe plan <name> -n cozy-velero" (the other command "kubectl get plans -n
cozy-velero" is already correct), ensuring the command text in the content
matches the resource kind "Plan".
- Line 104: The BackupJob status commands use the wrong namespace; update the
two commands referencing `cozy-velero` to use `tenant-root` so they match the
example BackupJob shown earlier (change `kubectl get backupjobs -n cozy-velero`
and `kubectl describe backupjob <name> -n cozy-velero` to use `-n tenant-root`),
ensuring `BackupJobs` status commands align with the example BackupJob.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
content/en/docs/v1/kubernetes/backup-and-recovery.mdcontent/en/docs/v1/operations/services/velero-backup-configuration.md
✅ Files skipped from review due to trivial changes (1)
- content/en/docs/v1/operations/services/velero-backup-configuration.md
95c75b0 to
1d26deb
Compare
…to ops or users Signed-off-by: Andrey Kolkov <androndo@gmail.com>
1d26deb to
1a28ce2
Compare
There was a problem hiding this comment.
Actionable comments posted: 5
♻️ Duplicate comments (1)
content/en/docs/v1/operations/services/velero-backup-configuration.md (1)
179-179:⚠️ Potential issue | 🟡 MinorFix typo: "VirtialMachine" should be "VirtualMachine".
The
application.kindvalue has a typo: "VirtialMachine" instead of "VirtualMachine". This will prevent proper matching with actual VirtualMachine resources.✏️ Suggested fix
application: - kind: VirtialMachine + kind: VirtualMachine parameters: backupStorageLocationName: default🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/operations/services/velero-backup-configuration.md` at line 179, Replace the misspelled resource kind "VirtialMachine" with the correct "VirtualMachine" where the application.kind value is set (the line containing kind: VirtialMachine); update the application.kind value to "VirtualMachine" so it correctly matches VirtualMachine resources.
🧹 Nitpick comments (4)
content/en/docs/v1/kubernetes/backup-and-recovery.md (4)
10-10: Simplify the sentence structure.The phrase "Cluster backup strategies" is slightly redundant since the context is already about cluster backups. Consider simplifying to: "Backup strategies and BackupClasses are configured by cluster administrators."
✏️ Suggested revision
-Cluster backup **strategies** and **BackupClasses** are configured by cluster administrators. If your tenant does not have a BackupClass yet, ask your administrator to follow the [Velero Backup Configuration]({{% ref "/docs/v1/operations/services/velero-backup-configuration" %}}) guide to set up storage, strategies, and BackupClasses. +Backup **strategies** and **BackupClasses** are configured by cluster administrators. If your tenant does not have a BackupClass yet, ask your administrator to follow the [Velero Backup Configuration]({{% ref "/docs/v1/operations/services/velero-backup-configuration" %}}) guide to set up storage, strategies, and BackupClasses.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` at line 10, Replace the redundant phrase "Cluster backup **strategies** and **BackupClasses**" with the simplified "Backup **strategies** and **BackupClasses**" in the sentence that references the Velero Backup Configuration guide (the sentence containing the link to {% ref "/docs/v1/operations/services/velero-backup-configuration" %}) so it reads: "Backup **strategies** and **BackupClasses** are configured by cluster administrators. If your tenant..." ensuring the rest of the link and sentence remain unchanged.
91-95: Consider removing Velero-specific checks from tenant status commands.Line 95 refers tenants to "Velero backups:
kubectl get backups.velero.io -n tenant-root". This continues the abstraction leak noted in line 88. For a tenant-facing guide that emphasizes BackupJob and Plan usage, the status section should focus on those resources. If Velero backup inspection is needed, explain when and why tenants would check these lower-level resources.♻️ Suggested revision
## 4. Check backup status - **BackupJobs**: `kubectl get backupjobs -n tenant-root` and `kubectl describe backupjob <name> -n tenant-root` - **Plans**: `kubectl get plans -n tenant-root` and `kubectl describe plan <name> -n tenant-root` -- **Velero backups**: `kubectl get backups.velero.io -n tenant-root`If you want to retain Velero backup checks, consider adding context:
For advanced troubleshooting, you can also inspect the underlying Velero backup resources: - **Velero backups**: `kubectl get backups.velero.io -n tenant-root`🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` around lines 91 - 95, Remove or rephrase the Velero-specific check so tenant-facing status steps only reference BackupJobs and Plans (i.e., the lines mentioning BackupJobs, Plans, and the Velero command backups.velero.io); either delete the "`kubectl get backups.velero.io -n tenant-root`" bullet or move it into a short "advanced troubleshooting" paragraph that explains it's a lower-level, operator-focused check and when tenants should use it. Ensure the section retains the BackupJobs and Plan commands (`kubectl get backupjobs -n tenant-root`, `kubectl describe backupjob <name> -n tenant-root`, `kubectl get plans -n tenant-root`, `kubectl describe plan <name> -n tenant-root`) as the primary tenant-facing guidance.
14-14: Consider removing implementation details from tenant-facing guide.This guide is for tenant users who work with the BackupJob and Plan abstractions. Explaining where Velero runs (management vs tenant cluster,
cozy-veleronamespace) exposes implementation details that tenants don't need to know and may cause confusion. Consider either removing this sentence or simplifying it to just mention that Velero powers the backups under the hood.♻️ Suggested simplification
-Cozystack uses [Velero](https://velero.io/docs/v1.17/) under the hood. Backups and restores run in the `cozy-velero` namespace (management cluster) or the equivalent namespace in your tenant cluster, depending on your setup. +Cozystack uses [Velero](https://velero.io/docs/v1.17/) under the hood to perform backups and restores.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` at line 14, Remove or simplify the tenant-facing implementation detail sentence that reads "Cozystack uses Velero... `cozy-velero` namespace (management cluster) or the equivalent namespace in your tenant cluster, depending on your setup." For a tenant guide, either delete this sentence entirely or replace it with a short note such as "Backups are powered by Velero under the hood," keeping the rest of the document unchanged; ensure the change appears in content near the file header where that sentence is currently located.
88-88: Reconsider exposing Velero CRD in tenant-facing commands.This guide emphasizes using the BackupJob and Plan abstractions. Having tenants run
kubectl get backups.velero.ioexposes the underlying Velero implementation and breaks the abstraction layer. Tenants should primarily usekubectl get backupjobsandkubectl get plansto check status. If checking Velero backups is necessary for troubleshooting, consider moving this command to a separate "Advanced" or "Troubleshooting" section with context.♻️ Alternative: Remove Velero CRD check from basic workflow
kubectl apply -f plan.yaml kubectl get plans -n tenant-root kubectl describe plan my-backup-plan -n tenant-root -kubectl get backups.velero.io -n tenant-root🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` at line 88, The document exposes the Velero CRD via the command "kubectl get backups.velero.io", breaking the BackupJob/Plan abstraction; remove or relocate this command so tenant-facing basic workflow only shows the abstracted commands (use "kubectl get backupjobs" and "kubectl get plans" instead) and, if retaining the Velero check for troubleshooting, move "kubectl get backups.velero.io -n tenant-root" into a new "Advanced/Troubleshooting" section with explanatory context about when and why to run it; update the text around BackupJob and Plan examples to reference only the abstracted commands.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@content/en/docs/v1/kubernetes/backup-and-recovery.md`:
- Around line 24-25: The sentence "Check available BackupClass **name**, and use
in the next steps when creating a BackupJob or Plan." is grammatically
incomplete; update the copy to a complete phrase such as "Check the available
BackupClass names, and use them in the next steps when creating a BackupJob or
Plan." or alternatively "Note the BackupClass name, and use it in the next steps
when creating a BackupJob or Plan." Ensure you update the string containing
"BackupClass **name**" so it reads either "BackupClass names" (plural) or
"BackupClass name" (singular) and adjust the following clause to match (use them
vs use it).
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md`:
- Line 150: Update the sentence "Don't forget apply it" to read "Don't forget to
apply it" in the doc; locate the exact phrase "Don't forget apply it" and insert
the missing "to" so the instruction becomes grammatically correct ("Don't forget
to apply it").
- Line 148: Update the sentence "Template context for substitutions in template
spec will be resolved according defined Parameters in BackupClass and desired
ApplicationRef defined in BackupJob / Plan." to read "Template context for
substitutions in template spec will be resolved according to defined Parameters
in BackupClass and desired ApplicationRef defined in BackupJob / Plan." — edit
the exact line in the docs to insert the missing "to" so it reads "according to
defined Parameters".
- Line 18: Fix the typo in the sentence containing "if you want store backups"
by inserting the missing word "to" so it reads "if you want to store backups";
update the sentence in the Velero backup configuration doc where the
S3-compatible storage prerequisite is described (the exact phrase to locate:
"S3-compatible storage: if you want store backups in Cozy you need enable
SeaweedFS and create a Bucket or can use another external S3 service.") and
ensure the corrected sentence reads naturally (e.g., "S3-compatible storage: if
you want to store backups in Cozy you need to enable SeaweedFS and create a
Bucket, or you can use another external S3 service.").
- Line 208: The Velero restore section in
content/en/docs/v1/operations/services/velero-backup-configuration.md
incorrectly points to v0 restore docs; update that section (the "Velero restore"
or restore-related heading) to either include the v1 restore procedures directly
or, if v1 restore docs aren't ready, replace the reference with a clear
temporary note stating that the link points to v0 documentation while v1 restore
documentation is under development and include the v0 link for immediate use;
ensure the restore section text is explicit about the temporary nature and
next-steps (e.g., “v1 restore docs coming soon”) so readers aren’t confused.
---
Duplicate comments:
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md`:
- Line 179: Replace the misspelled resource kind "VirtialMachine" with the
correct "VirtualMachine" where the application.kind value is set (the line
containing kind: VirtialMachine); update the application.kind value to
"VirtualMachine" so it correctly matches VirtualMachine resources.
---
Nitpick comments:
In `@content/en/docs/v1/kubernetes/backup-and-recovery.md`:
- Line 10: Replace the redundant phrase "Cluster backup **strategies** and
**BackupClasses**" with the simplified "Backup **strategies** and
**BackupClasses**" in the sentence that references the Velero Backup
Configuration guide (the sentence containing the link to {% ref
"/docs/v1/operations/services/velero-backup-configuration" %}) so it reads:
"Backup **strategies** and **BackupClasses** are configured by cluster
administrators. If your tenant..." ensuring the rest of the link and sentence
remain unchanged.
- Around line 91-95: Remove or rephrase the Velero-specific check so
tenant-facing status steps only reference BackupJobs and Plans (i.e., the lines
mentioning BackupJobs, Plans, and the Velero command backups.velero.io); either
delete the "`kubectl get backups.velero.io -n tenant-root`" bullet or move it
into a short "advanced troubleshooting" paragraph that explains it's a
lower-level, operator-focused check and when tenants should use it. Ensure the
section retains the BackupJobs and Plan commands (`kubectl get backupjobs -n
tenant-root`, `kubectl describe backupjob <name> -n tenant-root`, `kubectl get
plans -n tenant-root`, `kubectl describe plan <name> -n tenant-root`) as the
primary tenant-facing guidance.
- Line 14: Remove or simplify the tenant-facing implementation detail sentence
that reads "Cozystack uses Velero... `cozy-velero` namespace (management
cluster) or the equivalent namespace in your tenant cluster, depending on your
setup." For a tenant guide, either delete this sentence entirely or replace it
with a short note such as "Backups are powered by Velero under the hood,"
keeping the rest of the document unchanged; ensure the change appears in content
near the file header where that sentence is currently located.
- Line 88: The document exposes the Velero CRD via the command "kubectl get
backups.velero.io", breaking the BackupJob/Plan abstraction; remove or relocate
this command so tenant-facing basic workflow only shows the abstracted commands
(use "kubectl get backupjobs" and "kubectl get plans" instead) and, if retaining
the Velero check for troubleshooting, move "kubectl get backups.velero.io -n
tenant-root" into a new "Advanced/Troubleshooting" section with explanatory
context about when and why to run it; update the text around BackupJob and Plan
examples to reference only the abstracted commands.
ℹ️ Review info
Configuration used: defaults
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
content/en/docs/v1/kubernetes/backup-and-recovery.mdcontent/en/docs/v1/operations/services/velero-backup-configuration.md
| BackupClasses define where and how backups are stored. You can only use those that administrators have created and made available to you. | ||
| Check available BackupClass **name**, and use in the next steps when creating a BackupJob or Plan. |
There was a problem hiding this comment.
Fix grammatical issue in instruction.
"Check available BackupClass name" is grammatically incomplete. It should be "Check the available BackupClass names" or "Note the BackupClass name".
✏️ Suggested fix
-BackupClasses define where and how backups are stored. You can only use those that administrators have created and made available to you.
-Check available BackupClass **name**, and use in the next steps when creating a BackupJob or Plan.
+BackupClasses define where and how backups are stored. You can only use those that administrators have created and made available to you.
+Note the BackupClass **name** and use it in the next steps when creating a BackupJob or Plan.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/en/docs/v1/kubernetes/backup-and-recovery.md` around lines 24 - 25,
The sentence "Check available BackupClass **name**, and use in the next steps
when creating a BackupJob or Plan." is grammatically incomplete; update the copy
to a complete phrase such as "Check the available BackupClass names, and use
them in the next steps when creating a BackupJob or Plan." or alternatively
"Note the BackupClass name, and use it in the next steps when creating a
BackupJob or Plan." Ensure you update the string containing "BackupClass
**name**" so it reads either "BackupClass names" (plural) or "BackupClass name"
(singular) and adjust the following clause to match (use them vs use it).
| ## Prerequisites | ||
|
|
||
| - Administrator access to the Cozystack (management) cluster. | ||
| - S3-compatible storage: if you want store backups in Cozy you need enable SeaweedFS and create a Bucket or can use another external S3 service. |
There was a problem hiding this comment.
Fix missing "to" in prerequisites.
"if you want store backups" is missing "to". Should be "if you want to store backups".
✏️ Suggested fix
-- S3-compatible storage: if you want store backups in Cozy you need enable SeaweedFS and create a Bucket or can use another external S3 service.
+- S3-compatible storage: if you want to store backups in Cozy, you need to enable SeaweedFS and create a Bucket, or you can use another external S3 service.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - S3-compatible storage: if you want store backups in Cozy you need enable SeaweedFS and create a Bucket or can use another external S3 service. | |
| - S3-compatible storage: if you want to store backups in Cozy, you need to enable SeaweedFS and create a Bucket, or you can use another external S3 service. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md` at
line 18, Fix the typo in the sentence containing "if you want store backups" by
inserting the missing word "to" so it reads "if you want to store backups";
update the sentence in the Velero backup configuration doc where the
S3-compatible storage prerequisite is described (the exact phrase to locate:
"S3-compatible storage: if you want store backups in Cozy you need enable
SeaweedFS and create a Bucket or can use another external S3 service.") and
ensure the corrected sentence reads naturally (e.g., "S3-compatible storage: if
you want to store backups in Cozy you need to enable SeaweedFS and create a
Bucket, or you can use another external S3 service.").
| itemOperationTimeout: 24h0m0s | ||
| ``` | ||
|
|
||
| Template context for substitutions in template spec will be resolved according defined Parameters in BackupClass and desired ApplicationRef defined in BackupJob / Plan. |
There was a problem hiding this comment.
Fix missing "to" in template context explanation.
"according defined Parameters" should be "according to defined Parameters".
✏️ Suggested fix
-Template context for substitutions in template spec will be resolved according defined Parameters in BackupClass and desired ApplicationRef defined in BackupJob / Plan.
+Template context for substitutions in the template spec will be resolved according to the defined Parameters in the BackupClass and the desired ApplicationRef defined in the BackupJob or Plan.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md` at
line 148, Update the sentence "Template context for substitutions in template
spec will be resolved according defined Parameters in BackupClass and desired
ApplicationRef defined in BackupJob / Plan." to read "Template context for
substitutions in template spec will be resolved according to defined Parameters
in BackupClass and desired ApplicationRef defined in BackupJob / Plan." — edit
the exact line in the docs to insert the missing "to" so it reads "according to
defined Parameters".
|
|
||
| Template context for substitutions in template spec will be resolved according defined Parameters in BackupClass and desired ApplicationRef defined in BackupJob / Plan. | ||
|
|
||
| Don't forget apply it into management cluster: |
There was a problem hiding this comment.
Fix missing "to" in application instruction.
"Don't forget apply it" should be "Don't forget to apply it".
✏️ Suggested fix
-Don't forget apply it into management cluster:
+Don't forget to apply it to the management cluster:📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Don't forget apply it into management cluster: | |
| Don't forget to apply it to the management cluster: |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md` at
line 150, Update the sentence "Don't forget apply it" to read "Don't forget to
apply it" in the doc; locate the exact phrase "Don't forget apply it" and insert
the missing "to" so the instruction becomes grammatically correct ("Don't forget
to apply it").
| ``` | ||
|
|
||
| ## 5. Restore from a backup | ||
|
|
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
# First, verify the file exists and check the content around line 208
if [ -f "content/en/docs/v1/operations/services/velero-backup-configuration.md" ]; then
echo "=== File exists. Checking content around line 208 ==="
wc -l "content/en/docs/v1/operations/services/velero-backup-configuration.md"
echo ""
echo "=== Content around line 208 ==="
sed -n '200,215p' "content/en/docs/v1/operations/services/velero-backup-configuration.md" | cat -n
else
echo "File not found"
fiRepository: cozystack/website
Length of output: 754
🏁 Script executed:
# Search for v0 references in v1 operations docs
echo "=== Searching for v0 references in v1 operations directory ==="
rg "v0" content/en/docs/v1/operations/ -C 2Repository: cozystack/website
Length of output: 3584
🏁 Script executed:
# Check if v1 restore documentation exists
echo "=== Checking for restore-related documentation in v1 ==="
fd -e md 'content/en/docs/v1' | xargs rg -l 'restore|Restore' | grep -v '.png'Repository: cozystack/website
Length of output: 1784
🏁 Script executed:
# Check the v1 backup-and-recovery.md file
echo "=== Checking v1 kubernetes backup-and-recovery.md ==="
wc -l content/en/docs/v1/kubernetes/backup-and-recovery.md
echo ""
echo "=== Content searching for restore sections ==="
rg -n "restore|Restore" content/en/docs/v1/kubernetes/backup-and-recovery.md -C 3Repository: cozystack/website
Length of output: 995
🏁 Script executed:
# Also, let's verify the exact line number of the v0 reference
echo "=== Finding exact line number of v0 reference ==="
rg -n "v0/kubernetes/backup-and-recovery" content/en/docs/v1/operations/services/velero-backup-configuration.mdRepository: cozystack/website
Length of output: 351
🏁 Script executed:
cat -n content/en/docs/v1/kubernetes/backup-and-recovery.mdRepository: cozystack/website
Length of output: 3806
🏁 Script executed:
# Also verify the v1 operations velero config file to confirm the exact problematic line
echo "=== Lines 205-215 of velero-backup-configuration.md ==="
sed -n '205,215p' content/en/docs/v1/operations/services/velero-backup-configuration.md | cat -nRepository: cozystack/website
Length of output: 424
Fix cross-version documentation reference in Velero restore section.
This v1 operations guide references v0 documentation for restore procedures. However, v1 restore documentation is not yet available. Either include restore procedures directly in this guide, or add a note clarifying that this temporary reference points to v0 docs while v1 restore documentation is in development.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/en/docs/v1/operations/services/velero-backup-configuration.md` at
line 208, The Velero restore section in
content/en/docs/v1/operations/services/velero-backup-configuration.md
incorrectly points to v0 restore docs; update that section (the "Velero restore"
or restore-related heading) to either include the v1 restore procedures directly
or, if v1 restore docs aren't ready, replace the reference with a clear
temporary note stating that the link points to v0 documentation while v1 restore
documentation is under development and include the v0 link for immediate use;
ensure the restore section text is explicit about the temporary nature and
next-steps (e.g., “v1 restore docs coming soon”) so readers aren’t confused.
Now we have separated docs for ops and users
Summary by CodeRabbit
New Features
Documentation