-
Notifications
You must be signed in to change notification settings - Fork 15
[docs] Creating and Using Named VM Images #276
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Note Other AI code review bot(s) detectedCodeRabbit 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 failedThe pull request is closed. WalkthroughIntroduces 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
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
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~4 minutes Possibly related issues
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
✅ Deploy Preview for cozystack ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this 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
, andbootstrap
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
anddatabases
have been added. This includes specific nested fields likeusers[name].password
,users[name].replication
,databases[name].roles
(withadmin
andreadonly
sub-roles), anddatabases[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
-
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. ↩
There was a problem hiding this 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` | `` | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
| `storageClass` | StorageClass used to store the data | `string` | `` | | |
| `storageClass` | StorageClass used to store the data | `string` | `""` | |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 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` | | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 default100
.backup.enabled
no longer shows the defaultfalse
.backup.schedule
no longer shows the example cron expression.bootstrap.enabled
no longer shows the defaultfalse
.
If these defaults are still applicable, please consider adding them back to the Value
column. It would significantly improve the documentation's usefulness.
There was a problem hiding this comment.
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
There was a problem hiding this 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 representationThe 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 asnull
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 explicitnull
or{}
. Adopt one style (preferablynull
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 entriesRows such as
users[name].password
anddatabases[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
andbackup.s3SecretKey
are ordinarystring
types, but they hold credentials. Label them asstring (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
: Clarifybootstrap.recoveryTime
default behaviourThe description states “If left empty, will restore latest” yet the Value column is blank. To avoid misunderstandings, explicitly put
""
(empty string) ornull
in the Value column so the behaviour is discoverable at a glance.
2d231ab
to
0c6cebc
Compare
There was a problem hiding this 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
📒 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)
| `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` | `{}` | |
There was a problem hiding this comment.
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:
- Keep
*string
and set default tonull
, or - 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.
0c6cebc
to
38b474a
Compare
There was a problem hiding this 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 inconsistentA 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 tonull
, 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 clarityThis 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 hintMinor 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
📒 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 descriptionDefault is now a valid string ("PortList"), matching the declared
string
type and allowed values. Good fix.
38b474a
to
922fef9
Compare
There was a problem hiding this 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 withstring
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 isreplicated
(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 sentenceLanguageTool 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 onlyDocs 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 asstring | []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 clarityUse “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 fieldsClarify 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
📒 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 ofCPUTopology.Sockets
in the KubeVirt API (it’s expected to be a plain integer count, not aresource.Quantity
). If it is indeed*int
, update the docs accordingly:• File:
content/en/docs/virtualization/virtual-machine.md
Line 68Proposed 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` |
922fef9
to
a277e33
Compare
There was a problem hiding this 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 isreplicated
. 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 tonull
, 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 clarityThe 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 capitalizeMinor 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 hintAdd 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 externalPortsReaders may assume ports are forwarded regardless. Consider noting that
externalPorts
are effective only whenexternal
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
📒 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 goodType is string and default is PortList per allowed values. This resolves the previous mismatch.
df598df
to
1db00f7
Compare
Co-authored-by: Andrei Kvapil <kvapss@gmail.com> Signed-off-by: Nick Volynkin <nick.volynkin@gmail.com>
1db00f7
to
93b9f83
Compare
Summary by CodeRabbit