Summary
First of all, thank you for building and maintaining such a wonderful product!
Sveltos is a truly great project, and we really appreciate the value it brings to the multi-cluster community. 🙏✨
We would like to humbly propose adding native integration with the ClusterProfile API (SIG Multicluster) and its credential provider plugin model (KEP-5339).
Today Sveltos does not consume ClusterProfile, so it can’t leverage the standardized status.credentialProviders and the emerging Cluster Inventory ecosystem. By adopting ClusterProfile + KEP-5339, Sveltos could connect to managed clusters using short-lived credentials obtained via a pluggable exec flow (aligned with kubeconfig’s external credential provider protocol).
This one change could potentially address—and allow closing—the following issues all at once:
Background (why this is a re-proposal)
Previously, I opened an earlier proposal for ClusterProfile integration. At that time, ClusterProfile did not yet have the credentialProviders specification; it could only hold kubeconfigs. In that state, there was no meaningful functional difference between a SveltosCluster resource and a ClusterProfile, so the integration was understandably declined.
However, the situation has since changed significantly:
credentialProviders has been added to ClusterProfile, and implementations are landing.
- At recent events such as KubeCon, we observed engineers from providers like GCP and AWS actively aligning with ClusterProfile.
- This signals that ClusterProfile is becoming the upstream standard point of integration for credentials and inventory.
Given this, we believe that following this evolution early would carry meaningful benefits for Sveltos in terms of ecosystem alignment, security posture, and broader adoption. It could help Sveltos capture an even stronger share in the multi-cluster management space.
With the greatest respect, we would like to kindly re-propose native ClusterProfile integration, this time backed by the new credentialProviders functionality and its supporting ecosystem.
Why this matters (Motivation)
- Ecosystem alignment: ClusterProfile is becoming the common substrate for multi-cluster inventory and access. Without compatibility, Sveltos risks divergence from upstream conventions and tooling.
- Security posture: KEP-5339 places no secrets in ClusterProfile. Credentials are obtained out-of-tree via an exec plugin chosen at deploy time, enabling short-lived tokens, SSO/WIF/OIDC, and provider-agnostic flows.
- Operational flexibility: The plugin model avoids baking cloud-specific SDKs into Sveltos. Platform teams can pick/upgrade credential plugins independently of Sveltos releases.
- Ease of integration: There is a Go library implementation in the Cluster Inventory project designed to construct the cluster connection info from
ClusterProfile.status and invoke credential plugins. This keeps Sveltos changes minimal while providing maximum interoperability.
→ Implementation PR: Define plugin interface and consumer library
Suggested direction (High-level)
Would you consider:
- Adopting the ClusterProfile API as a first-class inventory source in Sveltos?
- Honoring
status.credentialProviders to discover the cluster’s accepted credential type(s) and connection parameters?
- Using the provided Go package from the Cluster Inventory project to obtain short-lived credentials via the exec plugin protocol (KEP-541 compatible I/O), then building the client config to talk to the target cluster?
Note: This request is intentionally framed as an integration and alignment proposal, not prescribing a specific internal design or plugin set. The goal is to let Sveltos naturally plug into the Cluster Inventory & ClusterProfile ecosystem and benefit from provider-maintained exec plugins.
Potential benefits to Project Sveltos
Backward compatibility
- This could be added alongside current Sveltos mechanisms. Users can opt into ClusterProfile-based integration without breaking existing flows.
Open questions (for discussion)
- Which credential types should be “known” by default vs. entirely user-configured?
- How should Sveltos surface errors/observability around plugin execution and token acquisition?
- What’s the minimal surface to declare ClusterProfile support (read-only of
status vs. deeper interactions)?
References
Summary
First of all, thank you for building and maintaining such a wonderful product!
Sveltos is a truly great project, and we really appreciate the value it brings to the multi-cluster community. 🙏✨
We would like to humbly propose adding native integration with the ClusterProfile API (SIG Multicluster) and its credential provider plugin model (KEP-5339).
Today Sveltos does not consume ClusterProfile, so it can’t leverage the standardized
status.credentialProvidersand the emerging Cluster Inventory ecosystem. By adopting ClusterProfile + KEP-5339, Sveltos could connect to managed clusters using short-lived credentials obtained via a pluggable exec flow (aligned with kubeconfig’s external credential provider protocol).This one change could potentially address—and allow closing—the following issues all at once:
Background (why this is a re-proposal)
Previously, I opened an earlier proposal for ClusterProfile integration. At that time, ClusterProfile did not yet have the
credentialProvidersspecification; it could only hold kubeconfigs. In that state, there was no meaningful functional difference between aSveltosClusterresource and aClusterProfile, so the integration was understandably declined.However, the situation has since changed significantly:
credentialProvidershas been added to ClusterProfile, and implementations are landing.Given this, we believe that following this evolution early would carry meaningful benefits for Sveltos in terms of ecosystem alignment, security posture, and broader adoption. It could help Sveltos capture an even stronger share in the multi-cluster management space.
With the greatest respect, we would like to kindly re-propose native ClusterProfile integration, this time backed by the new
credentialProvidersfunctionality and its supporting ecosystem.Why this matters (Motivation)
ClusterProfile.statusand invoke credential plugins. This keeps Sveltos changes minimal while providing maximum interoperability.→ Implementation PR: Define plugin interface and consumer library
Suggested direction (High-level)
Would you consider:
status.credentialProvidersto discover the cluster’s accepted credential type(s) and connection parameters?Potential benefits to Project Sveltos
Backward compatibility
Open questions (for discussion)
statusvs. deeper interactions)?References