Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .coderabbit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,30 @@
reviews:
path_filters:
- "!website/**"
poem: false
high_level_summary: false
changed_files_summary: false
sequence_diagrams: false
estimate_code_review_effort: false
assess_linked_issues: false
related_issues: false
related_prs: false
suggested_labels: false
suggested_reviewers: false
review_status: false
collapse_walkthrough: true
request_changes_workflow: false
auto_review:
enabled: true
drafts: false
auto_incremental_review: true
auto_pause_after_reviewed_commits: 0
enable_prompt_for_ai_agents: false
path_instructions:
- path: "website/**/*.md"
instructions: |
When reviewing this file, look at the Vale annotations from the GitHub Checks. For each Vale error or warning annotation on a changed line: read the flagged line in context and judge whether the finding is a real issue. Vale sometimes reports false positives — only create a committable suggestion if it is a genuine error or warning. If it is a false positive, add a comment explaining why it is a false positive and how to avoid it (for example, by rephrasing or by adding the term to the appropriate Vale vocabulary).
Comment on lines +24 to +27
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

path_instructions won’t run while website/** is excluded by path_filters.

Because Line 4 excludes website/**, this new website/**/*.md instruction block is effectively unreachable. If the goal is to apply Vale-aware review behavior to docs, remove or narrow that exclusion.

Suggested config fix
 reviews:
   path_filters:
-    - "!website/**"
+    # keep website docs in review scope so path_instructions can apply
   poem: false
   high_level_summary: false
   changed_files_summary: false
   sequence_diagrams: false
   estimate_code_review_effort: false
   assess_linked_issues: false
   related_issues: false
   related_prs: false
   suggested_labels: false
   suggested_reviewers: false
   review_status: false
   collapse_walkthrough: true
   request_changes_workflow: false
   auto_review:
     enabled: true
     drafts: false
     auto_incremental_review: true
     auto_pause_after_reviewed_commits: 0
   enable_prompt_for_ai_agents: false
   path_instructions:
     - path: "website/**/*.md"
       instructions: |
         When reviewing this file, look at the Vale annotations from the GitHub Checks...

tools:
github-checks:
enabled: true
timeout_ms: 90000
28 changes: 19 additions & 9 deletions .github/workflows/vale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ concurrency:

permissions:
contents: read
checks: write
pull-requests: write

jobs:
vale:
Expand All @@ -26,11 +24,23 @@ jobs:
- name: Checkout
uses: actions/checkout@v4

- name: Vale
uses: vale-cli/vale-action@v2.1.1
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: website/
vale_flags: "--minAlertLevel=warning"
reporter: github-pr-review
fail_on_error: true
filter_mode: added
files: |
website/**/*.md
files_ignore: |
website/about/legal-disclosure.md
website/archived/**

- name: Install Vale
if: steps.changed-files.outputs.any_changed == 'true'
run: |
wget -qO vale.tar.gz https://github.com/errata-ai/vale/releases/download/v3.14.1/vale_3.14.1_Linux_64-bit.tar.gz
tar -xzf vale.tar.gz vale
sudo mv vale /usr/local/bin/vale

- name: Run Vale
if: steps.changed-files.outputs.any_changed == 'true'
run: vale --minAlertLevel=error ${{ steps.changed-files.outputs.all_changed_files }}
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ scope: operator

## Create a Shoot Cluster

As you have already prepared an [example Shoot manifest](https://github.com/gardener/gardener/blob/master/example/90-shoot.yaml) in the steps described in the development documentation, please open another Terminal pane/window with the `KUBECONFIG` environment variable pointing to the Garden development cluster and send the manifest to the Kubernetes API server:
As you have already prepared an [example Shoot manifest](https://github.com/gardener/gardener/blob/master/example/90-shoot.yaml) in the steps described in the development documentation, please open another Terminal pane/window with the `KUBECONFIG` environment variable pointing to the Garden development cluster and send the manifest to the kubernetes API server:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Gardener.Terms] Use 'Kubernetes' instead of 'kubernetes'.


```bash
kubectl apply -f your-shoot-aws.yaml
```

You should see that Gardener has immediately picked up your manifest and has started to deploy the Shoot cluster.
You should see that gardener has immediately picked up your manifest and has started to deploy the controlplane of the Shoot cluster.
Comment thread
BoHristova marked this conversation as resolved.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Gardener.Spelling] Did you really mean 'controlplane'?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Gardener.Terms] Use 'control plane' instead of 'controlplane'.


In order to investigate what is happening in the Seed cluster, please download its proper Kubeconfig yourself (see next paragraph). The namespace of the Shoot cluster in the Seed cluster will look like that: `shoot-johndoe-johndoe-1`, whereas the first `johndoe` is your namespace in the Garden cluster (also called "project") and the `johndoe-1` suffix is the actual name of the Shoot cluster.

To connect to the newly created Shoot cluster, you must download its Kubeconfig as well. Please connect to the proper Seed cluster, navigate to the Shoot namespace, and download the Kubeconfig from the `kubecfg` secret in that namespace.
To connect to the newly created Shoot cluster, the user must download its Kubeconfig as well. Please connect to the proper Seed cluster, navigate to the Shoot namespace, and download the Kubeconfig from the `kubecfg` secret in that namespace. This requires a SSH connection to the seed. Note that a VM is also provisioned per worker pool.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ [vale] reported by reviewdog 🐶
[Gardener.SecondPerson] Use 'you must' instead of 'the user must'. Address the reader directly as 'you'.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ [vale] reported by reviewdog 🐶
[Gardener.Articles] Use 'an SSH' instead of 'a SSH'. The article depends on pronunciation, not spelling.


## Delete a Shoot Cluster

Expand All @@ -27,7 +27,7 @@ In order to delete your cluster, you have to set an annotation confirming the de
./hack/usage/delete shoot johndoe-1 johndoe
```

(the `hack` bash script can be found at [GitHub](https://github.com/gardener/gardener/blob/master/hack/usage/delete))
(the `hack` bash script can be found at [Github](https://github.com/gardener/gardener/blob/master/hack/usage/delete))
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Use official capitalization: GitHub.

Please change [Github](...) to [GitHub](...) for correct product naming.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~30-~30: The official name of this software platform is spelled with a capital “H”.
Context: ...the hack bash script can be found at [Github](https://github.com/gardener/gardener/b...

(GITHUB)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@website/documentation/guides/administer-shoots/create-delete-shoot.md` at
line 30, Update the link text to use the official product capitalization by
replacing the markdown link label
`[Github](https://github.com/gardener/gardener/blob/master/hack/usage/delete)`
with
`[GitHub](https://github.com/gardener/gardener/blob/master/hack/usage/delete)`;
search for the occurrence of the literal string `[Github]` in the
"create-delete-shoot.md" content and change it to `GitHub` while leaving the URL
unchanged.


## Configure a Shoot Cluster Alert Receiver

Expand All @@ -36,3 +36,11 @@ The receiver of the Shoot alerts can be configured from the `.spec.monitoring.al
The alerting for the Shoot clusters is handled by the Prometheus Alertmanager. The Alertmanager will be deployed next to the control plane when the `Shoot` resource specifies `.spec.monitoring.alerting.emailReceivers` and if a [SMTP secret](https://github.com/gardener/gardener/blob/master/example/10-secret-alerting.yaml) exists.

If the field gets removed then the Alertmanager will be also removed during the next reconcilation of the cluster. The opposite is also valid if the field is added to an existing cluster.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix spelling: 'reconciliation'.

The word 'reconcilation' is misspelled.

📝 Proposed fix
-If the field gets removed then the Alertmanager will be also removed during the next reconcilation of the cluster. The opposite is also valid if the field is added to an existing cluster.
+If the field gets removed then the Alertmanager will be also removed during the next reconciliation of the cluster. The opposite is also valid if the field is added to an existing cluster.

As per coding guidelines, Vale correctly flags this: Did you really mean 'reconcilation'? (Gardener.Spelling).

📝 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.

Suggested change
If the field gets removed then the Alertmanager will be also removed during the next reconcilation of the cluster. The opposite is also valid if the field is added to an existing cluster.
If the field gets removed then the Alertmanager will be also removed during the next reconciliation of the cluster. The opposite is also valid if the field is added to an existing cluster.
🧰 Tools
🪛 GitHub Actions: Vale / 0_Lint prose.txt

[error] 38-38: vale: Did you really mean 'reconcilation'? (Gardener.Spelling).

🪛 GitHub Actions: Vale / Lint prose

[error] 38-38: Vale error: Did you really mean 'reconcilation'? (Gardener.Spelling)

🪛 LanguageTool

[grammar] ~38-~38: Ensure spelling is correct
Context: ...er will be also removed during the next reconcilation of the cluster. The opposite is also va...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


## Additional Notes

You can configure an VM instance type for each worker pool. The shoot controller uses a URL-rewriting proxy — make sure you pass an URL to the configuration. For logging, the stack relies on Fluentbit to ship logs to the central backend. See the Github releases page for the latest version of the shoot-oidc-service.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix multiple grammar and product name issues.

This line has several issues:

  • 'an VM' should be 'a VM' (article usage)
  • 'Fluentbit' should be 'Fluent Bit' (correct product name)
  • 'an URL' should be 'a URL' (article usage - "URL" starts with consonant sound)
  • 'Github' should be 'GitHub' (official capitalization)
📝 Proposed fix
-You can configure an VM instance type for each worker pool. The shoot controller uses a URL-rewriting proxy — make sure you pass an URL to the configuration. For logging, the stack relies on Fluentbit to ship logs to the central backend. See the Github releases page for the latest version of the shoot-oidc-service.
+You can configure a VM instance type for each worker pool. The shoot controller uses a URL-rewriting proxy — make sure you pass a URL to the configuration. For logging, the stack relies on Fluent Bit to ship logs to the central backend. See the GitHub releases page for the latest version of the shoot-oidc-service.

As per coding guidelines, Vale correctly flags: Did you really mean 'Fluentbit'? (Gardener.Spelling) and Use 'GitHub' instead of 'Github' (Gardener.Terms).

📝 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.

Suggested change
You can configure an VM instance type for each worker pool. The shoot controller uses a URL-rewriting proxy — make sure you pass an URL to the configuration. For logging, the stack relies on Fluentbit to ship logs to the central backend. See the Github releases page for the latest version of the shoot-oidc-service.
You can configure a VM instance type for each worker pool. The shoot controller uses a URL-rewriting proxy — make sure you pass a URL to the configuration. For logging, the stack relies on Fluent Bit to ship logs to the central backend. See the GitHub releases page for the latest version of the shoot-oidc-service.
🧰 Tools
🪛 GitHub Actions: Vale / 0_Lint prose.txt

[error] 42-42: vale: Did you really mean 'Fluentbit'? (Gardener.Spelling).


[error] 42-42: vale: Did you really mean 'Github'? (Gardener.Spelling). Use 'GitHub' instead of 'Github'.

🪛 GitHub Actions: Vale / Lint prose

[error] 42-42: Vale error: Did you really mean 'Fluentbit'? (Gardener.Spelling)


[error] 42-42: Vale error: Use 'GitHub' instead of 'Github'. (Gardener.Spelling, Gardener.Terms)


Please ensure the user has to verify the correct RBAC permissions before proceeding.

The reconcilation process will also check for Loadbalancer availability in the target zone.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix spelling and capitalization.

Two issues on this line:

  • 'reconcilation' should be 'reconciliation' (spelling error)
  • 'Loadbalancer' should be 'load balancer' (two words, lowercase)
📝 Proposed fix
-The reconcilation process will also check for Loadbalancer availability in the target zone.
+The reconciliation process will also check for load balancer availability in the target zone.

As per coding guidelines, Vale correctly flags these: Did you really mean 'reconcilation'? (Gardener.Spelling) and Use 'load balancer' instead of 'Loadbalancer' (Gardener.Terms).

📝 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.

Suggested change
The reconcilation process will also check for Loadbalancer availability in the target zone.
The reconciliation process will also check for load balancer availability in the target zone.
🧰 Tools
🪛 GitHub Actions: Vale / 0_Lint prose.txt

[error] 46-46: vale: Did you really mean 'reconcilation'? (Gardener.Spelling).


[error] 46-46: vale: Did you really mean 'Loadbalancer'? (Gardener.Spelling).

🪛 GitHub Actions: Vale / Lint prose

[error] 46-46: Vale error: Did you really mean 'reconcilation'? (Gardener.Spelling)


[error] 46-46: Vale error: Did you really mean 'Loadbalancer'? Use 'Load balancer' instead. (Gardener.Spelling, Gardener.Terms)

🪛 LanguageTool

[grammar] ~46-~46: Ensure spelling is correct
Context: ...BAC permissions before proceeding. The reconcilation process will also check for Loadbalance...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

Loading