Storage: Remove unified storage feature flag (#92192)
remove unified storage flag
This commit is contained in:
@@ -121,7 +121,6 @@ Experimental features might be changed or removed without prior notice.
|
||||
| `canvasPanelNesting` | Allow elements nesting |
|
||||
| `disableSecretsCompatibility` | Disable duplicated secret storage in legacy tables |
|
||||
| `logRequestsInstrumentedAsUnknown` | Logs the path for requests that are instrumented as unknown |
|
||||
| `unifiedStorage` | SQL-based k8s storage |
|
||||
| `showDashboardValidationWarnings` | Show warnings when dashboards do not validate against the schema |
|
||||
| `mysqlAnsiQuotes` | Use double quotes to escape keyword in a MySQL query |
|
||||
| `alertingBacktesting` | Rule backtesting API for alerting |
|
||||
|
||||
@@ -42,7 +42,6 @@ export interface FeatureToggles {
|
||||
logRequestsInstrumentedAsUnknown?: boolean;
|
||||
topnav?: boolean;
|
||||
grpcServer?: boolean;
|
||||
unifiedStorage?: boolean;
|
||||
cloudWatchCrossAccountQuerying?: boolean;
|
||||
showDashboardValidationWarnings?: boolean;
|
||||
mysqlAnsiQuotes?: boolean;
|
||||
|
||||
@@ -285,10 +285,6 @@ func (s *service) start(ctx context.Context) error {
|
||||
}
|
||||
|
||||
case grafanaapiserveroptions.StorageTypeUnified:
|
||||
if !s.features.IsEnabledGlobally(featuremgmt.FlagUnifiedStorage) {
|
||||
return fmt.Errorf("unified storage requires the unifiedStorage feature flag")
|
||||
}
|
||||
|
||||
server, err := sql.ProvideResourceServer(s.db, s.cfg, s.features, s.tracing)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -298,10 +294,6 @@ func (s *service) start(ctx context.Context) error {
|
||||
o.RecommendedOptions.Etcd.StorageConfig)
|
||||
|
||||
case grafanaapiserveroptions.StorageTypeUnifiedGrpc:
|
||||
if !s.features.IsEnabledGlobally(featuremgmt.FlagUnifiedStorage) {
|
||||
return fmt.Errorf("unified storage requires the unifiedStorage feature flag")
|
||||
}
|
||||
|
||||
opts := []grpc.DialOption{
|
||||
grpc.WithStatsHandler(otelgrpc.NewClientHandler()),
|
||||
grpc.WithTransportCredentials(insecure.NewCredentials()),
|
||||
|
||||
@@ -194,14 +194,6 @@ var (
|
||||
Owner: grafanaSearchAndStorageSquad,
|
||||
HideFromAdminPage: true,
|
||||
},
|
||||
{
|
||||
Name: "unifiedStorage",
|
||||
Description: "SQL-based k8s storage",
|
||||
Stage: FeatureStageExperimental,
|
||||
RequiresDevMode: false,
|
||||
RequiresRestart: true, // new SQL tables created
|
||||
Owner: grafanaSearchAndStorageSquad,
|
||||
},
|
||||
{
|
||||
Name: "cloudWatchCrossAccountQuerying",
|
||||
Description: "Enables cross-account querying in CloudWatch datasources",
|
||||
|
||||
@@ -23,7 +23,6 @@ disableSecretsCompatibility,experimental,@grafana/hosted-grafana-team,false,true
|
||||
logRequestsInstrumentedAsUnknown,experimental,@grafana/hosted-grafana-team,false,false,false
|
||||
topnav,deprecated,@grafana/grafana-frontend-platform,false,false,false
|
||||
grpcServer,preview,@grafana/search-and-storage,false,false,false
|
||||
unifiedStorage,experimental,@grafana/search-and-storage,false,true,false
|
||||
cloudWatchCrossAccountQuerying,GA,@grafana/aws-datasources,false,false,false
|
||||
showDashboardValidationWarnings,experimental,@grafana/dashboards-squad,false,false,false
|
||||
mysqlAnsiQuotes,experimental,@grafana/search-and-storage,false,false,false
|
||||
|
||||
|
@@ -103,10 +103,6 @@ const (
|
||||
// Run the GRPC server
|
||||
FlagGrpcServer = "grpcServer"
|
||||
|
||||
// FlagUnifiedStorage
|
||||
// SQL-based k8s storage
|
||||
FlagUnifiedStorage = "unifiedStorage"
|
||||
|
||||
// FlagCloudWatchCrossAccountQuerying
|
||||
// Enables cross-account querying in CloudWatch datasources
|
||||
FlagCloudWatchCrossAccountQuerying = "cloudWatchCrossAccountQuerying"
|
||||
|
||||
@@ -2695,6 +2695,7 @@
|
||||
"name": "unifiedStorage",
|
||||
"resourceVersion": "1724096690370",
|
||||
"creationTimestamp": "2023-12-06T20:21:21Z",
|
||||
"deletionTimestamp": "2024-08-21T09:30:06Z",
|
||||
"annotations": {
|
||||
"grafana.app/updatedTimestamp": "2024-08-19 19:44:50.370023815 +0000 UTC"
|
||||
}
|
||||
|
||||
@@ -481,7 +481,6 @@ func getCfgForTesting(opts ...InitTestDBOpt) *setting.Cfg {
|
||||
func getFeaturesForTesting(opts ...InitTestDBOpt) featuremgmt.FeatureToggles {
|
||||
featureKeys := []any{
|
||||
featuremgmt.FlagPanelTitleSearch,
|
||||
featuremgmt.FlagUnifiedStorage,
|
||||
}
|
||||
for _, opt := range opts {
|
||||
if len(opt.FeatureFlags) > 0 {
|
||||
|
||||
@@ -61,12 +61,10 @@ func newResourceDBProvider(grafanaDB infraDB.DB, cfg *setting.Cfg, features feat
|
||||
}
|
||||
|
||||
p = &resourceDBProvider{
|
||||
cfg: cfg,
|
||||
log: log.New("entity-db"),
|
||||
logQueries: getter.Key("log_queries").MustBool(false),
|
||||
}
|
||||
if features.IsEnabledGlobally(featuremgmt.FlagUnifiedStorage) {
|
||||
p.migrateFunc = migrations.MigrateResourceStore
|
||||
cfg: cfg,
|
||||
log: log.New("entity-db"),
|
||||
logQueries: getter.Key("log_queries").MustBool(false),
|
||||
migrateFunc: migrations.MigrateResourceStore,
|
||||
}
|
||||
|
||||
switch dbType := getter.Key("db_type").MustString(""); dbType {
|
||||
|
||||
@@ -31,7 +31,7 @@ func newServer(t *testing.T) (sql.Backend, resource.ResourceServer) {
|
||||
|
||||
dbstore := infraDB.InitTestDB(t)
|
||||
cfg := setting.NewCfg()
|
||||
features := featuremgmt.WithFeatures(featuremgmt.FlagUnifiedStorage)
|
||||
features := featuremgmt.WithFeatures()
|
||||
|
||||
eDB, err := dbimpl.ProvideResourceDB(dbstore, cfg, features, nil)
|
||||
require.NoError(t, err)
|
||||
@@ -331,7 +331,7 @@ func TestClientServer(t *testing.T) {
|
||||
cfg.GRPCServerAddress = "localhost:0"
|
||||
cfg.GRPCServerNetwork = "tcp"
|
||||
|
||||
features := featuremgmt.WithFeatures(featuremgmt.FlagUnifiedStorage)
|
||||
features := featuremgmt.WithFeatures()
|
||||
|
||||
svc, err := sql.ProvideService(cfg, features, dbstore, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -149,7 +149,6 @@ func TestIntegrationPlaylist(t *testing.T) {
|
||||
DisableAnonymous: true,
|
||||
APIServerStorageType: "unified", // use the entity api tables
|
||||
EnableFeatureToggles: []string{
|
||||
featuremgmt.FlagUnifiedStorage,
|
||||
featuremgmt.FlagKubernetesPlaylists, // Required so that legacy calls are also written
|
||||
},
|
||||
DualWriterDesiredModes: map[string]grafanarest.DualWriterMode{
|
||||
@@ -164,7 +163,6 @@ func TestIntegrationPlaylist(t *testing.T) {
|
||||
DisableAnonymous: true,
|
||||
APIServerStorageType: "unified", // use the entity api tables
|
||||
EnableFeatureToggles: []string{
|
||||
featuremgmt.FlagUnifiedStorage,
|
||||
featuremgmt.FlagKubernetesPlaylists, // Required so that legacy calls are also written
|
||||
},
|
||||
DualWriterDesiredModes: map[string]grafanarest.DualWriterMode{
|
||||
@@ -179,7 +177,6 @@ func TestIntegrationPlaylist(t *testing.T) {
|
||||
DisableAnonymous: true,
|
||||
APIServerStorageType: "unified", // use the entity api tables
|
||||
EnableFeatureToggles: []string{
|
||||
featuremgmt.FlagUnifiedStorage,
|
||||
featuremgmt.FlagKubernetesPlaylists, // Required so that legacy calls are also written
|
||||
},
|
||||
DualWriterDesiredModes: map[string]grafanarest.DualWriterMode{
|
||||
@@ -194,7 +191,6 @@ func TestIntegrationPlaylist(t *testing.T) {
|
||||
DisableAnonymous: true,
|
||||
APIServerStorageType: "unified", // use the entity api tables
|
||||
EnableFeatureToggles: []string{
|
||||
featuremgmt.FlagUnifiedStorage,
|
||||
featuremgmt.FlagKubernetesPlaylists, // Required so that legacy calls are also written
|
||||
},
|
||||
DualWriterDesiredModes: map[string]grafanarest.DualWriterMode{
|
||||
|
||||
Reference in New Issue
Block a user