Skip to content

fix(kubernetes): add spec.timeout to tenant CSI HelmRelease - #2727

Merged
Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
ci/tenant-csi-timeout
Jun 16, 2026
Merged

fix(kubernetes): add spec.timeout to tenant CSI HelmRelease#2727
Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
ci/tenant-csi-timeout

Conversation

@myasnikovdaniil

@myasnikovdaniil myasnikovdaniil commented May 25, 2026

Copy link
Copy Markdown
Contributor

What this PR does

Adds spec.timeout: 10m to the kubevirt-csi-node HelmRelease template in packages/apps/kubernetes/templates/helmreleases/csi.yaml, aligning it with every other tenant addon HR in the same directory (cilium, coredns, ingress-nginx, etc. — all set timeout: 10m). csi.yaml was the only one missing it; commit 9f9d8f8 ("Align timeouts for HelmReleases") missed this template.

Symptom

E2E NFS test times out waiting for nfs-test-pod to reach Succeeded. Cozyreport events show the tenant csi HR running an Install → Uninstall → Install remediation cycle. With install.remediation.retries: -1 and the default 5m Helm timeout, kstatus marks the kubevirt-csi-node DaemonSet InProgress past 5m on a slow tenant control-plane bringup (Kamaji APIs flapping, VM image pulls), helm-controller times out, the remediation uninstalls the DaemonSet, then reinstalls. Any volume mount in flight at that moment is wedged.

Origin

Single commit lifted unchanged from #2619.

Release note

NONE

Summary by CodeRabbit

  • Chores
    • Updated the Container Storage Interface (CSI) Helm release settings to include a spec.timeout of 10 minutes when the etcd namespace value is set (keeping the existing spec.interval at 5 minutes).

@github-actions github-actions Bot added size/XS This PR changes 0-9 lines, ignoring generated files area/kubernetes Issues or PRs related to the tenant Kubernetes app kind/bug Categorizes issue or PR as related to a bug labels May 25, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 kubevirt-csi-node HelmRelease configuration by increasing the timeout to 10 minutes. This change addresses issues where slow control-plane bringups caused premature remediation cycles, ensuring that the CSI component has sufficient time to reach a healthy state.

Highlights

  • Configuration Update: Added spec.timeout: 10m to the kubevirt-csi-node HelmRelease template.
  • Consistency Alignment: Aligned the CSI HelmRelease timeout with other tenant addon HelmReleases to ensure uniform behavior across the platform.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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 by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

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 (@gemini-code-assist) Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the 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 counterproductive. You can react with 👍 and 👎 on Gemini (@gemini-code-assist) comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

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.

@coderabbitai

coderabbitai Bot commented May 25, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c69ea0d3-2d56-4d4b-a1c9-110bc9cad1fe

📥 Commits

Reviewing files that changed from the base of the PR and between 921ecc2 and d8ba954.

📒 Files selected for processing (1)
  • packages/apps/kubernetes/templates/helmreleases/csi.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/apps/kubernetes/templates/helmreleases/csi.yaml

📝 Walkthrough

Walkthrough

This PR adds a 10-minute timeout configuration to the CSI HelmRelease template. The timeout is applied conditionally when the etcd namespace is configured, ensuring that CSI deployment operations complete within a bounded time window.

Changes

CSI Timeout Configuration

Layer / File(s) Summary
CSI HelmRelease timeout
packages/apps/kubernetes/templates/helmreleases/csi.yaml
Adds spec.timeout: 10m to the CSI HelmRelease conditional branch when .Values._namespace.etcd is set.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 A timeout so swift,
CSI gets a gift—
Ten minutes to deploy,
No endless wait, hooray!
When etcd's around, the clock spins 'round.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding spec.timeout to the tenant CSI HelmRelease, which is the precise modification described in the raw summary and PR objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/tenant-csi-timeout

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

Comment @coderabbitai help to get the list of available commands and usage tips.

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

Copy link
Copy Markdown
Contributor

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 increases the timeout for the CSI HelmRelease to 10 minutes within the Kubernetes app package. The reviewer pointed out that the PR body's release note does not follow the required format specified in the repository style guide and suggested using a more descriptive entry.

sharding.fluxcd.io/key: tenants
spec:
interval: 5m
timeout: 10m

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

low

The release note in the PR body is set to NONE, which does not follow the required format specified in the repository style guide. Since this change fixes a bug that can cause wedged volume mounts, it should have a descriptive release note following the type(scope): human-readable changelog entry format (e.g., fix(kubernetes): increase timeout for CSI HelmRelease).

References
  1. PR body must contain a release note block in the format type(scope): human-readable changelog entry. Flag any PR whose body has no release-note block or lacks the correct format. (link)

@myasnikovdaniil myasnikovdaniil self-assigned this May 28, 2026
@myasnikovdaniil
myasnikovdaniil force-pushed the ci/tenant-csi-timeout branch 2 times, most recently from bfa923b to 39b8af5 Compare June 8, 2026 14:59
@myasnikovdaniil
myasnikovdaniil changed the base branch from main to daniil/split-drop-retry June 8, 2026 14:59
@lexfrei
Aleksei Sviridkin (lexfrei) changed the base branch from daniil/split-drop-retry to main June 9, 2026 14:21

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM — one-line change aligns the tenant CSI HelmRelease with every workload-bearing sibling; the fix is correct and minimal.

Business context: the tenant csi HelmRelease runs with remediation.retries: -1 and the default 5m Helm timeout, so a slow tenant control-plane bringup trips an Install→Uninstall→Install remediation cycle that wedges in-flight volume mounts (surfaces as the E2E NFS test timeout).

Verified: the csi HelmRelease does carry remediation.retries: -1; 16 of 19 HelmReleases in packages/apps/kubernetes/templates/helmreleases/ already set timeout: 10m; commit 9f9d8f85 ("Allign timeouts for HelmReleases") is real and missed this template.

Non-blocking follow-ups

  1. The description says csi.yaml "was the only one missing" the timeout, but prometheus-operator-crds.yaml and vertical-pod-autoscaler-crds.yaml in the same directory still lack timeout (they fall back to 5m). They are CRD-only installs (fast, unlikely to hit the wall), so low priority — but for full consistency with 9f9d8f85's intent they could take timeout: 10m too.
  2. The release-note block is NONE; a bug fix that prevents wedged volume mounts arguably warrants a fix(kubernetes): … changelog line. Style-guide nit only.

Aligns kubevirt-csi-node HR with every other tenant addon HR in
packages/apps/kubernetes/templates/helmreleases/ (cilium, coredns,
ingress-nginx, etc.) — all set timeout: 10m, csi.yaml was the only
exception. 9f9d8f8 ("Allign timeouts for HelmReleases") missed it.

Symptom: e2e NFS test (hack/e2e-apps/run-kubernetes.sh) times out
waiting for nfs-test-pod to reach Succeeded. Cozyreport events show
the tenant csi HR running Install -> Uninstall -> Install remediation
cycles. With install.remediation.retries: -1 and the default 5m Helm
timeout, kstatus marks the kubevirt-csi-node DaemonSet 'InProgress'
past 5m on a slow tenant control-plane bringup (Kamaji APIs flapping,
VM image pulls), helm-controller times out, the remediation uninstalls
the DaemonSet, then reinstalls. Any volume mount in flight at that
moment is wedged.

Observed on PR #2619 CI run 26142986969: csi HR remediation at
~07:07 happened ~10 min into the nfs-test-pod wait, killing the
mount and timing out the pod-Succeeded condition.

10m matches the surrounding HRs and gives the DaemonSet headroom
without changing remediation semantics on truly-broken installs.

Signed-off-by: Myasnikov Daniil <myasnikovdaniil2001@gmail.com>
(cherry picked from commit 866588f)
@myasnikovdaniil
myasnikovdaniil force-pushed the ci/tenant-csi-timeout branch from 921ecc2 to d8ba954 Compare June 16, 2026 09:21
@lexfrei
Aleksei Sviridkin (lexfrei) merged commit 39f3ac7 into main Jun 16, 2026
12 of 17 checks passed
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the ci/tenant-csi-timeout branch June 16, 2026 10:20
@github-actions

Copy link
Copy Markdown

Successfully created backport PR for release-1.4:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/kubernetes Issues or PRs related to the tenant Kubernetes app backport Should change be backported on previous release kind/bug Categorizes issue or PR as related to a bug size/XS This PR changes 0-9 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants