diff options
author | innokentii <innokentii@yandex-team.com> | 2023-03-02 16:12:59 +0300 |
---|---|---|
committer | innokentii <innokentii@yandex-team.com> | 2023-03-02 16:12:59 +0300 |
commit | 753d7fc890774ea3fcaec6eaf6d448ac2910e363 (patch) | |
tree | 0f448f6fbb33ba33498d148acb347915608713c6 | |
parent | 495429833643392f7c357eb2b077fcf90696201e (diff) | |
download | ydb-753d7fc890774ea3fcaec6eaf6d448ac2910e363.tar.gz |
Add cluster name and labels passthrough
add cluster name and labels passthrough
-rw-r--r-- | ydb/core/base/appdata.h | 4 | ||||
-rw-r--r-- | ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp | 8 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/config.h | 2 | ||||
-rw-r--r-- | ydb/core/driver_lib/run/run.cpp | 36 | ||||
-rw-r--r-- | ydb/core/protos/config.proto | 6 |
5 files changed, 56 insertions, 0 deletions
diff --git a/ydb/core/base/appdata.h b/ydb/core/base/appdata.h index 2d8bee7dbf..2d935f62cc 100644 --- a/ydb/core/base/appdata.h +++ b/ydb/core/base/appdata.h @@ -182,6 +182,10 @@ struct TAppData { TKikimrScopeId LocalScopeId; + TMap<TString, TString> Labels; + + TString ClusterName; + TAppData( ui32 sysPoolId, ui32 userPoolId, ui32 ioPoolId, ui32 batchPoolId, TMap<TString, ui32> servicePools, diff --git a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp index fdaf2f0aaf..6000e28d99 100644 --- a/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp +++ b/ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp @@ -692,6 +692,14 @@ protected: // will be replaced with proper version info RunConfig.Labels["branch"] = GetBranch(); RunConfig.Labels["rev"] = ToString(GetProgramSvnRevision()); + + for (const auto& [name, value] : RunConfig.Labels) { + auto *label = RunConfig.AppConfig.AddLabels(); + label->SetName(name); + label->SetValue(value); + } + + RunConfig.ClusterName = ClusterName; } inline bool LoadConfigFromCMS() { diff --git a/ydb/core/driver_lib/run/config.h b/ydb/core/driver_lib/run/config.h index 30a079074e..71a0ac39c2 100644 --- a/ydb/core/driver_lib/run/config.h +++ b/ydb/core/driver_lib/run/config.h @@ -115,6 +115,8 @@ struct TKikimrRunConfig { TMap<TString, TString> Labels; + TString ClusterName; + TKikimrRunConfig(NKikimrConfig::TAppConfig& appConfig, ui32 nodeId = 0, const TKikimrScopeId& scopeId = {}); }; diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp index 55e3a24747..3534c4e6ad 100644 --- a/ydb/core/driver_lib/run/run.cpp +++ b/ydb/core/driver_lib/run/run.cpp @@ -329,6 +329,38 @@ public: } }; +class TLabelsInitializer : public IAppDataInitializer { + const NKikimrConfig::TAppConfig& Config; + +public: + TLabelsInitializer(const TKikimrRunConfig& runConfig) + : Config(runConfig.AppConfig) + { + } + + virtual void Initialize(NKikimr::TAppData* appData) override + { + for (const auto& label : Config.GetLabels()) { + appData->Labels[label.GetName()] = label.GetValue(); + } + } +}; + +class TClusterNameInitializer : public IAppDataInitializer { + const TKikimrRunConfig& Config; + +public: + TClusterNameInitializer(const TKikimrRunConfig& runConfig) + : Config(runConfig) + { + } + + virtual void Initialize(NKikimr::TAppData* appData) override + { + appData->ClusterName = Config.ClusterName; + } +}; + TKikimrRunner::TKikimrRunner(std::shared_ptr<TModuleFactories> factories) : ModuleFactories(std::move(factories)) , Counters(MakeIntrusive<::NMonitoring::TDynamicCounters>()) @@ -1086,6 +1118,10 @@ void TKikimrRunner::InitializeAppData(const TKikimrRunConfig& runConfig) appDataInitializers.AddAppDataInitializer(new TDynamicNameserviceInitializer(runConfig)); // setup cms appDataInitializers.AddAppDataInitializer(new TCmsInitializer(runConfig)); + // setup labels + appDataInitializers.AddAppDataInitializer(new TLabelsInitializer(runConfig)); + // setup cluster name + appDataInitializers.AddAppDataInitializer(new TClusterNameInitializer(runConfig)); appDataInitializers.Initialize(AppData.Get()); } diff --git a/ydb/core/protos/config.proto b/ydb/core/protos/config.proto index 0c24e9c9ce..596ca448cb 100644 --- a/ydb/core/protos/config.proto +++ b/ydb/core/protos/config.proto @@ -1709,6 +1709,11 @@ message TClientCertificateAuthorization { optional TDynamicNodeDefinition DynamicNodeAuthorization = 1; } +message TLabel { + optional string Name = 1; + optional string Value = 2; +} + message TAppConfig { optional TActorSystemConfig ActorSystemConfig = 1; optional TLogConfig LogConfig = 2; @@ -1774,6 +1779,7 @@ message TAppConfig { optional string ClusterYamlConfig = 101; optional TConfigVersion Version = 102; + repeated TLabel Labels = 103; } message TYdbVersion { |