Skip to content

Commit 1178c49

Browse files
committed
keps: document MultiKueue migration to accessProviders
1 parent 7f0f218 commit 1178c49

1 file changed

Lines changed: 19 additions & 6 deletions

File tree

keps/693-multikueue/README.md

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ The controller obtains cluster credentials based on the `MultiKueueCluster` spec
258258

259259
The authentication flow is as follows:
260260
1. The controller reads the `ClusterProfile` object referenced by the `MultiKueueCluster`. The `ClusterProfile` contains a list of access providers.
261-
2. The controller uses this configuration to match the access provider with the credentials provider and invoke the credential plugin binary. The list of credentials providers is configured in the `CredentialsProviders` section under `ClusterProfile` in the `MultiKueue` in the Configuration API.
261+
2. The controller uses this configuration to match the cluster access provider with a configured access provider and invoke the credential plugin binary. The list of access providers is configured in the `accessProviders` section under `clusterProfile` in the `MultiKueue` Configuration API.
262262

263263
```go
264264
type MultiKueue struct {
@@ -270,20 +270,33 @@ type MultiKueue struct {
270270

271271
// ClusterProfile defines configuration for using the ClusterProfile API in MultiKueue.
272272
type ClusterProfile struct {
273+
// AccessProviders defines a list of providers to obtain access to worker clusters
274+
// using the ClusterProfile API.
275+
AccessProviders []ClusterProfileAccessProvider `json:"accessProviders,omitempty"`
276+
273277
// CredentialsProviders defines a list of providers to obtain credentials of worker clusters
274278
// using the ClusterProfile API.
275-
CredentialsProviders []ClusterProfileCredentialsProvider `json:"credentialsProviders,omitempty"`
279+
// Deprecated: Use AccessProviders instead.
280+
CredentialsProviders []ClusterProfileAccessProvider `json:"credentialsProviders,omitempty"`
276281
}
277282

278-
// ClusterProfileCredentialsProvider defines a credentials provider in the ClusterProfile API.
279-
type ClusterProfileCredentialsProvider struct {
283+
// ClusterProfileAccessProvider defines an access provider in the ClusterProfile API.
284+
type ClusterProfileAccessProvider struct {
280285
// Name is the name of the provider.
281286
Name string `json:"name"`
282-
// ExecConfig is the exec configuration to obtain credentials.
287+
// ExecConfig is the exec configuration to obtain credentials.
283288
ExecConfig clientcmdapi.ExecConfig `json:"execConfig"`
284289
}
290+
291+
// ClusterProfileCredentialsProvider defines a credentials provider in the ClusterProfile API.
292+
// Deprecated: Use ClusterProfileAccessProvider instead.
293+
type ClusterProfileCredentialsProvider = ClusterProfileAccessProvider
285294
```
286295

296+
The `credentialsProviders` field remains accepted for backwards compatibility. If both `accessProviders` and `credentialsProviders` are specified, the controller uses providers from both fields. When both fields specify a provider with the same name, the provider in `accessProviders` takes precedence.
297+
298+
On the ClusterProfile API side, Kueue uses `status.accessProviders` as the preferred source of cluster access information. The deprecated `status.credentialProviders` field remains supported by the ClusterProfile API compatibility layer.
299+
287300
3. The plugin is responsible for the actual authentication process. This might involve calling an external HTTP endpoint (e.g., a cloud provider's metadata service or an OIDC provider) to generate a short-lived authentication token. The details of this process are specific to the plugin and are opaque to Kueue. It returns the credentials, including the token, to the controller.
288301
4. The controller uses these credentials to configure a Kubernetes client for the worker cluster.
289302

@@ -525,6 +538,7 @@ Graduation to beta criteria:
525538
* Roadmap for missing features is defined.
526539

527540
## Implementation History
541+
* 2026-06-09 Add ClusterProfile accessProviders configuration and deprecate credentialsProviders.
528542
* 2023-11-28 Initial KEP.
529543

530544
## Drawbacks
@@ -538,4 +552,3 @@ MultiKueue has some drawbacks.
538552
## Alternatives
539553
* Use Armada or Multi Cluster App Dispatcher.
540554
* Use multicluster-specific Job APIs.
541-

0 commit comments

Comments
 (0)