Skip to content

Merge stable 24-4 to stream-nb-24-4 #16228

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

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
2257ad4
24-3: Fix uncommitted changes leak and clean them up on startup (#13448)
snaury Jan 17, 2025
d112eb7
24-3-15: Return default decimal if scheme proto is empty (#13554)
azevaykin Jan 20, 2025
fa450dd
Fix write in stable-24-3 (#13567)
Jan 20, 2025
f4c85ea
24-3: Avoid unnecessary ReadStep coordinator subscriptions (#13638)
snaury Jan 21, 2025
6676ba4
24-3: Configure minimum coordinator resolution with icb (#13747)
snaury Jan 23, 2025
9ca35af
fix dedup normalizer (#9849) (#13776)
zverevgeny Jan 24, 2025
cdeec5d
Revert "Improved Q9 by moving BuildFlatmapStage to a later stage and …
pavelvelikhov Jan 24, 2025
33ff454
24-3: ClickHouse Client optional type fix (#13815) (#13821)
azevaykin Jan 24, 2025
cbc5af1
The values of PartNo must be added (#13914)
Alek5andr-Kotov Jan 28, 2025
a1e2575
24-3: Preliminary fix for erase cache consistency problems (#13944)
snaury Jan 29, 2025
c1b8015
[filestore] Allow 4G+ throttle values (#13454) (#13738)
proller Jan 29, 2025
006f608
Viewer updates v5 (stable-24-3-15-hotfix) (#13480)
adameat Jan 17, 2025
e6d1a59
24-3-15-hotfix: KIKIMR-22120: Block table splits and merges during im…
pixcc Jan 29, 2025
8c8dcab
Merge pull request #14093 from maximyurchuk/stable-24-3
maximyurchuk Jan 31, 2025
375ea47
Fix BS_QUEUE death (merge from main #14081) (#14095)
alexvru Feb 1, 2025
529ebf9
24-3: Delete rows with decimal in PK (#14209)
azevaykin Feb 5, 2025
4e12fde
Disable distconf (#14171)
alexvru Feb 6, 2025
4dbe124
fix redirects and tabletinfo filtering for serverless databases (#14221)
adameat Feb 6, 2025
8cfba18
Support PG types in schemeshard (#11023) (#14300)
azevaykin Feb 7, 2025
874951c
Support PG types in YT export (#8833) (#14303)
azevaykin Feb 7, 2025
d6fd00d
Fix for Decimal PK in CDC (#14290)
azevaykin Feb 7, 2025
a254002
fix followers with query service (#14367)
gridnevvvit Feb 10, 2025
80dbaee
Stable-24-4: initial commits (#14402)
maximyurchuk Feb 11, 2025
457659d
24-4: Don't ack readsets too early on volatile tx abort (#14516)
snaury Feb 13, 2025
df03f29
Remove compatibility with old NBS binaries (#14443)
serbel324 Feb 13, 2025
d20b238
Check EnforceUserTokenRequirement together with RequireCredentialsInN…
qyryq Feb 14, 2025
511ac07
YMQ tags (#13396)
qyryq Feb 14, 2025
c710d8a
Sync EvaluteExpr execution (#11801) (#14456)
Hor911 Feb 14, 2025
89d3412
Compatibility for asynchronous compaction (#14569)
Alek5andr-Kotov Feb 18, 2025
5315324
Kafka fixes for 24 4 (#14641)
a-serebryanskiy Feb 18, 2025
0030735
followers update in 24-4 (#14811)
vporyadke Feb 20, 2025
db75faa
Merge kafka-proxy improvements and fixes (#14805)
FloatingCrowbar Feb 21, 2025
f7d665b
24-4: Resource labels (#14850)
CyberROFL Feb 21, 2025
24b2434
Ingore basic scheme limits for internal operations (#14813) (#14921)
jepett0 Feb 21, 2025
95e4d13
24-4: Paths & shards quota & consumption metrics (#14954)
CyberROFL Feb 24, 2025
0304fe6
Add support ydbd start from dynamic config (#14913)
mregrock Feb 25, 2025
e8a762b
Workaround for batch processing of transactions (#14874) (#14950)
Alek5andr-Kotov Feb 26, 2025
bd3c9d7
enable index auto-choose by default 24-4 (#15033)
gridnevvvit Feb 26, 2025
f1235b7
24-4: Fix follower assertions on attach snapshot races (#15077)
snaury Feb 27, 2025
010638a
24-4: Fix RemoveSubscribedLock crash after DropTable (#15074)
snaury Feb 27, 2025
f291460
24-4: TDbResolver: store & resend original event (#15082)
CyberROFL Feb 27, 2025
eee7c11
[stable-24-4] sync docs_release.yaml with main (#15169)
blinkov Feb 28, 2025
0a25dc5
At the start of a partition, the order of messages may change. (#1516…
Alek5andr-Kotov Feb 28, 2025
2f0df75
If TMaybe is empty, get proper JSON value (#15172)
qyryq Mar 4, 2025
4b470a1
Change MAX_REORDER_TX_KEYS from 100 to 1000 (24-4) (#15294)
qyryq Mar 4, 2025
b39b6d2
Fixed possible stop of reading from the topic partition (#15288) (#15…
nshestakov Mar 4, 2025
9b336b7
Fix log message in GenerateCookie (#8890) (#15343)
Alek5andr-Kotov Mar 5, 2025
f7a423c
24-4: Add CleanupEC2MetadataClient() (#15382)
CyberROFL Mar 6, 2025
e524a8e
24-4 Add BuildStats B-Tree detailed logging (#15352)
kunga Mar 7, 2025
5a0f4ed
YMQ: Update format of labels in search events (24-4) (#15426)
qyryq Mar 7, 2025
42f0576
24-4: Force oldest locks into shard locks due to range limits (#15473)
snaury Mar 7, 2025
8c7adfc
fix inc4455 Do not keep portions for overlap detection (#15252) (#15486)
zverevgeny Mar 9, 2025
a7c972c
Merge of important bugfixes for PQ read proxy & kafka proxy (#15457)
FloatingCrowbar Mar 10, 2025
cc226a3
Initializing the configuration of the partition (#15557) (#15576)
Alek5andr-Kotov Mar 12, 2025
0d85ab0
24-4, VIEW: use parent context for query AST building (#15590)
jepett0 Mar 13, 2025
99be4c1
Refresh ldap token with error (#15182) (#15460)
molotkov-and Mar 13, 2025
bebf591
24-4: handle follower dying while being promoted to leader (#15134) (…
vporyadke Mar 14, 2025
41e5d4e
24-4: check that we are not migrating tablets to ourselves (#15477) (…
vporyadke Mar 14, 2025
4d604e5
24-4: fix safe operation check in hive (#15537) (#15664)
vporyadke Mar 14, 2025
85b3d16
24-4: increase logging around tablet unlocks (#14741) (#15669)
vporyadke Mar 14, 2025
26fc43b
Revert "Initializing the configuration of the partition (#15557) (#15…
Alek5andr-Kotov Mar 17, 2025
a9a7cc8
24-1 Fix B-Tree histograms comparator result overflow (#15820)
kunga Mar 17, 2025
a8d6eba
Revert "Refresh ldap token with error (#15182) (#15460)" (#15835)
molotkov-and Mar 17, 2025
808c600
Revert "24-4: Force oldest locks into shard locks due to range limits…
snaury Mar 18, 2025
877a440
Revert "24-4, VIEW: use parent context for query AST building" (#15833)
jepett0 Mar 18, 2025
f4134c8
Revert "24-4: Add CleanupEC2MetadataClient()" (#15832)
CyberROFL Mar 18, 2025
9480de8
24-4: Boost restore (#15837)
CyberROFL Mar 18, 2025
a1884b0
provide database in schemecache request (#15941)
alexnick88 Mar 19, 2025
a2f41b8
Fix config delivery to quoter (#15847) (#15933)
FloatingCrowbar Mar 19, 2025
1232652
Fix group resolver bug (#13282) (#15921)
serbel324 Mar 19, 2025
f453ce3
Fix segfault in Group Layout Sanitizer (#15922)
serbel324 Mar 19, 2025
f48f11a
Add node interlace in TScore for group mapper (#15951)
serbel324 Mar 19, 2025
757b075
An empty list of consumers for the background partition (#15956)
Alek5andr-Kotov Mar 19, 2025
57c58b0
Merge tag '24.4.4' into stream-nb-24-4
alexv-smirnov Mar 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
54 changes: 44 additions & 10 deletions .github/workflows/docs_release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,28 +10,62 @@ on:
workflow_dispatch:

jobs:
release:
build:
runs-on: ubuntu-latest
concurrency:
group: release-documentation-${{ github.ref }}
cancel-in-progress: true
runs-on: ubuntu-latest
permissions: write-all
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Build
uses: diplodoc-platform/docs-build-action@v3
with:
revision: "${{ github.sha }}"
src-root: ${{ vars.SRC_ROOT }}
upload:
needs: build
runs-on: ubuntu-latest
concurrency:
group: release-documentation-${{ github.ref }}
cancel-in-progress: true
permissions: write-all
steps:
- name: Upload
uses: diplodoc-platform/docs-upload-action@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
storage-bucket: "common/${{ secrets.DOCS_PROJECT_NAME }}"
storage-endpoint: ${{ vars.DOCS_AWS_ENDPOINT }}
storage-access-key-id: ${{ secrets.DOCS_AWS_KEY_ID }}
storage-secret-access-key: ${{ secrets.DOCS_AWS_SECRET_ACCESS_KEY }}
storage-region: ${{ vars.DOCS_AWS_REGION }}
release:
needs: upload
runs-on: ubuntu-latest
concurrency:
group: release-documentation-${{ github.ref }}
cancel-in-progress: true
steps:
- name: Extract version
shell: bash
run: echo "version=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" | sed -e 's|stable-|v|g' -e 's|-|.|g' >> $GITHUB_OUTPUT
id: extract_version
- name: Set update-only-version
id: set-update-only-version
run: |
if [[ "${GITHUB_REF##*/}" == "main" ]]; then
echo "update_only_version=false" >> $GITHUB_ENV
else
echo "update_only_version=true" >> $GITHUB_ENV
fi
- name: Release
uses: diplodoc-platform/docs-release-action@v1
uses: diplodoc-platform/docs-release-action@v2
with:
revision: "${{ github.sha }}"
version: "${{ steps.extract_version.outputs.version }}"
project-name: ${{ secrets.DOCS_PROJECT_NAME }}
src-root: ${{ vars.SRC_ROOT }}
storage-bucket: ${{ secrets.DOCS_AWS_BUCKET }}
storage-endpoint: ${{ vars.DOCS_AWS_ENDPOINT }}
storage-bucket: ${{ secrets.DOCS_PROJECT_NAME }}
storage-access-key-id: ${{ secrets.DOCS_AWS_KEY_ID }}
storage-secret-access-key: ${{ secrets.DOCS_AWS_SECRET_ACCESS_KEY }}
storage-region: ${{ vars.DOCS_AWS_REGION }}
shared-storage-bucket: true
update-only-version: "${{ env.update_only_version }}"
13 changes: 3 additions & 10 deletions ydb/apps/version/version_definition.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,13 @@
NKikimrConfig::TCurrentCompatibilityInfo NKikimr::TCompatibilityInfo::MakeCurrent() {
using TCurrentConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCurrentCompatibilityInfo;
using TVersionConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TVersion;
using TCompatibilityRuleConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCompatibilityRule;
// using TCompatibilityRuleConstructor = NKikimr::TCompatibilityInfo::TProtoConstructor::TCompatibilityRule;

return TCurrentConstructor{
.Application = "ydb",
.Version = TVersionConstructor{
.Year = 24,
.Major = 3,
.Major = 4,
},
.CanConnectTo = {
TCompatibilityRuleConstructor{
.Application = "nbs",
.LowerLimit = TVersionConstructor{ .Year = 23, .Major = 3 },
.UpperLimit = TVersionConstructor{ .Year = 24, .Major = 3 },
}
}
}.ToPB();
}
}
12 changes: 11 additions & 1 deletion ydb/core/base/hive.h
Original file line number Diff line number Diff line change
Expand Up @@ -705,15 +705,25 @@ namespace NKikimr {
Record.SetStatus(status);
Record.SetStatusMessage(statusMessage);
}

TString ToString() const override {
TStringStream str;
str << ToStringHeader() << "{Status: " << NKikimrProto::EReplyStatus_Name(Record.GetStatus()).data();
str << " TabletID: " << Record.GetTabletID();
str << " Message: " << Record.GetStatusMessage();
str << "}";
return str.Str();
}
};

struct TEvLockTabletExecutionLost : public TEventPB<TEvLockTabletExecutionLost,
NKikimrHive::TEvLockTabletExecutionLost, EvLockTabletExecutionLost>
{
TEvLockTabletExecutionLost() = default;

explicit TEvLockTabletExecutionLost(ui64 tabletId) {
explicit TEvLockTabletExecutionLost(ui64 tabletId, NKikimrHive::ELockLostReason reason) {
Record.SetTabletID(tabletId);
Record.SetReason(reason);
}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -336,9 +336,12 @@ namespace NKikimr::NStorage {
if (const auto it = Groups.find(r.GetGroupId()); it != Groups.end() && it->second.Group) {
record.MutableGroup()->CopyFrom(*it->second.Group);
}
THashSet<TGroupId> groupsAdded;
for (const auto& [key, value] : LocalVDisks) {
if (const auto& r = value.RuntimeData; r && !r->DonorMode) {
record.AddStartedGroupIds(r->GroupInfo->GroupID.GetRawId());
if (const auto& groupId = r->GroupInfo->GroupID; groupsAdded.insert(groupId).second) {
record.AddStartedGroupIds(groupId.GetRawId());
}
}
}
Send(ev->Sender, res.release(), 0, ev->Cookie);
Expand Down
9 changes: 7 additions & 2 deletions ydb/core/client/server/msgbus_server_pq_metacache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,11 @@ class TPersQueueMetaCacheActor : public TActorBootstrapped<TPersQueueMetaCacheAc
auto inserted = DescribeTopicsWaiters.insert(std::make_pair(reqId, waiter)).second;
Y_ABORT_UNLESS(inserted);

TMaybe<TString> db = {};

for (const auto& [path, database] : waiter->GetTopics()) {
if (!db) db = database;
if (*db != database) db = "";
auto split = NKikimr::SplitPath(path);
TSchemeCacheNavigate::TEntry entry;
if (!split.empty()) {
Expand All @@ -529,8 +533,9 @@ class TPersQueueMetaCacheActor : public TActorBootstrapped<TPersQueueMetaCacheAc

schemeCacheRequest->ResultSet.emplace_back(std::move(entry));
}

LOG_DEBUG_S(ctx, NKikimrServices::PQ_METACACHE, "send request for " << (waiter->Type == EWaiterType::DescribeAllTopics ? " all " : "") << waiter->GetTopics().size() << " topics, got " << DescribeTopicsWaiters.size() << " requests infly");
if (db) schemeCacheRequest->DatabaseName = *db;
LOG_DEBUG_S(ctx, NKikimrServices::PQ_METACACHE, "send request for " << (waiter->Type == EWaiterType::DescribeAllTopics ? " all " : "")
<< waiter->GetTopics().size() << " topics, got " << DescribeTopicsWaiters.size() << " requests infly, db = \"" << db << "\"");

ctx.Send(SchemeCacheId, new TEvTxProxySchemeCache::TEvNavigateKeySet(schemeCacheRequest.release()));
}
Expand Down
8 changes: 8 additions & 0 deletions ydb/core/config/init/init_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,7 @@ struct TCommonAppOptions {
TString GRpcPublicHost = "";
ui32 GRpcPublicPort = 0;
ui32 GRpcsPublicPort = 0;
ui32 KafkaPort = 0;
TVector<TString> GRpcPublicAddressesV4;
TVector<TString> GRpcPublicAddressesV6;
TString GRpcPublicTargetNameOverride = "";
Expand Down Expand Up @@ -383,6 +384,7 @@ struct TCommonAppOptions {
opts.AddLongOption("grpc-public-host", "set public gRPC host for discovery").RequiredArgument("HOST").StoreResult(&GRpcPublicHost);
opts.AddLongOption("grpc-public-port", "set public gRPC port for discovery").RequiredArgument("PORT").StoreResult(&GRpcPublicPort);
opts.AddLongOption("grpcs-public-port", "set public gRPC SSL port for discovery").RequiredArgument("PORT").StoreResult(&GRpcsPublicPort);
opts.AddLongOption("kafka-port", "enable kafka proxy to listen on port").OptionalArgument("PORT").StoreResult(&KafkaPort);
opts.AddLongOption("grpc-public-address-v4", "set public ipv4 address for discovery").RequiredArgument("ADDR").EmplaceTo(&GRpcPublicAddressesV4);
opts.AddLongOption("grpc-public-address-v6", "set public ipv6 address for discovery").RequiredArgument("ADDR").EmplaceTo(&GRpcPublicAddressesV6);
opts.AddLongOption("grpc-public-target-name-override", "set public hostname override for TLS in discovery").RequiredArgument("HOST").StoreResult(&GRpcPublicTargetNameOverride);
Expand Down Expand Up @@ -597,6 +599,12 @@ struct TCommonAppOptions {
}
ConfigUpdateTracer.AddUpdate(NKikimrConsole::TConfigItem::GRpcConfigItem, TConfigItemInfo::EUpdateKind::UpdateExplicitly);
}
if (KafkaPort) {
auto& conf = *appConfig.MutableKafkaProxyConfig();
conf.SetEnableKafkaProxy(true);
conf.SetListeningPort(KafkaPort);
ConfigUpdateTracer.AddUpdate(NKikimrConsole::TConfigItem::KafkaProxyConfigItem, TConfigItemInfo::EUpdateKind::UpdateExplicitly);
}
for (const auto& addr : GRpcPublicAddressesV4) {
appConfig.MutableGRpcConfig()->AddPublicAddressesV4(addr);
}
Expand Down
33 changes: 27 additions & 6 deletions ydb/core/discovery/discovery.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@ namespace NDiscovery {
return false;
}

bool CheckEndpointId(const TString& endpointId, const NKikimrStateStorage::TEndpointBoardEntry &entry) {
if (endpointId.empty() && !entry.HasEndpointId())
return true;

if (entry.HasEndpointId() && entry.GetEndpointId() == endpointId)
return true;

return false;
}

bool IsSafeLocationMarker(TStringBuf location) {
const ui8* isrc = reinterpret_cast<const ui8*>(location.data());
for (auto idx : xrange(location.size())) {
Expand Down Expand Up @@ -128,6 +138,7 @@ namespace NDiscovery {
const TMap<TActorId, TEvStateStorage::TBoardInfoEntry>& prevInfoEntries,
TMap<TActorId, TEvStateStorage::TBoardInfoEntry> newInfoEntries,
TSet<TString> services,
TString endpointId,
const THolder<TEvInterconnect::TEvNodeInfo>& nameserviceResponse) {
TMap<TActorId, TEvStateStorage::TBoardInfoEntry> infoEntries;
if (prevInfoEntries.empty()) {
Expand Down Expand Up @@ -170,6 +181,9 @@ namespace NDiscovery {
continue;
}

if (!CheckEndpointId(endpointId, entry)) {
continue;
}
if (entry.GetSsl()) {
AddEndpoint(cachedMessageSsl, statesSsl, entry);
} else {
Expand All @@ -185,7 +199,6 @@ namespace NDiscovery {
cachedMessageSsl.set_self_location(location);
}
}

return {SerializeResult(cachedMessage), SerializeResult(cachedMessageSsl), std::move(infoEntries)};
}
}
Expand Down Expand Up @@ -220,6 +233,7 @@ namespace NDiscoveryPrivate {

THashMap<TString, TVector<TWaiter>> Requested;
bool Scheduled = false;
TMaybe<TString> EndpointId;

auto Request(const TString& database) {
auto result = Requested.emplace(database, TVector<TWaiter>());
Expand Down Expand Up @@ -264,7 +278,8 @@ namespace NDiscoveryPrivate {

currentCachedMessage = std::make_shared<NDiscovery::TCachedMessageData>(
NDiscovery::CreateCachedMessage(
currentCachedMessage->InfoEntries, std::move(msg->Updates), {}, NameserviceResponse)
currentCachedMessage->InfoEntries, std::move(msg->Updates),
{}, EndpointId.GetOrElse({}), NameserviceResponse)
);

auto it = Requested.find(path);
Expand All @@ -278,7 +293,8 @@ namespace NDiscoveryPrivate {
const auto& path = msg->Path;

auto newCachedData = std::make_shared<NDiscovery::TCachedMessageData>(
NDiscovery::CreateCachedMessage({}, std::move(msg->InfoEntries), {}, NameserviceResponse)
NDiscovery::CreateCachedMessage({}, std::move(msg->InfoEntries),
{}, EndpointId.GetOrElse({}), NameserviceResponse)
);
newCachedData->Status = msg->Status;

Expand Down Expand Up @@ -357,6 +373,11 @@ namespace NDiscoveryPrivate {
}

public:
TDiscoveryCache() = default;
TDiscoveryCache(const TString& endpointId)
: EndpointId(endpointId)
{
}
static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
return NKikimrServices::TActivity::DISCOVERY_CACHE_ACTOR;
}
Expand Down Expand Up @@ -508,7 +529,7 @@ class TDiscoverer: public TActorBootstrapped<TDiscoverer> {
return true;
default:
return true;
}
}
}

void MaybeReply() {
Expand Down Expand Up @@ -606,8 +627,8 @@ IActor* CreateDiscoverer(
return new TDiscoverer(f, database, replyTo, cacheId);
}

IActor* CreateDiscoveryCache() {
return new NDiscoveryPrivate::TDiscoveryCache();
IActor* CreateDiscoveryCache(const TString& endpointId) {
return new NDiscoveryPrivate::TDiscoveryCache(endpointId);
}

}
3 changes: 2 additions & 1 deletion ydb/core/discovery/discovery.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ namespace NDiscovery {
const TMap<TActorId, TEvStateStorage::TBoardInfoEntry>&,
TMap<TActorId, TEvStateStorage::TBoardInfoEntry>,
TSet<TString>,
TString,
const THolder<TEvInterconnect::TEvNodeInfo>&);
}

Expand All @@ -74,6 +75,6 @@ IActor* CreateDiscoverer(
const TActorId& cacheId);

// Used to reduce number of requests to Board
IActor* CreateDiscoveryCache();
IActor* CreateDiscoveryCache(const TString& endpointId = {});

}
6 changes: 6 additions & 0 deletions ydb/core/driver_lib/run/config_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ void TRunCommandConfigParser::SetupLastGetOptForConfigFiles(NLastGetopt::TOpts&
opts.AddLongOption("grpc-file", "gRPC config file").OptionalArgument("PATH");
opts.AddLongOption("grpc-port", "enable gRPC server on port").RequiredArgument("PORT");
opts.AddLongOption("grpcs-port", "enable gRPC SSL server on port").RequiredArgument("PORT");
opts.AddLongOption("kafka-port", "enable kafka proxy server on port").OptionalArgument("PORT");
opts.AddLongOption("grpc-public-host", "set public gRPC host for discovery").RequiredArgument("HOST");
opts.AddLongOption("grpc-public-port", "set public gRPC port for discovery").RequiredArgument("PORT");
opts.AddLongOption("grpcs-public-port", "set public gRPC SSL port for discovery").RequiredArgument("PORT");
Expand Down Expand Up @@ -164,6 +165,11 @@ void TRunCommandConfigParser::ParseConfigFiles(const NLastGetopt::TOptsParseResu
conf.SetSslPort(FromString<ui16>(res.Get("grpcs-port")));
}

if (res.Has("kafka-port")) {
auto& conf = *Config.AppConfig.MutableKafkaProxyConfig();
conf.SetListeningPort(FromString<ui16>(res.Get("kafka-port")));
}

if (res.Has("grpc-public-host")) {
auto& conf = *Config.AppConfig.MutableGRpcConfig();
conf.SetPublicHost(res.Get("grpc-public-host"));
Expand Down
Loading
Loading