Repository navigation
Conversation
steiler
force-pushed
the
feat/grpcserver-adapter
branch
2 times, most recently
from
November 9, 2026 15:56
2aa2eee to
9761a80
Compare
steiler
added a commit
to sdcio/config-server
that referenced
this pull request
Nov 10, 2026
Load the data-server config (DATA_SERVER_CONFIG, default /config/data-server.yaml), build the core and gRPC adapter in main and run both as manager Runnables, so :56000 is served by the controller process. TargetManager and :9443 are now always built. readyz waits for the core, and a health probe address is added (HEALTH_PROBE_PORT, default :8090). TargetManager takes a narrow DatastoreAdmin handle; DeleteDatastore runs in-process against the core and treats api.ErrUnknownDatastore as gone. LOCAL_DATASERVER is no longer read. The subscription reconciler gets the nil TargetManager guard. Pairs with: sdcio/data-server#538 Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
steiler
added a commit
to sdcio/config-server
that referenced
this pull request
Nov 10, 2026
TargetManager, TargetRuntime, the transactor, the deviation watcher and the rollout transaction manager now call the embedded core through narrow interfaces over pkg/api instead of a gRPC client. The target datastore reconciler builds api.DatastoreSpec directly; the datastore hash and the retry classification use api.ComputeCreateDSHash and api.IsRetryable, and unknown datastores are matched with api.ErrUnknownDatastore. Removed: DSConnManager, PhaseWaitingForDS, DSReady, the fake gRPC client, the unused sdcctx package, GetLocalDataServerAddress and the dataserverpin placeholder. The merged binary no longer opens the data-server metrics listener on prometheus.address. The api-server is a separate deployment without a core, so its target helpers and dry-run keep the :56000 client. Pairs with: sdcio/data-server#538, sdcio/data-server#539 Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
steiler
added a commit
to sdcio/config-server
that referenced
this pull request
Nov 10, 2026
TargetManager, TargetRuntime, the transactor, the deviation watcher and the rollout transaction manager now call the embedded core through narrow interfaces over pkg/api instead of a gRPC client. The target datastore reconciler builds api.DatastoreSpec directly; the datastore hash and the retry classification use api.ComputeCreateDSHash and api.IsRetryable, and unknown datastores are matched with api.ErrUnknownDatastore. Removed: DSConnManager, PhaseWaitingForDS, DSReady, the fake gRPC client, the unused sdcctx package, GetLocalDataServerAddress and the dataserverpin placeholder. The merged binary no longer opens the data-server metrics listener on prometheus.address. The api-server is a separate deployment without a core, so its target helpers and dry-run keep the :56000 client. Pairs with: sdcio/data-server#538, sdcio/data-server#539 Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
steiler
force-pushed
the
feat/grpcserver-adapter
branch
2 times, most recently
from
November 11, 2026 10:41
a3da59d to
5bb99e9
Compare
steiler
force-pushed
the
feat/grpcserver-adapter
branch
from
November 11, 2026 11:02
5bb99e9 to
0365ec2
Compare
steiler
force-pushed
the
feat/grpcserver-adapter
branch
from
November 11, 2026 12:37
0365ec2 to
1f6c81e
Compare
Wire DataServer and SchemaServer through pkg/core with interceptors, ready gate, metrics, and handler-level error parity. Standalone main only retries listen failures and shuts down core on signal. Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
Keep schema names through api.SchemaRef, echo the configured target type and drop the target port in GetDataStore, and validate CreateDataStore in the original order with the original messages. Map resource exhaustion and deadline errors, keep untyped invalid-argument errors on the transaction path and reject non-JSON update values instead of dropping them. Run retries listen and serve errors with a growing delay and returns the core start failure; main exits non-zero on it and stops the core on a fresh context. Dedupe handler logging and error mapping, document the caller contracts and add wire, error-table and lifecycle tests. Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
Signed-off-by: Markus Vahlenkamp <markus.vahlenkamp@nokia.com>
steiler
force-pushed
the
feat/grpcserver-adapter
branch
from
November 11, 2026 12:49
1f6c81e to
d5ca75a
Compare
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on feat/core-rpcs (PR C); retarget to main once C lands.
What
pkg/grpcserver: sdcpb topkg/apiadapter for DataServer and SchemaServer on top ofpkg/core, with ready gate, 30m timeout, request-uuid logging, Prometheus, TLS option and max recv size.pkg/server: same codes and messages,Aborted/Unavailable/ResourceExhausted/DeadlineExceededmapping on the transaction path.api.SchemaRefgains an optionalName; the hash only includes it when set.main.gois a thin wrapper: retry listen/serve errors with backoff, signal -> cancel -> stop core on a fresh context, exit 1 when the core fails to start.core.ListDataStores,ListIntents,DatastoreExists,SchemaClient.Known limitations
json_valare rejected with InvalidArgument (the api types carry JSON only).StringVal, not the original typed values.go test -raceflags an existing race betweenconnectSBIandConnectionStateinpkg/datastore; not addressed here.Not in this PR
Release tag (cut after merge) and Go 1.25 decision.