Skip to content

🌱 Support hrobot:// ProviderID of upstream ccm.#72

Open
guettli wants to merge 14 commits intomainfrom
tg/support-new-bm-provider-id
Open

🌱 Support hrobot:// ProviderID of upstream ccm.#72
guettli wants to merge 14 commits intomainfrom
tg/support-new-bm-provider-id

Conversation

@guettli
Copy link

@guettli guettli commented Nov 3, 2025

Support hrobot:// ProviderID from upstream CCM

We want to support this use case: someone runs the upstream CCM in their cluster, then switches back to the legacy syself-ccm. In that scenario, Nodes with a hrobot:// ProviderID may already exist.

Additionally, we want that the Syself ccm can create the new format.

This PR includes

  • Reading ProviderID

    • When the CCM reads a bare-metal Node’s ProviderID, it supports both formats:

      • hcloud://bm-NNNN
      • hrobot://NNNN
  • Writing InstanceMetadata (ProviderID format)

    • When creating Node metadata via InstancesV2.InstanceMetadata, the CCM uses the legacy format (as before) unless the ccm was started with the flag --use-hrobot-provider-id-for-baremetal. If that flag was set, then the hrobot://NNNN format gets used.

Background

A Node’s ProviderID is only set once during bootstrapping. After it’s set, it never changes.

Both the upstream Hetzner CCM and (after this PR) syself-ccm support both formats, so existing Nodes are fine.

HCloud nodes are not affected by this change.

Attention: Your duty!

During bootstraping a new node, CAPI Provider Hetzner (CAPH) and the CCM must agree on the same ProviderID format. It is your duty to ensure that.

Alternative

If you start the kubelet with --provider-id XXXX, then the CCM does not set it.

Related:

✨ Support upstream hcloud-ccm. ProviderID changes to hrobot://NNNNN by guettli · Pull Request #1703 · syself/cluster-api-provider-hetzner

@guettli guettli requested a review from janiskemper January 30, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants