-
Notifications
You must be signed in to change notification settings - Fork 95
Open
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!
Metadata
Metadata
Assignees
Labels
No labels