aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorinnokentii <innokentii@yandex-team.com>2023-03-02 16:12:59 +0300
committerinnokentii <innokentii@yandex-team.com>2023-03-02 16:12:59 +0300
commit753d7fc890774ea3fcaec6eaf6d448ac2910e363 (patch)
tree0f448f6fbb33ba33498d148acb347915608713c6
parent495429833643392f7c357eb2b077fcf90696201e (diff)
downloadydb-753d7fc890774ea3fcaec6eaf6d448ac2910e363.tar.gz
Add cluster name and labels passthrough
add cluster name and labels passthrough
-rw-r--r--ydb/core/base/appdata.h4
-rw-r--r--ydb/core/driver_lib/cli_utils/cli_cmds_server.cpp8
-rw-r--r--ydb/core/driver_lib/run/config.h2
-rw-r--r--ydb/core/driver_lib/run/run.cpp36
-rw-r--r--ydb/core/protos/config.proto6
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 {