IAM: Instantiate DualWriter only when in single-tenant mode (#108558)

* Instantiate dual writer only in ST case

* minor cleanup

---------

Co-authored-by: Charandas Batra <charandas.batra@grafana.com>
This commit is contained in:
Victor Cinaglia
2025-07-24 09:33:53 -03:00
committed by GitHub
co-authored by Charandas Batra
parent 1c453cd81c
commit 4c17c1cbb6
2 changed files with 19 additions and 15 deletions
+3
View File
@@ -43,4 +43,7 @@ type IdentityAccessManagementAPIBuilder struct {
// Toggle for enabling authz management apis
enableAuthZApis bool
// Toggle for enabling dual writer
enableDualWriter bool
}
+16 -15
View File
@@ -65,6 +65,7 @@ func RegisterAPIService(
display: user.NewLegacyDisplayREST(store),
reg: reg,
enableAuthZApis: features.IsEnabledGlobally(featuremgmt.FlagKubernetesAuthzApis),
enableDualWriter: true,
}
apiregistration.RegisterAPI(builder)
@@ -127,23 +128,23 @@ func (b *IdentityAccessManagementAPIBuilder) UpdateAPIGroupInfo(apiGroupInfo *ge
userResource := legacyiamv0.UserResourceInfo
legacyStore := user.NewLegacyStore(b.store, b.legacyAccessClient)
// TODO: Figure out what's missing for the DualWriter setup in a MT setup
// MT app is unable to start if DW is configured
// store, err := grafanaregistry.NewRegistryStore(opts.Scheme, userResource, opts.OptsGetter)
// if err != nil {
// return err
// }
// dw, err := opts.DualWriteBuilder(userResource.GroupResource(), legacyStore, store)
// if err != nil {
// return err
// }
// storage[userResource.StoragePath()] = dw
storage[userResource.StoragePath()] = legacyStore
storage[userResource.StoragePath("teams")] = user.NewLegacyTeamMemberREST(b.store)
if b.enableDualWriter {
store, err := grafanaregistry.NewRegistryStore(opts.Scheme, userResource, opts.OptsGetter)
if err != nil {
return err
}
dw, err := opts.DualWriteBuilder(userResource.GroupResource(), legacyStore, store)
if err != nil {
return err
}
storage[userResource.StoragePath()] = dw
}
storage[userResource.StoragePath("teams")] = user.NewLegacyTeamMemberREST(b.store)
serviceAccountResource := legacyiamv0.ServiceAccountResourceInfo
storage[serviceAccountResource.StoragePath()] = serviceaccount.NewLegacyStore(b.store, b.legacyAccessClient)
storage[serviceAccountResource.StoragePath("tokens")] = serviceaccount.NewLegacyTokenREST(b.store)