Skip to content

Conversation

NickVolynkin
Copy link
Collaborator

@NickVolynkin NickVolynkin commented Jul 26, 2025

Summary by CodeRabbit

  • Documentation
    • Added a new guide on creating and using Golden (named) VM images, highlighting faster VM deployments.
    • Included admin workflow overview with commands and examples for common images (e.g., Ubuntu, Fedora, Cirros, Alpine, Talos).
    • Provided instructions and YAML examples for referencing golden images in Simple VM and VM-disk configurations.
    • Updated Virtual Machine Disk docs with a new Golden Image option and example; renumbered subsequent options accordingly.

Copy link
Contributor

coderabbitai bot commented Jul 26, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Caution

Review failed

The pull request is closed.

Walkthrough

Introduces documentation for “Golden Images” in virtualization. Adds a new vm-image page detailing creation and usage of named VM images and updates the virtualization index to include a “Golden Image” disk source option with example YAML and renumbered subsections.

Changes

Cohort / File(s) Change Summary
Docs: Virtualization Index update
content/en/docs/virtualization/_index.md
Added “Golden Image” subsection with YAML example referencing image.name (ubuntu); shifted numbering of subsequent disk source options (Upload to 3, Empty to 4); minor whitespace addition; no content changes to HTTP/Upload/Empty beyond numbering.
Docs: Golden VM Images page
content/en/docs/virtualization/vm-image.md
New page “Creating and Using Named VM Images” covering admin CLI workflow (cdi_golden_image_create.sh), DataVolume creation in cozy-public (vm-image-), example images (ubuntu, fedora, cirros, alpine, talos), and YAML examples for Simple VM and vm-instance using source.image.name/systemDisk.image.

Sequence Diagram(s)

sequenceDiagram
  actor Admin
  participant CLI as cdi_golden_image_create.sh
  participant K8s as Kubernetes API
  participant NS as cozy-public Namespace
  participant DV as DataVolume (vm-image-<name>)
  participant VM as Virtual Machine

  Admin->>CLI: Run create golden image (name, URL)
  CLI->>K8s: Apply DataVolume manifest in cozy-public
  K8s->>NS: Create DataVolume
  NS->>DV: Import source image
  Admin->>VM: Define VM with image name (e.g., ubuntu)
  VM->>DV: Resolve named image for systemDisk/source.image.name
  VM->>VM: Boot using cached image
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Possibly related issues

Poem

A bunny baked a golden disk so bright,
Cached moonlight bytes to speed each flight.
Ubuntu, Fedora—names in a row,
Hops to the cluster, ready to go.
With cozy stacks and carrots near,
VMs now launch in a whisker—cheer! 🥕✨


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a277e33 and 93b9f83.

📒 Files selected for processing (2)
  • content/en/docs/virtualization/_index.md (3 hunks)
  • content/en/docs/virtualization/vm-image.md (1 hunks)
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update-managed-apps-reference

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

netlify bot commented Jul 26, 2025

Deploy Preview for cozystack ready!

Name Link
🔨 Latest commit 93b9f83
🔍 Latest deploy log https://app.netlify.com/projects/cozystack/deploys/68998cab2adf18000828c187
😎 Deploy Preview https://deploy-preview-276--cozystack.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @NickVolynkin, 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 updates the Postgres application documentation (content/en/docs/applications/postgres.md) to reflect the latest configuration parameters. The changes, likely generated by the cozyvalues-gen tool, aim to provide a more comprehensive and structured overview of available parameters, improving clarity and completeness for users configuring Postgres applications.

Highlights

  • Documentation Structure Enhancement: The parameter tables in the Postgres documentation have been significantly enhanced by the addition of a new 'Type' column, providing explicit data types (e.g., int, string, object, bool, *quantity, map, []string) for each configuration parameter.
  • Parameter Nesting and Granularity: Several top-level parameters such as resources, postgresql, quorum, backup, and bootstrap have been restructured to represent nested objects. This change allows for a more granular and organized display of their sub-parameters, improving the clarity of complex configurations.
  • Expanded Configuration Details: Detailed configuration options for users and databases have been added. This includes specific nested fields like users[name].password, users[name].replication, databases[name].roles (with admin and readonly sub-roles), and databases[name].extensions.
Using Gemini Code Assist

The 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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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 or fill out our survey to provide feedback.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the documentation for PostgreSQL parameters, likely using an auto-generation tool. The changes add type information and a more structured view of the parameters, which is a great improvement. I've identified a couple of areas for further improvement: one is a minor formatting issue with a parameter value, and the other is a more general concern about the removal of default/example values from the documentation, which could impact usability. Please see the detailed comments below.

| `resources.memory` | Memory | `*quantity` | |
| `resourcesPreset` | Default sizing preset used when `resources` is omitted. Allowed values: `nano`, `micro`, `small`, `medium`, `large`, `xlarge`, `2xlarge`. | `string` | `micro` |
| `size` | Persistent Volume size | `string` | `10Gi` |
| `storageClass` | StorageClass used to store the data | `string` | `` |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The value for storageClass is ``, which renders as a single backtick. This seems incorrect. To represent an empty string, "" should be used, which was also the value in the previous version of this document.

Suggested change
| `storageClass` | StorageClass used to store the data | `string` | `` |
| `storageClass` | StorageClass used to store the data | `string` | `""` |

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's a bug in the generator, which will be fixed there.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment on lines 94 to 131
| Name | Description | Type | Value |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | --------------------- | ------ |
| `postgresql` | PostgreSQL server configuration | `object` | `null` |
| `postgresql.parameters` | PostgreSQL server parameters | `object` | |
| `postgresql.parameters.max_connections` | Determines the maximum number of concurrent connections to the database server. The default is typically 100 connections | `int` | |
| `quorum` | Quorum configuration for synchronous replication | `object` | `null` |
| `quorum.minSyncReplicas` | Minimum number of synchronous replicas that must acknowledge a transaction before it is considered committed. | `int` | |
| `quorum.maxSyncReplicas` | Maximum number of synchronous replicas that can acknowledge a transaction (must be lower than the number of instances). | `int` | |
| `users` | Users configuration | `map[string]user` | `{}` |
| `users[name].password` | Password for the user | `*string` | |
| `users[name].replication` | Whether the user has replication privileges | `*bool` | |
| `databases` | Databases configuration | `map[string]database` | `{}` |
| `databases[name].roles` | Roles for the database | `object` | |
| `databases[name].roles.admin` | List of users with admin privileges | `[]string` | |
| `databases[name].roles.readonly` | List of users with read-only privileges | `[]string` | |
| `databases[name].extensions` | Extensions enabled for the database | `[]string` | |

### Backup parameters

| Name | Description | Value |
| ------------------------ | ---------------------------------------------------------- | ----------------------------------- |
| `backup.enabled` | Enable regular backups | `false` |
| `backup.schedule` | Cron schedule for automated backups | `0 2 * * * *` |
| `backup.retentionPolicy` | Retention policy | `30d` |
| `backup.destinationPath` | Path to store the backup (i.e. s3://bucket/path/to/folder) | `s3://bucket/path/to/folder/` |
| `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `http://minio-gateway-service:9000` |
| `backup.s3AccessKey` | Access key for S3, used for authentication | `oobaiRus9pah8PhohL1ThaeTa4UVa7gu` |
| `backup.s3SecretKey` | Secret key for S3, used for authentication | `ju3eum4dekeich9ahM1te8waeGai0oog` |
| Name | Description | Type | Value |
| ------------------------ | ---------------------------------------------------------- | -------- | ------ |
| `backup` | Backup configuration | `object` | `null` |
| `backup.enabled` | Enable regular backups | `bool` | |
| `backup.schedule` | Cron schedule for automated backups | `string` | |
| `backup.retentionPolicy` | Retention policy | `string` | |
| `backup.destinationPath` | Path to store the backup (i.e. s3://bucket/path/to/folder) | `string` | |
| `backup.endpointURL` | S3 Endpoint used to upload data to the cloud | `string` | |
| `backup.s3AccessKey` | Access key for S3, used for authentication | `string` | |
| `backup.s3SecretKey` | Secret key for S3, used for authentication | `string` | |

### Bootstrap (recovery) parameters

| Name | Description | Value |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------- | ------- |
| `bootstrap.enabled` | Restore database cluster from a backup | `false` |
| `bootstrap.recoveryTime` | Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest | `""` |
| `bootstrap.oldName` | Name of database cluster before deleting | `""` |
| Name | Description | Type | Value |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------- | -------- | ------ |
| `bootstrap` | Bootstrap configuration | `object` | `null` |
| `bootstrap.enabled` | Restore database cluster from a backup | `bool` | |
| `bootstrap.recoveryTime` | Timestamp (PITR) up to which recovery will proceed, expressed in RFC 3339 format. If left empty, will restore latest | `string` | |
| `bootstrap.oldName` | Name of database cluster before deleting | `string` | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The updated documentation removes many of the default and example values that were present in the previous version. This makes the documentation less informative for users who need to know the default behavior or see an example format.

For example:

  • postgresql.parameters.max_connections no longer shows the default 100.
  • backup.enabled no longer shows the default false.
  • backup.schedule no longer shows the example cron expression.
  • bootstrap.enabled no longer shows the default false.

If these defaults are still applicable, please consider adding them back to the Value column. It would significantly improve the documentation's usefulness.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will be fixed in the generator cozystack/cozyvalues-gen#7

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (5)
content/en/docs/applications/postgres.md (5)

81-90: Unclear type notation & inconsistent default representation

The use of the *quantity / *string / *bool prefix is not explained anywhere in the doc.
Readers who are not familiar with Go pointer semantics (which this notation mimics) will likely be confused.

In the same block, the default for storageClass is rendered as an empty string. Everywhere else a missing/default value is shown either as null or left blank. Mixing three different conventions ("", null, blank) makes the table harder to scan.

Consider:

-| `resources.cpu`    | CPU                                                                                                                                       | `*quantity` |         |
-| `resources.memory` | Memory                                                                                                                                    | `*quantity` |         |
+| `resources.cpu`    | CPU (Kubernetes resource.Quantity)                                                                                                        | `quantity`  |         |
+| `resources.memory` | Memory (Kubernetes resource.Quantity)                                                                                                     | `quantity`  |         |

-| `storageClass`     | StorageClass used to store the data                                                                                                       | `string`    | ``      |
+| `storageClass`     | StorageClass used to store the data (falls back to the cluster-wide default when omitted)                                                 | `string`    | `null`  |

and add a short note before the first parameters table that defines the allowed primitive types (string, int, bool, quantity) so the tables stay self-contained.


94-110: Default column is blank for some object fields – use a single convention

postgresql.parameters, users, databases, etc. are rendered with an empty Value cell, while other object-typed rows use explicit null or {}. Adopt one style (preferably null for “not set by default”) to prevent readers from inferring a semantic difference that isn’t there.


102-110: Document the concrete schema of complex map entries

Rows such as users[name].password and databases[name].roles.admin implicitly rely on a naming pattern to describe nested keys. For large charts this quickly becomes unwieldy.
Providing a short YAML snippet (even inline) or linking to the CRD / values schema would make it much clearer which keys are valid and which are examples.


113-122: Mark credentials as secrets

backup.s3AccessKey and backup.s3SecretKey are ordinary string types, but they hold credentials. Label them as string (secret) or add a short footnote that these values should be provided via Kubernetes secrets / Helm --set-file to steer users away from committing plaintext keys.


126-131: Clarify bootstrap.recoveryTime default behaviour

The description states “If left empty, will restore latest” yet the Value column is blank. To avoid misunderstandings, explicitly put "" (empty string) or null in the Value column so the behaviour is discoverable at a glance.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1db167e and 2d231ab.

📒 Files selected for processing (1)
  • content/en/docs/applications/postgres.md (1 hunks)

@NickVolynkin NickVolynkin changed the title [docs] Update Postgres docs generated with cozyvalues-gen [experiment] [docs] Update Postgres docs generated with cozyvalues-gen Jul 28, 2025
@github-actions github-actions bot force-pushed the update-managed-apps-reference branch from 2d231ab to 0c6cebc Compare August 8, 2025 03:37
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
content/en/docs/virtualization/virtual-machine.md (2)

67-69: Explain the *string notation

*string is Go-specific and may be unfamiliar to readers of the docs. Add a footnote or change to “string (nullable)” to avoid leaking implementation detail.


70-71: Minor grammar – missing subject

“Can be a single key or a list of keys.” is a sentence fragment.
Recommend: “It can be a single key or a list of keys.”

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2d231ab and 0c6cebc.

📒 Files selected for processing (4)
  • content/en/docs/applications/clickhouse.md (1 hunks)
  • content/en/docs/applications/postgres.md (1 hunks)
  • content/en/docs/applications/tenant.md (1 hunks)
  • content/en/docs/virtualization/virtual-machine.md (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • content/en/docs/applications/clickhouse.md
  • content/en/docs/applications/tenant.md
  • content/en/docs/applications/postgres.md
🧰 Additional context used
🪛 LanguageTool
content/en/docs/virtualization/virtual-machine.md

[style] ~70-~70: To form a complete sentence, be sure to include a subject or ‘there’.
Context: ... of SSH public keys for authentication. Can be a single key or a list of keys. ...

(MISSING_IT_THERE)

Comment on lines 63 to 66
| `systemDisk.storageClass` | StorageClass used to store the data | `*string` | `replicated` |
| `gpus` | List of GPUs to attach | `[]object` | `[]` |
| `gpus[i].name` | The name of the GPU to attach. This should match the GPU resource name in the cluster. | `string` | `""` |
| `resources` | Resources | `object` | `{}` |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Pointer-typed fields show non-nullable defaults

systemDisk.storageClass is declared as *string, implying null is the zero value.
Documenting replicated as the default contradicts that pointer semantics and may confuse users.

Same applies to any other *string parameters. Either:

  1. Keep *string and set default to null, or
  2. Use plain string and specify a non-null default.

Please choose one and adjust consistently.

🤖 Prompt for AI Agents
In content/en/docs/virtualization/virtual-machine.md around lines 63 to 66, the
field `systemDisk.storageClass` is declared as a pointer to string (`*string`)
but has a non-null default value `replicated`, which conflicts with pointer
semantics. To fix this, either change the type to a plain `string` if you want a
non-null default or keep it as `*string` and set the default to `null`. Apply
this change consistently to all similar pointer-typed fields with defaults.

@github-actions github-actions bot force-pushed the update-managed-apps-reference branch from 0c6cebc to 38b474a Compare August 9, 2025 03:31
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
content/en/docs/virtualization/virtual-machine.md (1)

63-63: Pointer type (*string) with non-null default is inconsistent

A pointer implies the natural zero value is null. Documenting a non-null default ("replicated") contradicts that and may confuse users.

Pick one and apply consistently:

  • Keep *string and set default to null, or
  • Use plain string and keep the non-null default.

Option A (keep pointer, default null):

-| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `replicated` |
+| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `null`       |

Option B (non-pointer, non-null default):

-| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `replicated` |
+| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `string`    | `replicated` |
🧹 Nitpick comments (7)
content/en/docs/virtualization/virtual-machine.md (7)

52-52: Rename “Value” column to “Default” for clarity

This column lists defaults, not arbitrary values. Renaming improves clarity and consistency.

-| Name                      | Description                                                                                                 | Type        | Value        |
+| Name                      | Description                                                                                                 | Type        | Default      |

70-70: Grammar: complete the sentence per LanguageTool hint

Minor editorial fix to avoid a sentence fragment.

-| `sshKeys`                 | List of SSH public keys for authentication. Can be a single key or a list of keys.                          | `[]string`  | `[]`         |
+| `sshKeys`                 | List of SSH public keys for authentication. It can be a single key or a list of keys.                       | `[]string`  | `[]`         |

102-102: Heading typo: “UO Series” → “O Series”

Section header should match the “O Series” section above.

-### UO Series Characteristics
+### O Series Characteristics

136-136: Spelling: “emaulation” → “emulation”

-  from the vCPUs in order to reduce emaulation related impact on the
+  from the vCPUs in order to reduce emulation-related impact on the

178-178: Spelling: “emaulation” → “emulation”

-  from the vCPUs in order to reduce emaulation related impact on the
+  from the vCPUs in order to reduce emulation-related impact on the

185-186: Wording: “instancetypes” → “instance types”

-To get started with customizing or creating your own instancetypes and preferences
+To get started with customizing or creating your own instance types and preferences

190-190: Wording: “instancetype resources” → “instance types”

-The following instancetype resources are provided by Cozystack:
+The following instance types are provided by Cozystack:
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0c6cebc and 38b474a.

📒 Files selected for processing (10)
  • content/en/docs/applications/clickhouse.md (1 hunks)
  • content/en/docs/applications/ferretdb.md (0 hunks)
  • content/en/docs/applications/kafka.md (0 hunks)
  • content/en/docs/applications/mysql.md (0 hunks)
  • content/en/docs/applications/nats.md (0 hunks)
  • content/en/docs/applications/postgres.md (1 hunks)
  • content/en/docs/applications/rabbitmq.md (0 hunks)
  • content/en/docs/applications/redis.md (0 hunks)
  • content/en/docs/applications/tenant.md (1 hunks)
  • content/en/docs/virtualization/virtual-machine.md (1 hunks)
💤 Files with no reviewable changes (6)
  • content/en/docs/applications/ferretdb.md
  • content/en/docs/applications/kafka.md
  • content/en/docs/applications/mysql.md
  • content/en/docs/applications/nats.md
  • content/en/docs/applications/redis.md
  • content/en/docs/applications/rabbitmq.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • content/en/docs/applications/clickhouse.md
  • content/en/docs/applications/tenant.md
  • content/en/docs/applications/postgres.md
🧰 Additional context used
🪛 LanguageTool
content/en/docs/virtualization/virtual-machine.md

[style] ~70-~70: To form a complete sentence, be sure to include a subject or ‘there’.
Context: ... of SSH public keys for authentication. Can be a single key or a list of keys. ...

(MISSING_IT_THERE)

🔇 Additional comments (1)
content/en/docs/virtualization/virtual-machine.md (1)

55-55: Resolved: externalMethod default aligns with declared type and description

Default is now a valid string ("PortList"), matching the declared string type and allowed values. Good fix.

@github-actions github-actions bot force-pushed the update-managed-apps-reference branch from 38b474a to 922fef9 Compare August 10, 2025 03:37
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
content/en/docs/virtualization/virtual-machine.md (2)

55-55: Good fix: default now matches declared type and allowed values

externalMethod default aligns with string type and allowed values. No further action.


63-63: Pointer type vs non-null default: choose one consistently

systemDisk.storageClass is *string (nullable) but default is replicated (non-null). Either make it non-pointer or make the default null.

Option A (make it non-nullable with a concrete default):

-| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `replicated` |
+| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `string`    | `replicated` |

Option B (keep it nullable, default to null):

-| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `replicated` |
+| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `null`       |
🧹 Nitpick comments (4)
content/en/docs/virtualization/virtual-machine.md (4)

70-70: Grammar nit: complete the sentence

LanguageTool flagged this. Make it a complete sentence for clarity.

-| `sshKeys`                 | List of SSH public keys for authentication. Can be a single key or a list of keys.                          | `[]string`  | `[]`         |
+| `sshKeys`                 | List of SSH public keys for authentication. It can be a single key or a list of keys.                       | `[]string`  | `[]`         |

70-70: Description suggests union type, but declared as list only

Docs say “single key or a list of keys” while the type is []string. If single-string input is not actually accepted by the CRD, please adjust the description; otherwise, document it as string | []string.

Two alternative fixes:

  • If only arrays are accepted:
-| `sshKeys`                 | List of SSH public keys for authentication. It can be a single key or a list of keys.                       | `[]string`  | `[]`         |
+| `sshKeys`                 | List of SSH public keys for authentication. Provide a list of keys.                                         | `[]string`  | `[]`         |
  • If both are accepted by the schema/decoder:
-| `sshKeys`                 | List of SSH public keys for authentication. It can be a single key or a list of keys.                       | `[]string`  | `[]`         |
+| `sshKeys`                 | SSH public keys for authentication. Accepts either a single key or a list of keys.                          | `string | []string` | `[]`  |

57-57: Minor wording for clarity

Use “Whether” for booleans.

-| `running`                 | if the virtual machine should be running                                                                    | `bool`      | `true`       |
+| `running`                 | Whether the virtual machine should be running                                                               | `bool`      | `true`       |

67-69: Add examples for quantity fields

Clarify expected units/format for Kubernetes quantities (e.g., CPU “500m”, memory “2Gi”).

Example tweak:

-| `resources.cpu`           | The number of CPU cores allocated to the virtual machine                                                    | `*quantity` | `null`       |
+| `resources.cpu`           | CPU request for the VM (quantity, e.g., `500m`, `1`)                                                        | `*quantity` | `null`       |
-| `resources.memory`        | The amount of memory allocated to the virtual machine                                                       | `*quantity` | `null`       |
+| `resources.memory`        | Memory request for the VM (quantity, e.g., `512Mi`, `2Gi`)                                                  | `*quantity` | `null`       |
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 38b474a and 922fef9.

📒 Files selected for processing (10)
  • content/en/docs/applications/clickhouse.md (1 hunks)
  • content/en/docs/applications/ferretdb.md (0 hunks)
  • content/en/docs/applications/kafka.md (0 hunks)
  • content/en/docs/applications/mysql.md (0 hunks)
  • content/en/docs/applications/nats.md (0 hunks)
  • content/en/docs/applications/postgres.md (1 hunks)
  • content/en/docs/applications/rabbitmq.md (0 hunks)
  • content/en/docs/applications/redis.md (0 hunks)
  • content/en/docs/applications/tenant.md (1 hunks)
  • content/en/docs/virtualization/virtual-machine.md (1 hunks)
💤 Files with no reviewable changes (6)
  • content/en/docs/applications/ferretdb.md
  • content/en/docs/applications/mysql.md
  • content/en/docs/applications/kafka.md
  • content/en/docs/applications/redis.md
  • content/en/docs/applications/nats.md
  • content/en/docs/applications/rabbitmq.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • content/en/docs/applications/clickhouse.md
  • content/en/docs/applications/tenant.md
  • content/en/docs/applications/postgres.md
🧰 Additional context used
🪛 LanguageTool
content/en/docs/virtualization/virtual-machine.md

[style] ~70-~70: To form a complete sentence, be sure to include a subject or ‘there’.
Context: ... of SSH public keys for authentication. Can be a single key or a list of keys. ...

(MISSING_IT_THERE)

🔇 Additional comments (1)
content/en/docs/virtualization/virtual-machine.md (1)

68-68: Confirm vCPU sockets field type
Please verify the actual type of CPUTopology.Sockets in the KubeVirt API (it’s expected to be a plain integer count, not a resource.Quantity). If it is indeed *int, update the docs accordingly:

• File: content/en/docs/virtualization/virtual-machine.md
Line 68

Proposed diff if confirmed:

-| `resources.sockets`       | The number of CPU sockets allocated to the virtual machine (used to define vCPU topology)                   | `*quantity` | `null`       |
+| `resources.sockets`       | The number of CPU sockets allocated to the virtual machine (used to define vCPU topology)                   | `*int`      | `null`       |

@github-actions github-actions bot force-pushed the update-managed-apps-reference branch from 922fef9 to a277e33 Compare August 11, 2025 03:37
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
content/en/docs/virtualization/virtual-machine.md (1)

63-63: Pointer type with non-null default is inconsistent

systemDisk.storageClass is *string but default is replicated. With pointer types, the zero value is null; documenting a non-null default contradicts that and may mislead users.

Choose one, then apply consistently:

  • Keep *string and set default to null, or
  • Use plain string and keep a non-null default.

Option A (keep pointer, null default):

-| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `replicated` |
+| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `null`       |

Option B (plain string, non-null default):

-| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `*string`   | `replicated` |
+| `systemDisk.storageClass` | StorageClass used to store the data                                                                         | `string`    | `replicated` |
🧹 Nitpick comments (4)
content/en/docs/virtualization/virtual-machine.md (4)

52-54: Rename “Value” column to “Default” for clarity

The column currently lists default values, not arbitrary examples. Rename to avoid ambiguity.

-| Name                      | Description                                                                                                 | Type        | Value        |
+| Name                      | Description                                                                                                 | Type        | Default      |
 | ------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------- | ------------ |

57-57: Grammar/style: start with “Whether” and capitalize

Minor readability tweak.

-| `running`                 | if the virtual machine should be running                                                                    | `bool`      | `true`       |
+| `running`                 | Whether the virtual machine should be running                                                               | `bool`      | `true`       |

70-70: Fix sentence fragment per style hint

Add a subject for a complete sentence.

-| `sshKeys`                 | List of SSH public keys for authentication. Can be a single key or a list of keys.                          | `[]string`  | `[]`         |
+| `sshKeys`                 | List of SSH public keys for authentication. This can be a single key or a list of keys.                    | `[]string`  | `[]`         |

54-56: Clarify interaction between external and externalPorts

Readers may assume ports are forwarded regardless. Consider noting that externalPorts are effective only when external is true.

Example tweak (adjust wording as needed):

-| `externalPorts`           | Specify ports to forward from outside the cluster                                                           | `[]int`     | `[22]`       |
+| `externalPorts`           | Specify ports to forward from outside the cluster (effective only when `external` is `true`)                | `[]int`     | `[22]`       |
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 922fef9 and a277e33.

📒 Files selected for processing (10)
  • content/en/docs/applications/clickhouse.md (1 hunks)
  • content/en/docs/applications/ferretdb.md (0 hunks)
  • content/en/docs/applications/kafka.md (0 hunks)
  • content/en/docs/applications/mysql.md (0 hunks)
  • content/en/docs/applications/nats.md (0 hunks)
  • content/en/docs/applications/postgres.md (1 hunks)
  • content/en/docs/applications/rabbitmq.md (0 hunks)
  • content/en/docs/applications/redis.md (0 hunks)
  • content/en/docs/applications/tenant.md (1 hunks)
  • content/en/docs/virtualization/virtual-machine.md (1 hunks)
💤 Files with no reviewable changes (6)
  • content/en/docs/applications/nats.md
  • content/en/docs/applications/ferretdb.md
  • content/en/docs/applications/mysql.md
  • content/en/docs/applications/redis.md
  • content/en/docs/applications/kafka.md
  • content/en/docs/applications/rabbitmq.md
🚧 Files skipped from review as they are similar to previous changes (3)
  • content/en/docs/applications/tenant.md
  • content/en/docs/applications/postgres.md
  • content/en/docs/applications/clickhouse.md
🧰 Additional context used
🪛 LanguageTool
content/en/docs/virtualization/virtual-machine.md

[style] ~70-~70: To form a complete sentence, be sure to include a subject or ‘there’.
Context: ... of SSH public keys for authentication. Can be a single key or a list of keys. ...

(MISSING_IT_THERE)

🔇 Additional comments (1)
content/en/docs/virtualization/virtual-machine.md (1)

55-55: externalMethod default/type alignment looks good

Type is string and default is PortList per allowed values. This resolves the previous mismatch.

@NickVolynkin NickVolynkin force-pushed the update-managed-apps-reference branch 2 times, most recently from df598df to 1db00f7 Compare August 11, 2025 06:22
Co-authored-by: Andrei Kvapil <kvapss@gmail.com>

Signed-off-by: Nick Volynkin <nick.volynkin@gmail.com>
@NickVolynkin NickVolynkin force-pushed the update-managed-apps-reference branch from 1db00f7 to 93b9f83 Compare August 11, 2025 06:24
@NickVolynkin NickVolynkin merged commit b12235e into main Aug 11, 2025
5 checks passed
@NickVolynkin NickVolynkin deleted the update-managed-apps-reference branch August 11, 2025 06:25
@NickVolynkin NickVolynkin changed the title [experiment] [docs] Update Postgres docs generated with cozyvalues-gen [docs] Creating and Using Named VM Images Aug 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant