Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Users/yegorskii/merge 23 3 #1807

Merged
merged 14 commits into from
Aug 19, 2024
21 changes: 16 additions & 5 deletions cloud/blockstore/libs/daemon/ydb/bootstrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
#include <cloud/storage/core/libs/iam/iface/client.h>
#include <cloud/storage/core/libs/iam/iface/config.h>
#include <cloud/storage/core/libs/kikimr/actorsystem.h>
#include <cloud/storage/core/libs/kikimr/node_registration_settings.h>
#include <cloud/storage/core/libs/kikimr/node.h>
#include <cloud/storage/core/libs/kikimr/proxy.h>

Expand Down Expand Up @@ -216,18 +217,28 @@ void TBootstrapYdb::InitKikimrService()
Log,
PostponedCriticalEvents);

NCloud::NStorage::TNodeRegistrationSettings settings {
.MaxAttempts =
Configs->ServerConfig->GetNodeRegistrationMaxAttempts(),
.ErrorTimeout = Configs->ServerConfig->GetNodeRegistrationErrorTimeout(),
.RegistrationTimeout = Configs->ServerConfig->GetNodeRegistrationTimeout(),
.PathToGrpcCaFile = Configs->ServerConfig->GetRootCertsFile(),
.PathToGrpcCertFile = GetCertFileFromConfig(*Configs->ServerConfig),
.PathToGrpcPrivateKeyFile = GetCertPrivateKeyFileFromConfig(
*Configs->ServerConfig),
.NodeRegistrationToken = Configs->ServerConfig->GetNodeRegistrationToken(),
.NodeType = Configs->ServerConfig->GetNodeType(),
};

NCloud::NStorage::TRegisterDynamicNodeOptions registerOpts {
.Domain = Configs->Options->Domain,
.SchemeShardDir = Configs->StorageConfig->GetSchemeShardDir(),
.NodeType = Configs->ServerConfig->GetNodeType(),
.NodeBrokerAddress = Configs->Options->NodeBrokerAddress,
.NodeBrokerPort = Configs->Options->NodeBrokerPort,
.UseNodeBrokerSsl = Configs->Options->UseNodeBrokerSsl,
.InterconnectPort = Configs->Options->InterconnectPort,
.LoadCmsConfigs = Configs->Options->LoadCmsConfigs,
.MaxAttempts = static_cast<int>(
Configs->ServerConfig->GetNodeRegistrationMaxAttempts()),
.ErrorTimeout = Configs->ServerConfig->GetNodeRegistrationErrorTimeout(),
.RegistrationTimeout = Configs->ServerConfig->GetNodeRegistrationTimeout()
.Settings = std::move(settings)
};

if (Configs->Options->LocationFile) {
Expand Down
37 changes: 23 additions & 14 deletions cloud/blockstore/libs/disk_agent/bootstrap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -292,20 +292,29 @@ void TBootstrap::InitKikimrService()
Configs->InitDiagnosticsConfig();
Configs->InitSpdkEnvConfig();

NCloud::NStorage::TRegisterDynamicNodeOptions registerOpts;
registerOpts.Domain = Configs->Options->Domain;
registerOpts.SchemeShardDir = Configs->StorageConfig->GetSchemeShardDir();
registerOpts.NodeType = Configs->Options->NodeType;
registerOpts.NodeBrokerAddress = Configs->Options->NodeBrokerAddress;
registerOpts.NodeBrokerPort = Configs->Options->NodeBrokerPort;
registerOpts.InterconnectPort = Configs->Options->InterconnectPort;
registerOpts.LoadCmsConfigs = Configs->Options->LoadCmsConfigs;
registerOpts.MaxAttempts =
Configs->ServerConfig->GetNodeRegistrationMaxAttempts();
registerOpts.RegistrationTimeout =
Configs->ServerConfig->GetNodeRegistrationTimeout();
registerOpts.ErrorTimeout =
Configs->ServerConfig->GetNodeRegistrationErrorTimeout();
NCloud::NStorage::TNodeRegistrationSettings settings {
.MaxAttempts =
Configs->ServerConfig->GetNodeRegistrationMaxAttempts(),
.ErrorTimeout = Configs->ServerConfig->GetNodeRegistrationErrorTimeout(),
.RegistrationTimeout = Configs->ServerConfig->GetNodeRegistrationTimeout(),
.PathToGrpcCaFile = Configs->ServerConfig->GetRootCertsFile(),
.PathToGrpcCertFile = GetCertFileFromConfig(*Configs->ServerConfig),
.PathToGrpcPrivateKeyFile = GetCertPrivateKeyFileFromConfig(
*Configs->ServerConfig),
.NodeRegistrationToken = Configs->ServerConfig->GetNodeRegistrationToken(),
.NodeType = Configs->Options->NodeType,
};

NCloud::NStorage::TRegisterDynamicNodeOptions registerOpts {
.Domain = Configs->Options->Domain,
.SchemeShardDir = Configs->StorageConfig->GetSchemeShardDir(),
.NodeBrokerAddress = Configs->Options->NodeBrokerAddress,
.NodeBrokerPort = Configs->Options->NodeBrokerPort,
.UseNodeBrokerSsl = Configs->Options->UseNodeBrokerSsl,
.InterconnectPort = Configs->Options->InterconnectPort,
.LoadCmsConfigs = Configs->Options->LoadCmsConfigs,
.Settings = std::move(settings)
};

if (Configs->Options->LocationFile) {
NProto::TLocation location;
Expand Down
19 changes: 19 additions & 0 deletions cloud/blockstore/libs/server/config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,7 @@ constexpr TDuration Seconds(int s)
xxx(NbdConnectionTimeout, TDuration, Seconds(86400) )\
xxx(EndpointProxySocketPath, TString, "" )\
xxx(AllowAllRequestsViaUDS, bool, false )\
xxx(NodeRegistrationToken, TString, "root@builtin" )\
xxx(EndpointStorageNotImplementedErrorIsFatal, bool, false )\
xxx(VhostServerTimeoutAfterParentExit, TDuration, Seconds(60) )\
// BLOCKSTORE_SERVER_CONFIG
Expand Down Expand Up @@ -316,4 +317,22 @@ TServerAppConfig::DeprecatedGetRdmaClientConfig() const
return ServerConfig->GetRdmaClientConfig();
}

TString GetCertFileFromConfig(const TServerAppConfig& serverConfig)
{
const auto& certs = serverConfig.GetCerts();
if (certs.empty()) {
return serverConfig.GetCertFile();
}
return certs.front().CertFile;
}

TString GetCertPrivateKeyFileFromConfig(const TServerAppConfig& serverConfig)
{
const auto& certs = serverConfig.GetCerts();
if (certs.empty()) {
return serverConfig.GetCertPrivateKeyFile();
}
return certs.front().CertPrivateKeyFile;
}

} // namespace NCloud::NBlockStore::NServer
5 changes: 5 additions & 0 deletions cloud/blockstore/libs/server/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -143,4 +143,9 @@ class TServerAppConfig
bool GetRdmaClientEnabled() const;
};

////////////////////////////////////////////////////////////////////////////////

TString GetCertFileFromConfig(const TServerAppConfig& serverConfig);
TString GetCertPrivateKeyFileFromConfig(const TServerAppConfig& serverConfig);

} // namespace NCloud::NBlockStore::NServer
5 changes: 5 additions & 0 deletions cloud/blockstore/libs/storage/api/volume.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ namespace NCloud::NBlockStore::NStorage {
xxx(GetVolumeInfo, __VA_ARGS__) \
xxx(UpdateVolumeParams, __VA_ARGS__) \
xxx(ChangeStorageConfig, __VA_ARGS__) \
xxx(GetStorageConfig, __VA_ARGS__) \

// BLOCKSTORE_VOLUME_REQUESTS

// requests forwarded from service to volume
Expand Down Expand Up @@ -326,6 +328,9 @@ struct TEvVolume
EvPreparePartitionMigrationRequest = EvBegin + 56,
EvPreparePartitionMigrationResponse = EvBegin + 57,

EvGetStorageConfigRequest = EvBegin + 58,
EvGetStorageConfigResponse = EvBegin + 59,

EvEnd
};

Expand Down
25 changes: 25 additions & 0 deletions cloud/blockstore/libs/storage/protos/volume.proto
Original file line number Diff line number Diff line change
Expand Up @@ -627,3 +627,28 @@ message TChangeStorageConfigResponse
// Result Storage config.
NProto.TStorageServiceConfig StorageConfig = 3;
}

////////////////////////////////////////////////////////////////////////////////
// GetStorageConfig request/response.

message TGetStorageConfigRequest
{
// Optional request headers.
THeaders Headers = 1;

// Label of volume to query its storage config. Or empty to
// query server storage config.
string DiskId = 2;
}

message TGetStorageConfigResponse
{
// Optional error, set only if error happened.
NCloud.NProto.TError Error = 1;

// Request traces.
NCloud.NProto.TTraceInfo Trace = 2;

// Result Storage config.
NProto.TStorageServiceConfig StorageConfig = 3;
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ target_sources(libs-storage-service PRIVATE
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_diskregistry_tablet_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_nameservice_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_partition_info.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_get_storage_config.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_kill_tablet.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_migration_disk_registry_device.cpp
${CMAKE_SOURCE_DIR}/cloud/blockstore/libs/storage/service/service_actor_actions_modify_tags.cpp
Expand Down
4 changes: 4 additions & 0 deletions cloud/blockstore/libs/storage/service/service_actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,10 @@ class TServiceActor final
TResultOrError<NActors::IActorPtr> CreatePartiallySuspendDiskAgentActor(
TRequestInfoPtr requestInfo,
TString input);

TResultOrError<NActors::IActorPtr> CreateGetStorageConfigActor(
TRequestInfoPtr requestInfo,
TString input);
};

////////////////////////////////////////////////////////////////////////////////
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ void TServiceActor::HandleExecuteAction(
{"getdiskagentnodeid", &TServiceActor::CreateGetDiskAgentNodeIdActor },
{"waitdependentdiskstoswitchnode", &TServiceActor::CreateWaitDependentDisksToSwitchNodeActor },
{"partiallysuspenddiskagent", &TServiceActor::CreatePartiallySuspendDiskAgentActor },
{"getstorageconfig", &TServiceActor::CreateGetStorageConfigActor },
};

NProto::TError error;
Expand Down
Loading
Loading