oci-cloud-controller-manager icon indicating copy to clipboard operation
oci-cloud-controller-manager copied to clipboard

providerID not set automatically by CCM on OCI instances

Open area47-irfan opened this issue 10 months ago • 0 comments

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!

area47-irfan avatar Jul 04 '25 10:07 area47-irfan