oracle / oracle/oci-cloud-controller-manager

providerID not set automatically by CCM on OCI instances

Open
#503 3 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
158
Forks
108
PR merge metrics
No merged PRs in 30d

Description

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!

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the CCM node-sync behavior described in the logs and the official "Preparing Your Cluster" instructions. Determine whether providerID and the compartment-id annotation are expected to be set automatically, then clarify the required setup or manual steps in that documentation; done means the providerID is handled as documented and the uninitialized taint behavior is explained.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cloud, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.