Skip to content

[CI] VKE deploy intermittently times out during Helm create / API access #781

Description

@khalildai

Problem

The VKE release deploy workflow is intermittently failing against the Kubernetes API while the same workflow and repository head can succeed on adjacent releases. The failures occur after GitHub-hosted runner setup and chart-repository update, so this is not a self-hosted runner problem.

Recent evidence:

  • v2.2.80 run 30082329563: helm upgrade --install failed after about 64 seconds with create: failed to create: Timeout: request did not complete within requested timeout - context deadline exceeded.
  • v2.2.77 run 29898787812: Helm create failed with server was unable to return a response in the time allotted, but may still be processing the request (post secrets).
  • v2.2.74 run 29723466547: Kubernetes /version request timed out while connecting to the VKE endpoint.
  • v2.2.78 run 30057246254 succeeded, showing the path is intermittent rather than permanently misconfigured. v2.2.79 was cancelled and is not evidence of success or failure.

The v2.2.80 Cloud Installer/Upgrade Test succeeded separately; that does not establish that the VKE environment received the release.

Why this needs a durable fix

Blindly rerunning helm upgrade --install after an ambiguous create timeout is unsafe: the API server explicitly says it may still be processing the request. The workflow currently reports a red deploy but does not publish enough reconciliation evidence to distinguish “nothing applied” from “release partially/fully applied but response lost.”

Acceptance criteria

  • Add a bounded preflight for VKE API reachability before mutation, with an explicit diagnostic for DNS/TCP/TLS/API timeout stage.
  • On an ambiguous Helm timeout, query helm status/history and the relevant release Secret/objects before deciding whether a retry is safe.
  • Never retry a mutating Helm operation until the prior attempt is proven absent or reconciled.
  • Publish a concise receipt containing target environment, chart/app version, Helm revision/state, and the final safe decision (succeeded, confirmed absent, or manual reconciliation required) without exposing kubeconfig or credentials.
  • Demonstrate at least two consecutive fresh VKE deploy successes; include one run from a cold GitHub-hosted runner.

No rerun, deploy, kubeconfig, secret, or cluster mutation was performed while filing this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions