Skip to content

[gpu-op] NVIDIADriver does not schedule a retry when its secretEnv Secret is missing #3208

Open

Description

@rahulait

When a NVIDIADriver references a secretEnv Secret that does not exist yet, reconciliation records error conditions but returns an empty result and a nil error. No retry is scheduled, and the controller has no watch for the referenced Secret.

This can occur when GitOps creates the NVIDIADriver before another controller creates its Secret.

Steps to reproduce

  1. Create a NVIDIADriver with spec.secretEnv referencing a Secret that does not exist in the GPU Operator namespace:

    spec:
      secretEnv: driver-env
  2. Allow reconciliation to run and record the missing-Secret error.

  3. Create the referenced Secret in the GPU Operator namespace.

Expected behavior

The controller retries reconciliation and proceeds once the Secret exists, without requiring an unrelated event.

While the dependency is missing, status.state should be notReady, consistent with the error conditions.

Actual behavior

The Secret lookup failure returns:

return reconcile.Result{}, nil

Creating the Secret alone does not enqueue the NVIDIADriver. Recovery depends on another qualifying event, such as a driver spec change, a relevant node-label change, or an operator restart.

Additionally, if the driver was previously ready, this branch can leave contradictory status:

status:
  state: ready
  conditions:
    - type: Ready
      status: "False"
    - type: Error
      status: "True"
      reason: ReconcileFailed

Verification

Verified against main at 9339140ceff2b60ca6f2c8e56d15d253044c30f4 using a focused unit test:

  • A missing Secret returns a nil error, Requeue=false, and RequeueAfter=0.
  • A previously ready driver retains status.state=ready while its conditions report an error.
  • An existing-Secret control proceeds to state synchronization normally.

Relevant Secret lookup and error handling

Suggested fix

Set the driver's state to notReady and return the Secret lookup error so the controller's configured retry backoff applies.

Alternatively, handle NotFound with a bounded RequeueAfter and return other lookup errors normally. A watch for referenced Secrets could provide faster recovery but is not required for a minimal fix.

Activity

  1. added
    good-first-issueIssues that are friendly to new contributors
    and removed
    needs-triageissue or PR has not been assigned a priority-px label
    on Nov 9, 2026
  2. Wizard52007 commented on Nov 10, 2026

    @Wizard52007

    Hi!

    I'd be interested in contributing a fix for this issue.

    Before starting implementation, I wanted to clarify whether the project permits AI-assisted development using tools such as Antigravity and ChatGPT.

    I intend to use these tools for codebase exploration, implementation assistance, and debugging, while personally reviewing, understanding, testing, and taking full responsibility for every change.

    I will also follow the project's contribution guidelines and DCO sign-off requirements.

    Would this approach be acceptable for a contribution to GPU Operator?

    Also, is anyone currently working on this issue?

    Thanks!

  3. rahulait commented on Nov 10, 2026

    @rahulait
    ContributorAuthor

    @Wizard52007 , yes, that sounds ok. I'll assign the issue to you.

  4. Wizard52007 commented on Nov 11, 2026

    @Wizard52007

    thankss !!

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

Metadata

Metadata

Assignees

Labels

good-first-issueIssues that are friendly to new contributors

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions