Skip to content

providerID not set automatically by CCM on OCI instances #503

@area47-irfan

Description

@area47-irfan

Hi team,

I'm running a self-hosted Kubernetes cluster on OCI with the latest version of oci-cloud-controller-manager (v1.31.0). I've followed the official instructions, including:

  • Setting --cloud-provider=external on all nodes
    
  • Setting --provider-id=ocid1.instance... manually on kubelet as a workaround
    
  • Using instance principal for authentication (with correct dynamic group policies)
    
  • Ensuring instance names match Kubernetes node names
    
  • Running the latest CCM version as a DaemonSet
    

However, I noticed that the providerID is not set automatically by the CCM. This leads to the node.cloudprovider.kubernetes.io/uninitialized=true taint not being removed, which prevents scheduling on those nodes until I manually patch them.

In the logs I also see:
error syncing 'node-name': failed to get instance metadata for node: error fetching node by provider ID: compartmentID annotation missing in the node.

This is confusing because I expected the CCM to:

  • Automatically detect the node instance ID via IMDS
    
  • Automatically set the providerID
    
  • Patch compartment-id annotation and remove the uninitialized taint
    

My questions:

  • Is CCM supposed to automatically set the providerID field, or is it mandatory to set it manually?
    
  • If automatic, what are the required conditions for it to work (e.g. IMDSv1 vs IMDSv2, auth headers, permissions)?
    
  • If manual, can this be clarified explicitly in the documentation under the "Preparing Your Cluster" section?
    

Thank you!

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