Skip to content

fix(e2e): increase HelmRelease readiness timeout for kubernetes test - #2033

Merged
Aleksei Sviridkin (lexfrei) merged 2 commits into
mainfrom
fix/e2e-kubernetes-helmrelease-timeout
Feb 11, 2026
Merged

Aleksei Sviridkin (lexfrei) merged 2 commits into
mainfrom
fix/e2e-kubernetes-helmrelease-timeout

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Feb 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Increase kubectl wait timeout for HelmRelease readiness from 1 minute to 5 minutes in the kubernetes E2E test
  • The ingress-nginx HelmRelease consistently times out with 1m after migrating from hostNetwork to NodePort Service
  • This causes deterministic E2E failures on kubernetes-latest across multiple PRs

Test plan

  • Verify kubernetes-latest E2E test passes without ingress-nginx timeout
  • Verify kubernetes-previous E2E test still passes

Summary by CodeRabbit

  • Chores
    • Enhanced Kubernetes component initialization by separating ingress-nginx readiness handling from the standard component batch with an extended timeout duration.

The 1-minute timeout for waiting on HelmRelease readiness is too short
for ingress-nginx after its migration from hostNetwork to NodePort
Service, causing consistent E2E failures on kubernetes-latest.

Increase the timeout to 5 minutes to allow sufficient time for all
components to become ready.

Co-Authored-By: Claude <[email protected]>
Signed-off-by: Aleksei Sviridkin <[email protected]>
@coderabbitai

coderabbitai Bot commented Feb 11, 2026 •

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The script's component readiness check logic has been refactored to handle ingress-nginx separately with an extended 5-minute timeout, while moving cilium, coredns, csi, and vsnap-crd into a consolidated batch wait loop.

Changes

Cohort / File(s) Summary
Kubernetes Component Readiness Handling
hack/e2e-apps/run-kubernetes.sh
Removed ingress-nginx from the component batch wait loop and added a separate explicit wait with 5-minute timeout after the loop completes. Cilium, coredns, csi, and vsnap-crd remain in the consolidated batch check.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Poem

🐰 Waiting patiently in a queue,
Most components grouped as one crew,
But ingress keeps its own race,
Five minutes to find its place!
Initialization flows just right,
With separated paths of might. 🚀

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: increasing the HelmRelease readiness timeout for the Kubernetes E2E test, which is the primary purpose of the PR.

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

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/e2e-kubernetes-helmrelease-timeout

No actionable comments were generated in the recent review. 🎉


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

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello Aleksei Sviridkin (@lexfrei), 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 resolves a persistent issue with end-to-end tests failing due to an insufficient timeout for HelmRelease readiness. By extending the wait period for critical components like ingress-nginx, the change aims to improve the reliability and stability of the Kubernetes E2E test suite, preventing unnecessary test failures caused by transient readiness delays.

Highlights

  • HelmRelease Readiness Timeout: Increased the kubectl wait timeout for HelmRelease readiness checks from 1 minute to 5 minutes within the Kubernetes E2E test suite.
  • Ingress-Nginx Stability: Addressed consistent timeouts observed for the ingress-nginx HelmRelease, which occurred after its migration from hostNetwork to NodePort Service and led to deterministic E2E failures on kubernetes-latest.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • hack/e2e-apps/run-kubernetes.sh
    • Modified the kubectl wait command to increase the timeout for HelmRelease readiness from 1 minute to 5 minutes.
Activity
  • No specific review comments or discussions have been recorded for this pull request yet.
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 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 (@gemini-code-assist) comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

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

@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 HelmRelease readiness checks in the E2E test from 1 to 5 minutes, aiming to resolve a consistent failure with the ingress-nginx component. The change is functional and directly addresses the problem. However, I've provided a suggestion to make the timeout increase more specific to ingress-nginx. Applying the longer timeout to all components in the loop could slow down failure detection for other components. A more targeted fix would improve the test suite's efficiency and maintainability.

Comment thread hack/e2e-apps/run-kubernetes.sh Outdated

for component in cilium coredns csi ingress-nginx vsnap-crd; do
kubectl wait hr kubernetes-${test_name}-${component} -n tenant-test --timeout=1m --for=condition=ready
kubectl wait hr kubernetes-${test_name}-${component} -n tenant-test --timeout=5m --for=condition=ready

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.

medium

This change increases the timeout for all components in the loop, not just ingress-nginx. While this fixes the immediate issue, it could slow down the feedback loop if another component (like cilium or coredns) fails to become ready, as the test will now wait for 5 minutes instead of 1 before failing for those components. For better precision and faster failure detection on other components, consider applying the longer timeout only to ingress-nginx.

For example, you could handle ingress-nginx outside the main loop, which would involve modifying lines 224-226:

  for component in cilium coredns csi vsnap-crd; do
      kubectl wait hr kubernetes-${test_name}-${component} -n tenant-test --timeout=1m --for=condition=ready
  done
  kubectl wait hr kubernetes-${test_name}-ingress-nginx -n tenant-test --timeout=5m --for=condition=ready

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good point. Applied the targeted fix: 1m timeout stays for cilium/coredns/csi/vsnap-crd, 5m only for ingress-nginx.

@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as ready for review February 11, 2026 14:38
@dosubot dosubot Bot added size/XS This PR changes 0-9 lines, ignoring generated files kind/bug Categorizes issue or PR as related to a bug labels Feb 11, 2026
Keep the 1-minute timeout for other components (cilium, coredns, csi,
vsnap-crd) to preserve fast failure detection, and apply the 5-minute
timeout specifically to ingress-nginx which needs it after the
hostNetwork to NodePort migration.

Co-Authored-By: Claude <[email protected]>
Signed-off-by: Aleksei Sviridkin <[email protected]>
@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Feb 11, 2026
@lexfrei
Aleksei Sviridkin (lexfrei) merged commit 1b25c72 into main Feb 11, 2026
5 checks passed
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the fix/e2e-kubernetes-helmrelease-timeout branch February 11, 2026 15:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/bug Categorizes issue or PR as related to a bug lgtm This PR has been approved by a maintainer 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