Skip to content

feat: deploy RAG server container#333

Merged
tsivaprasad merged 4 commits intomainfrom
PLAT-492-rag-service-container-deployment
Apr 12, 2026
Merged

feat: deploy RAG server container#333
tsivaprasad merged 4 commits intomainfrom
PLAT-492-rag-service-container-deployment

Conversation

@tsivaprasad
Copy link
Copy Markdown
Contributor

@tsivaprasad tsivaprasad commented Apr 6, 2026

Summary

This PR deploys the pgedge-rag-server as a Docker Swarm service with the generated
config and API key files bind-mounted into the container, completing the
RAG service container deployment layer.

Changes

  • Add "rag" case to ServiceContainerSpec(): TCP health check, /app/data
    mount (rw), /app/keys mount (ro)
  • Add ServiceType field to ServiceInstanceResource and exclude the RW role
    dependency for RAG in both ServiceInstanceResource and
    ServiceInstanceSpecResource (RAG is read-only)
  • Add "rag" to ServiceInstanceSpecResource.Dependencies() so
    RAGConfigResource is resolved before the spec is computed
  • Wire Network, ServiceInstanceSpecResource, and ServiceInstanceResource
    into generateRAGInstanceResources() completing the full deploy chain
  • Remove the RAG monitor exclusion in plan_update.go
  • Add newTestOrchestrator() helper and update resource count assertions

Testing

Verification:

  1. Created cluster
  2. Created DB with rag service info
  3. Verified that service running successfully and also tested the rag server health and other APIs
docker exec -it control-plane-dev-host-1-1 curl http://localhost:55000/v1/health                        
  
{"status":"healthy"}

docker exec -it control-plane-dev-host-1-1 curl http://localhost:55000/v1/pipelines                     
  
{"pipelines":[{"name":"default","description":"Main RAG pipeline"}]}

docker exec -it control-plane-dev-host-1-1 curl -X POST http://localhost:55000/v1/pipelines/default \
  -H "Content-Type: application/json" \
  -d '{"query": "pgEdge Docs"}' 

{"answer":"No relevant information found in the available documents.","tokens_used":0}

Checklist

  • Tests added

Notes for Reviewers

  • RAG only uses a read-only Postgres role (pgedge_application_read_only);
    the RW role dependency is skipped for "rag" service type in both
    ServiceInstanceResource and ServiceInstanceSpecResource

PLAT-492

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 6, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Resolves RAG image and validates compatibility, creates a shared ${databaseID}-database Swarm overlay, sets data dir ownership to ragContainerUID, adds ServiceInstanceSpec and ServiceInstance resources, adjusts dependency logic for rag, updates container spec for RAG, and adds/updates tests and monitoring declarations.

Changes

Cohort / File(s) Summary
Orchestrator resource generation
server/internal/orchestrator/swarm/orchestrator.go
Fetches RAG image via o.serviceVersions.GetServiceImage (fails early), validates image vs spec.PgEdgeVersion, creates shared overlay network named ${databaseID}-database, keeps canonical per-database ServiceUserRole and per-node RO roles, sets DirResource OwnerUID/OwnerGID to ragContainerUID, and appends computed ServiceInstanceSpecResource and ServiceInstanceResource.
Service instance model & spec deps
server/internal/orchestrator/swarm/service_instance.go, server/internal/orchestrator/swarm/service_instance_spec.go
Adds ServiceType (service_type) to ServiceInstanceResource. Dependencies() always includes RO role and spec, omits RW role for rag. ServiceInstanceSpec dependencies for rag include RAGConfig and RAGServiceKeys. Refresh() sets keysPath = {dataPath}/keys only for rag and passes it into container spec options.
Container spec for RAG
server/internal/orchestrator/swarm/service_spec.go
New rag branch: sets container User to ragContainerUID, Command /app/pgedge-rag-server with -config /app/data/..., switches healthcheck to TCP on 8080, bind-mounts opts.DataPath/app/data (writable), and conditionally mounts opts.KeysPath/app/keys read-only when present.
Monitoring declaration
server/internal/workflows/plan_update.go
Always assigns monitor.ServiceInstanceMonitorResource for services (removed prior special-case exclusion for rag).
Tests & helpers (added/removed/updated)
server/internal/orchestrator/swarm/rag_instance_resources_test.go, server/internal/orchestrator/swarm/rag_service_keys_resource_test.go, server/internal/orchestrator/swarm/rag_service_user_role_test.go
Added comprehensive rag_instance_resources_test.go and newTestOrchestrator()/minimal RAG config helpers; updated rag_service_keys_resource_test.go to use newTestOrchestrator(). Deleted rag_service_user_role_test.go (removed prior unit tests covering canonical vs per-node role placement and related assertions). New tests assert resource ordering/counts and image compatibility checks (error on PG mismatch).

Poem

🐇 I twitched my nose and fetched an image bright,
I wove a network named to keep data tight,
Keys found their nest and dirs owned by rag’s UID,
Specs queued up, instances ready — all tidy, neat and swift,
A rabbit’s hop to mark this small, precise uplift.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 26.32% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'feat: deploy RAG server container' directly summarizes the main objective of the PR, which is to deploy the pgedge-rag-server as a Docker Swarm service.
Description check ✅ Passed The PR description covers all required template sections: Summary, Changes (bulleted), Testing (with manual verification steps), Checklist (marked complete), and Notes for Reviewers; all are substantive and relevant.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch PLAT-492-rag-service-container-deployment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codacy-production
Copy link
Copy Markdown

codacy-production bot commented Apr 6, 2026

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 10 duplication

Metric Results
Duplication 10

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

@tsivaprasad
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 6, 2026

@tsivaprasad Sure, I'll review the PR now!


🧠 Learnings used
Learnt from: tsivaprasad
Repo: pgEdge/control-plane PR: 302
File: server/internal/orchestrator/swarm/orchestrator.go:686-704
Timestamp: 2026-04-04T13:55:26.501Z
Learning: In `server/internal/orchestrator/swarm/orchestrator.go` (Go), the `generateRAGInstanceResources` function intentionally omits the `ServiceInstanceSpecResource`/`ServiceInstanceResource` pair (and the corresponding `KeysPath` mount wiring). The deployable service spec/instance resources for RAG are deferred to a subsequent ticket. Do not flag the absence of `ServiceInstanceSpecResource`/`ServiceInstanceResource` in `generateRAGInstanceResources` as a missing implementation during code review.

Learnt from: CR
Repo: pgEdge/control-plane PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-14T16:43:14.333Z
Learning: Applies to server/internal/orchestrator/swarm/**/*.go : Docker Swarm integration should use services for Postgres instances, overlay networks for database isolation, and bind mounts for configuration and data directories

Learnt from: rshoemaker
Repo: pgEdge/control-plane PR: 287
File: server/internal/orchestrator/swarm/service_user_role.go:59-60
Timestamp: 2026-03-11T16:05:35.061Z
Learning: In pgEdge/control-plane server/internal/orchestrator/swarm/service_user_role.go (Go): A ResourceVersion bump (e.g., "2" → "3") in ServiceUserRole is a documentation/safety marker only. When the resource Identifier key changes (e.g., from ServiceInstanceID to ServiceID), recreation is driven automatically by the (Type, ID) key mismatch — old resources with the previous identifier are deleted and new ones are created. Do not flag a ResourceVersion bump as a missing recreate trigger when an Identifier change is already causing full recreate.

Learnt from: jason-lynch
Repo: pgEdge/control-plane PR: 290
File: server/internal/database/service.go:564-574
Timestamp: 2026-03-11T14:26:49.745Z
Learning: In pgEdge/control-plane server/internal/database/service.go, a release failure after a successful persist in ReconcileInstanceSpec is considered non-critical by design. The only consequence is that the released port will not be a candidate for future random assignment, which is very low risk. No additional complexity is needed to guard against this failure mode.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@server/internal/orchestrator/swarm/service_instance_spec.go`:
- Around line 69-79: The RAG branch only waits for RAGConfigResource but must
also wait for the keys resource; update the dependency construction so when
s.ServiceSpec.ServiceType == "rag" you also append the keys resource identifier
(e.g. call RAGServiceKeysResourceIdentifier(s.ServiceInstanceID)) to deps
alongside RAGConfigResourceIdentifier(s.ServiceInstanceID), keeping the existing
ServiceUserRoleIdentifier logic intact.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9cfadc5c-ecef-4950-9d25-2af885ee4fd2

📥 Commits

Reviewing files that changed from the base of the PR and between 863297f and 485648e.

📒 Files selected for processing (7)
  • server/internal/orchestrator/swarm/orchestrator.go
  • server/internal/orchestrator/swarm/rag_service_keys_resource_test.go
  • server/internal/orchestrator/swarm/rag_service_user_role_test.go
  • server/internal/orchestrator/swarm/service_instance.go
  • server/internal/orchestrator/swarm/service_instance_spec.go
  • server/internal/orchestrator/swarm/service_spec.go
  • server/internal/workflows/plan_update.go

@tsivaprasad
Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 7, 2026

@tsivaprasad Sure, I'll review the PR now!


🧠 Learnings used
Learnt from: tsivaprasad
Repo: pgEdge/control-plane PR: 302
File: server/internal/orchestrator/swarm/orchestrator.go:686-704
Timestamp: 2026-04-04T13:55:26.501Z
Learning: In `server/internal/orchestrator/swarm/orchestrator.go` (Go), the `generateRAGInstanceResources` function intentionally omits the `ServiceInstanceSpecResource`/`ServiceInstanceResource` pair (and the corresponding `KeysPath` mount wiring). The deployable service spec/instance resources for RAG are deferred to a subsequent ticket. Do not flag the absence of `ServiceInstanceSpecResource`/`ServiceInstanceResource` in `generateRAGInstanceResources` as a missing implementation during code review.

Learnt from: rshoemaker
Repo: pgEdge/control-plane PR: 287
File: server/internal/orchestrator/swarm/service_user_role.go:59-60
Timestamp: 2026-03-11T16:05:35.061Z
Learning: In pgEdge/control-plane server/internal/orchestrator/swarm/service_user_role.go (Go): A ResourceVersion bump (e.g., "2" → "3") in ServiceUserRole is a documentation/safety marker only. When the resource Identifier key changes (e.g., from ServiceInstanceID to ServiceID), recreation is driven automatically by the (Type, ID) key mismatch — old resources with the previous identifier are deleted and new ones are created. Do not flag a ResourceVersion bump as a missing recreate trigger when an Identifier change is already causing full recreate.

Learnt from: jason-lynch
Repo: pgEdge/control-plane PR: 290
File: server/internal/database/service.go:564-574
Timestamp: 2026-03-11T14:26:49.745Z
Learning: In pgEdge/control-plane server/internal/database/service.go, a release failure after a successful persist in ReconcileInstanceSpec is considered non-critical by design. The only consequence is that the released port will not be a candidate for future random assignment, which is very low risk. No additional complexity is needed to guard against this failure mode.

Learnt from: CR
Repo: pgEdge/control-plane PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-14T16:43:14.333Z
Learning: Applies to server/internal/orchestrator/swarm/**/*.go : Docker Swarm integration should use services for Postgres instances, overlay networks for database isolation, and bind mounts for configuration and data directories

Learnt from: jason-lynch
Repo: pgEdge/control-plane PR: 295
File: server/internal/orchestrator/systemd/orchestrator.go:361-363
Timestamp: 2026-03-24T16:43:04.216Z
Learning: In `server/internal/orchestrator/systemd/orchestrator.go` (Go), `GenerateServiceInstanceResources` and `GetServiceInstanceStatus` on the SystemD `Orchestrator` intentionally return `errors.New("unimplemented")`. Service-instance support for the SystemD orchestrator is tracked in a separate ticket and will be addressed there. Do not flag these as missing implementations during code review.

Learnt from: jason-lynch
Repo: pgEdge/control-plane PR: 292
File: server/internal/resource/migrations/schematool/inliner.go:62-66
Timestamp: 2026-03-23T22:23:03.067Z
Learning: In the pgEdge/control-plane repository, `server/internal/resource/migrations/schematool` is a development-only, AI-generated CLI tool with a single narrow purpose. Code quality suggestions (edge case handling, import tracking, error propagation, etc.) should be skipped for files under this directory unless the issue is extremely critical (e.g., data corruption, security). The tool is not intended to handle every possible edge case.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@tsivaprasad tsivaprasad force-pushed the PLAT-492-rag-service-container-deployment branch from 97d40a1 to 060fbb3 Compare April 7, 2026 13:21
@tsivaprasad tsivaprasad force-pushed the PLAT-491-rag-service-yaml-config-generation-swarm-config branch 2 times, most recently from 2719035 to a86d831 Compare April 7, 2026 19:00
@tsivaprasad tsivaprasad changed the base branch from PLAT-491-rag-service-yaml-config-generation-swarm-config to main April 7, 2026 19:36
@tsivaprasad tsivaprasad force-pushed the PLAT-492-rag-service-container-deployment branch from 060fbb3 to b0e3c9a Compare April 7, 2026 19:48
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
server/internal/orchestrator/swarm/rag_service_user_role_test.go (1)

85-120: Assert the new RAG resource payloads, not just their positions.

These checks only validate type/order. They would still pass if ServiceInstanceSpecResource dropped fields like DatabaseNetworkID or DataDirID, or if ServiceInstanceResource.ServiceType stopped being "rag". Please deserialize those tail resources and assert the RAG-specific fields introduced in this PR.

Also applies to: 149-207, 236-271

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/internal/orchestrator/swarm/rag_service_user_role_test.go` around
lines 85 - 120, The test currently only asserts resource ordering/types
(result.Resources) but must also deserialize and assert RAG-specific payload
fields: for the ServiceInstanceSpecResource (use symbol
ServiceInstanceSpecResource or the type used in the diff) deserialize its
payload and assert fields like DatabaseNetworkID, DataDirID, and any
RAG-specific spec values are present and correct; for the
ServiceInstanceResource (symbol ServiceInstanceResource) deserialize and assert
ServiceType == "rag" and other service-level fields introduced by this PR;
likewise deserialize any RAG config/keys resources (ResourceTypeRAGConfig,
ResourceTypeRAGServiceKeys) and assert expected config values and key presence;
update the checks around result.Resources[1], [5], and [6] (and the other ranges
noted) to include these payload assertions rather than relying only on
index/type.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@server/internal/orchestrator/swarm/orchestrator.go`:
- Around line 656-660: After obtaining serviceImage from
o.serviceVersions.GetServiceImage, run the same compatibility gate used in
generateMCPInstanceResources by calling ValidateCompatibility with the resolved
serviceImage and the target database/postgres version from the spec (the same
field used in generateMCPInstanceResources); if ValidateCompatibility reports
incompatible, return the error before planning resources so unsupported
RAG/Postgres combinations are rejected early. Ensure you reference the existing
ValidateCompatibility(...) call pattern from generateMCPInstanceResources and
perform this check immediately after obtaining serviceImage (the variable
serviceImage) and before any resource planning logic.

---

Nitpick comments:
In `@server/internal/orchestrator/swarm/rag_service_user_role_test.go`:
- Around line 85-120: The test currently only asserts resource ordering/types
(result.Resources) but must also deserialize and assert RAG-specific payload
fields: for the ServiceInstanceSpecResource (use symbol
ServiceInstanceSpecResource or the type used in the diff) deserialize its
payload and assert fields like DatabaseNetworkID, DataDirID, and any
RAG-specific spec values are present and correct; for the
ServiceInstanceResource (symbol ServiceInstanceResource) deserialize and assert
ServiceType == "rag" and other service-level fields introduced by this PR;
likewise deserialize any RAG config/keys resources (ResourceTypeRAGConfig,
ResourceTypeRAGServiceKeys) and assert expected config values and key presence;
update the checks around result.Resources[1], [5], and [6] (and the other ranges
noted) to include these payload assertions rather than relying only on
index/type.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: eabcc6a5-7af3-48f8-bd6c-a3200d7191d6

📥 Commits

Reviewing files that changed from the base of the PR and between 97d40a1 and b0e3c9a.

📒 Files selected for processing (7)
  • server/internal/orchestrator/swarm/orchestrator.go
  • server/internal/orchestrator/swarm/rag_service_keys_resource_test.go
  • server/internal/orchestrator/swarm/rag_service_user_role_test.go
  • server/internal/orchestrator/swarm/service_instance.go
  • server/internal/orchestrator/swarm/service_instance_spec.go
  • server/internal/orchestrator/swarm/service_spec.go
  • server/internal/workflows/plan_update.go
✅ Files skipped from review due to trivial changes (2)
  • server/internal/workflows/plan_update.go
  • server/internal/orchestrator/swarm/service_spec.go
🚧 Files skipped from review as they are similar to previous changes (2)
  • server/internal/orchestrator/swarm/rag_service_keys_resource_test.go
  • server/internal/orchestrator/swarm/service_instance.go

@tsivaprasad tsivaprasad requested a review from jason-lynch April 8, 2026 05:03
if len(result.Resources) != 4 {
t.Fatalf("len(Resources) = %d, want 4", len(result.Resources))
// Single node: Network + canonical RO + DirResource + Keys + Config + InstanceSpec + ServiceInstance = 7.
if len(result.Resources) != 7 {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking suggestion: I think these tests could be improved by using the same testify library that we use elsewhere. For example, the three lines of this if statement could be replaced with:

require.Len(t, result.Resources, 7)

require.Len's default error message is roughly equivalent to the existing on here, and it doesn't need to be updated when the expected length changes. Side note - Claude always wants to fill in custom error messages for the testify assertions, but IMO they're not more useful than the defaults unless the check is non-intuitive and the message explains why the condition exists.

You might also be able to combine many of these assertions by using assert.Equal/require.Equal, which work great for complex structs, like:

assert.Equal(t, result, &database.ServiceInstanceResources{
    // ...
})

For me, that would be a lot easier to read and keep up-to-date.

One more suggestion to consider in this file: the file is named server/internal/orchestrator/swarm/rag_service_user_role_test.go but it has tests for other things besides the user role. Should it be renamed?

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
server/internal/orchestrator/swarm/rag_instance_resources_test.go (1)

54-253: Consider a shared spec fixture builder to reduce repeated setup.

database.ServiceInstanceSpec construction is repeated across multiple tests (Line 54, Line 90, Line 144, Line 191, Line 212, Line 239). A small helper would lower maintenance cost when fields evolve.

♻️ Example refactor sketch
+func baseRAGInstanceSpec() *database.ServiceInstanceSpec {
+	return &database.ServiceInstanceSpec{
+		ServiceInstanceID: "db1-rag-host1",
+		ServiceSpec: &database.ServiceSpec{
+			ServiceID:   "rag",
+			ServiceType: "rag",
+			Version:     "latest",
+			Config:      minimalRAGConfig(),
+		},
+		DatabaseID:   "db1",
+		DatabaseName: "db1",
+		HostID:       "host-1",
+		NodeName:     "n1",
+	}
+}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@server/internal/orchestrator/swarm/rag_instance_resources_test.go` around
lines 54 - 253, Tests duplicate construction of database.ServiceInstanceSpec
across TestGenerateRAGInstanceResources*,
TestGenerateServiceInstanceResources_*, and
TestGenerateRAGInstanceResources_IncompatibleVersion; extract a shared fixture
builder function (e.g., newRAGSpec or buildServiceInstanceSpec) to centralize
common fields. Implement a helper that accepts overrides (nodeName, hostID,
serviceID/version, databaseID, config, DatabaseNodes, PgEdgeVersion) and calls
minimalRAGConfig() as default; update tests to call this helper instead of
repeating the struct literals (refer to symbols database.ServiceInstanceSpec,
minimalRAGConfig, TestGenerateRAGInstanceResources_MultiNode,
TestGenerateRAGInstanceResources_MultiNode_CanonicalNotFirst,
TestGenerateServiceInstanceResources_RAGDispatch,
TestGenerateServiceInstanceResources_UnknownTypeReturnsError,
TestGenerateRAGInstanceResources_IncompatibleVersion).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@server/internal/orchestrator/swarm/rag_instance_resources_test.go`:
- Around line 54-253: Tests duplicate construction of
database.ServiceInstanceSpec across TestGenerateRAGInstanceResources*,
TestGenerateServiceInstanceResources_*, and
TestGenerateRAGInstanceResources_IncompatibleVersion; extract a shared fixture
builder function (e.g., newRAGSpec or buildServiceInstanceSpec) to centralize
common fields. Implement a helper that accepts overrides (nodeName, hostID,
serviceID/version, databaseID, config, DatabaseNodes, PgEdgeVersion) and calls
minimalRAGConfig() as default; update tests to call this helper instead of
repeating the struct literals (refer to symbols database.ServiceInstanceSpec,
minimalRAGConfig, TestGenerateRAGInstanceResources_MultiNode,
TestGenerateRAGInstanceResources_MultiNode_CanonicalNotFirst,
TestGenerateServiceInstanceResources_RAGDispatch,
TestGenerateServiceInstanceResources_UnknownTypeReturnsError,
TestGenerateRAGInstanceResources_IncompatibleVersion).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d3b671ff-e47d-4142-85b7-3a7b82a563c3

📥 Commits

Reviewing files that changed from the base of the PR and between aebe98f and 49483d6.

📒 Files selected for processing (2)
  • server/internal/orchestrator/swarm/rag_instance_resources_test.go
  • server/internal/orchestrator/swarm/rag_service_user_role_test.go
💤 Files with no reviewable changes (1)
  • server/internal/orchestrator/swarm/rag_service_user_role_test.go

@tsivaprasad tsivaprasad merged commit e586e31 into main Apr 12, 2026
3 checks passed
@tsivaprasad tsivaprasad deleted the PLAT-492-rag-service-container-deployment branch April 12, 2026 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants