Skip to content

feat: implement reconciliation logic for AgentDeployment, including c… - #2

Merged
gitcommitankit merged 6 commits into
mainfrom
phase-1
Aug 6, 2026
Merged

feat: implement reconciliation logic for AgentDeployment, including c…#2
gitcommitankit merged 6 commits into
mainfrom
phase-1

Conversation

@gitcommitankit

@gitcommitankit gitcommitankit commented Aug 6, 2026

Copy link
Copy Markdown
Owner

…hild resource creation and status management

Summary by CodeRabbit

  • New Features

    • Added full AgentDeployment lifecycle management for Deployments, Services, optional monitoring, status conditions, and cleanup.
    • Added detection of image-pull failures and automatic restoration of missing child resources.
    • Added optional ServiceMonitor support and the required monitoring resource definition.
    • Updated sample manifests with a dedicated namespace, quota, labels, networking, autoscaling, and rollout settings.
    • Expanded permissions for managing workloads, monitoring resources, and custom resources.
  • Tests

    • Added comprehensive coverage for reconciliation, status conditions, ownership, updates, labels, ports, environment settings, monitoring, and namespace isolation.

…hild resource creation and status management
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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

The PR replaces the placeholder controller with a full AgentDeployment reconciler. It manages Deployments, Services, optional ServiceMonitors, finalizers, status conditions, image-pull errors, owned-resource watches, and integration tests. It also updates RBAC, dependencies, the ServiceMonitor CRD, and the sample manifest.

Changes

AgentDeployment controller

Layer / File(s) Summary
Reconciliation contracts and status helpers
internal/controller/conditions.go, internal/controller/crd_check.go, config/crd/external/monitoring.coreos.com_servicemonitors.yaml, internal/controller/agentdeployment_controller.go
The controller manages finalizers, deletion cleanup, status phases, conditions, pending requeues, and image-pull failures. It checks ServiceMonitor CRD availability and declares required RBAC permissions. The external ServiceMonitor CRD defines its namespaced API and schema.
Desired resource builders and watches
internal/controller/agentdeployment_controller.go, internal/controller/agentdeployment_builder_test.go
The controller builds owned Deployments, Services, and ServiceMonitors. Builders apply ports, labels, selectors, replicas, images, resources, environment variables, arguments, and metrics endpoints. Unit tests cover these builders and condition helpers.
Controller integration validation
internal/controller/suite_test.go, internal/controller/agentdeployment_controller_test.go
The envtest suite starts the controller manager and registers the required schemes and CRDs. Integration tests cover finalizers, child resources, updates, self-healing, labels, namespace isolation, default ports, and configuration propagation.
Runtime permissions and sample configuration
go.mod, config/rbac/role.yaml, config/samples/agentrax_v1alpha1_agentdeployment.yaml
The project declares direct Kubernetes and Prometheus API dependencies. RBAC grants access to managed resources. The sample adds a namespace, tenant quota, and configured AgentDeployment.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant AgentDeploymentReconciler
  participant KubernetesAPI
  participant Deployment
  participant Service
  participant ServiceMonitor
  User->>KubernetesAPI: create AgentDeployment
  KubernetesAPI->>AgentDeploymentReconciler: enqueue reconciliation
  AgentDeploymentReconciler->>KubernetesAPI: check ServiceMonitor CRD
  AgentDeploymentReconciler->>KubernetesAPI: create or update Deployment
  AgentDeploymentReconciler->>KubernetesAPI: create or update Service
  AgentDeploymentReconciler->>KubernetesAPI: create or update ServiceMonitor
  Deployment-->>AgentDeploymentReconciler: report readiness and pod state
  AgentDeploymentReconciler->>KubernetesAPI: update phase and conditions
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: implementing AgentDeployment reconciliation logic.
Docstring Coverage ✅ Passed Docstring coverage is 80.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ 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 phase-1

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@internal/controller/agentdeployment_controller_test.go`:
- Around line 119-140: Add an injectable `Deregister func(ctx context.Context,
ad *AgentDeployment) error` hook to `AgentDeploymentReconciler`, and have
`runDeletionCleanup` invoke it before finalizer removal. Update the deletion
test to record whether the child Service exists when deregistration runs, assert
the hook was called while the Service still exists, then verify the Service is
eventually garbage-collected.

In `@internal/controller/agentdeployment_controller.go`:
- Around line 216-220: Update the re-fetch Get error handling for latest in the
status update flow to check apierrors.IsNotFound immediately; return
ctrl.Result{} with no error when the AgentDeployment was deleted, and preserve
the existing wrapped error for all other failures.
- Around line 402-407: Update AgentDeploymentReconciler.SetupWithManager to
resolve the existing ServiceMonitor CRD availability check once during setup,
then conditionally add Owns(&monitoringv1.ServiceMonitor{}) only when that CRD
is present. Preserve the existing AgentDeployment, Deployment, and Service
watches and return any setup errors appropriately.
- Around line 142-150: Update the Deployment reconciliation around
controllerutil.CreateOrUpdate and the existing.Spec assignment to preserve
immutable, stable selector labels while keeping the tenant label outside
spec.selector.matchLabels; migrate or recreate existing Deployments whose
selectors use the old tenant-derived labels. Replace wholesale spec and
container-list assignments with updates only to controller-owned fields,
preserving API-defaulted values, and wrap the returned CreateOrUpdate error with
deployment context.

In `@internal/controller/crd_check.go`:
- Around line 32-42: Resolve ServiceMonitor CRD availability once during manager
setup instead of during reconciliation. In
internal/controller/crd_check.go:32-42, update serviceMonitorCRDExists to accept
client.Reader, use apierrors.IsNotFound, and invoke it with an uncached reader.
In internal/controller/agentdeployment_controller.go:402-407, call it once from
SetupWithManager using mgr.GetAPIReader(), store the result on
AgentDeploymentReconciler, conditionally add
Owns(&monitoringv1.ServiceMonitor{}) when present, and make
reconcileServiceMonitor use the stored result.

In `@internal/controller/suite_test.go`:
- Around line 85-96: Register the apiextensionsv1 Kubernetes types in the test
scheme before constructing the client, alongside the existing agentrax, apps,
core, and monitoring registrations. Update the scheme setup in suite
initialization so serviceMonitorCRDExists can read CustomResourceDefinition
objects without an unregistered-kind error.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 0862e113-e209-4bf4-ab7d-8196d0a62bd2

📥 Commits

Reviewing files that changed from the base of the PR and between a6e35d3 and 06d0531.

⛔ Files ignored due to path filters (1)
  • go.sum is excluded by !**/*.sum, !go.sum
📒 Files selected for processing (9)
  • config/rbac/role.yaml
  • config/samples/agentrax_v1alpha1_agentdeployment.yaml
  • go.mod
  • internal/controller/agentdeployment_builder_test.go
  • internal/controller/agentdeployment_controller.go
  • internal/controller/agentdeployment_controller_test.go
  • internal/controller/conditions.go
  • internal/controller/crd_check.go
  • internal/controller/suite_test.go

Comment thread internal/controller/agentdeployment_controller_test.go
Comment thread internal/controller/agentdeployment_controller.go Outdated
Comment thread internal/controller/agentdeployment_controller.go
Comment thread internal/controller/agentdeployment_controller.go Outdated
Comment thread internal/controller/crd_check.go Outdated
Comment thread internal/controller/suite_test.go
…reconciliation and ServiceMonitor check efficiency
@gitcommitankit

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
internal/controller/agentdeployment_controller.go (1)

287-289: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

Avoid a status-update reconcile loop.

SetupWithManager watches AgentDeployment updates. Status().Update runs even when the computed status equals the stored status. Each write emits another update event, so a stable object can reconcile continuously.

Save the previous status and skip Status().Update when the status is unchanged. Keep the explicit RequeueAfter path for Pending.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/controller/agentdeployment_controller.go` around lines 287 - 289, In
the reconcile flow around Status().Update, preserve the existing AgentDeployment
status before computing the new status, compare it afterward, and update the
status only when it changed. Keep the explicit RequeueAfter behavior for Pending
unchanged.
internal/controller/agentdeployment_controller_test.go (1)

197-206: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Assert the complete controller owner reference.

A reference with the expected name and kind but a stale UID still passes these tests. A non-controller reference also passes, but it breaks owned-resource watch behavior. Fetch the parent and assert the child reference UID equals the parent UID and Controller is true.

  • internal/controller/agentdeployment_controller_test.go#L197-L206: Assert the Deployment owner reference UID and controller flag.
  • internal/controller/agentdeployment_controller_test.go#L219-L228: Assert the Service owner reference UID and controller flag.

As per path instructions: "Assert owner references on every created child resource."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/controller/agentdeployment_controller_test.go` around lines 197 -
206, Update the owner-reference assertions in
internal/controller/agentdeployment_controller_test.go:197-206 for the
Deployment and 219-228 for the Service. Fetch the parent AgentDeployment in each
test, then assert the child’s sole owner reference UID matches the parent UID
and its Controller flag is true, while retaining the existing name and kind
assertions.

Source: Path instructions

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@internal/controller/agentdeployment_controller_test.go`:
- Around line 140-162: Replace the unsynchronized hookCalled and
serviceExistedDuringDeregister variables in the Deregister test with a buffered
result channel. Have the Deregister hook send its observed Service-existence
result through the channel, then use Eventually to receive that result before
asserting it, while preserving the existing assertions that deregistration
occurred and the Service was still present.

---

Outside diff comments:
In `@internal/controller/agentdeployment_controller_test.go`:
- Around line 197-206: Update the owner-reference assertions in
internal/controller/agentdeployment_controller_test.go:197-206 for the
Deployment and 219-228 for the Service. Fetch the parent AgentDeployment in each
test, then assert the child’s sole owner reference UID matches the parent UID
and its Controller flag is true, while retaining the existing name and kind
assertions.

In `@internal/controller/agentdeployment_controller.go`:
- Around line 287-289: In the reconcile flow around Status().Update, preserve
the existing AgentDeployment status before computing the new status, compare it
afterward, and update the status only when it changed. Keep the explicit
RequeueAfter behavior for Pending unchanged.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 47a49af1-3f45-4320-a515-cdd915c9be15

📥 Commits

Reviewing files that changed from the base of the PR and between 06d0531 and 5588d5c.

📒 Files selected for processing (4)
  • internal/controller/agentdeployment_controller.go
  • internal/controller/agentdeployment_controller_test.go
  • internal/controller/crd_check.go
  • internal/controller/suite_test.go

Comment thread internal/controller/agentdeployment_controller_test.go Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
internal/controller/agentdeployment_controller.go (1)

263-303: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Compare the complete status before updating it.

len(latest.Status.Conditions) misses changes to existing conditions. When scalar status fields remain unchanged, Status().Update is skipped. Deep-copy latest before mutation and compare the complete status with equality.Semantic.DeepEqual.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/controller/agentdeployment_controller.go` around lines 263 - 303,
Update the status-change detection around the reconciliation status mutations by
deep-copying latest before modifying its status, then compare the complete
previous and current statuses with equality.Semantic.DeepEqual. Replace the
scalar and conditions-length checks in statusChanged, while preserving the
existing conditional Status().Update behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@internal/controller/agentdeployment_controller_test.go`:
- Around line 200-216: Add explicit cleanup for child resources created by each
test case, deleting retained Deployments before creating or reconciling the next
AgentDeployment. Update the test teardown/setup around the existing parent and
child objects so stale resources and owner references cannot persist across
runs; keep the Eventually assertion focused on verifying convergence to the
current parent UID.
- Around line 236-257: Install the monitoring.coreos.com ServiceMonitor CRD
before SetupWithManager so the ServiceMonitor child-resource path is exercised
in envtest. Extend the relevant AgentDeployment controller test to fetch the
ServiceMonitor during Eventually and assert its owner UID matches the parent,
its kind is ServiceMonitor, and its Controller reference is true.

---

Outside diff comments:
In `@internal/controller/agentdeployment_controller.go`:
- Around line 263-303: Update the status-change detection around the
reconciliation status mutations by deep-copying latest before modifying its
status, then compare the complete previous and current statuses with
equality.Semantic.DeepEqual. Replace the scalar and conditions-length checks in
statusChanged, while preserving the existing conditional Status().Update
behavior.
🪄 Autofix

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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 30674f59-e8a3-4e41-83be-4b88412e162d

📥 Commits

Reviewing files that changed from the base of the PR and between 5588d5c and e1c2d96.

📒 Files selected for processing (2)
  • internal/controller/agentdeployment_controller.go
  • internal/controller/agentdeployment_controller_test.go

Comment thread internal/controller/agentdeployment_controller_test.go
Comment thread internal/controller/agentdeployment_controller_test.go
@gitcommitankit

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
internal/controller/agentdeployment_controller_test.go (1)

225-234: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assert against testNginxImage, not a duplicated literal.

Line 215 creates the fixture with testNginxImage. Line 232 asserts "nginx:latest". The two only agree by coincidence. Changing the constant breaks this spec for no real reason.

♻️ Proposed refactor
-			Expect(dep.Spec.Template.Spec.Containers[0].Image).To(Equal("nginx:latest"))
+			Expect(dep.Spec.Template.Spec.Containers[0].Image).To(Equal(testNginxImage))
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/controller/agentdeployment_controller_test.go` around lines 225 -
234, Update the image assertion in the “creates a Deployment with correct image
and port” test to compare against the existing testNginxImage fixture constant
instead of the duplicated "nginx:latest" literal; leave the port assertion
unchanged.
internal/controller/agentdeployment_controller.go (1)

282-286: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Read StableVersion from latest, not the stale ad copy.

Every other write in this block targets latest, which was re-fetched at line 257. Line 284 reads ad.Spec.Image from the copy captured at the start of reconcile. If the spec changed in between, the status records the previous image as stable.

🐛 Proposed fix
 		if dep.Status.ReadyReplicas > 0 {
 			latest.Status.Phase = agentraxv1alpha1.PhaseRunning
-			latest.Status.StableVersion = ad.Spec.Image
+			latest.Status.StableVersion = latest.Spec.Image
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/controller/agentdeployment_controller.go` around lines 282 - 286,
Update the StableVersion assignment in the ReadyReplicas branch of the
reconciliation flow to read the image from the refreshed latest object, matching
the other status updates in that block, while leaving the surrounding phase and
condition updates unchanged.
♻️ Duplicate comments (1)
internal/controller/agentdeployment_controller_test.go (1)

174-183: 🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

The hook assignment itself is still racy under -race.

The buffered channel fixed the observation race. It did not fix this write. Line 178 writes testReconciler.Deregister from the test goroutine. The manager goroutine reads that same field during any in-flight reconcile of ad-finalizer, and status reconciles requeue every 5 seconds while the phase is Pending. Line 183 repeats the write. go test -race can report both.

Guard the field with a mutex on the reconciler, or store the hook in an atomic.Pointer[func...].

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@internal/controller/agentdeployment_controller_test.go` around lines 174 -
183, Protect testReconciler.Deregister from concurrent access during the test,
including both the hook assignment and cleanup. Add and use a mutex on the
reconciler (or an atomic function pointer), and ensure reconciliation reads the
hook through the same synchronization mechanism so the injected Deregister
callback and DeferCleanup reset are race-free.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@internal/controller/agentdeployment_controller_test.go`:
- Around line 225-234: Update the image assertion in the “creates a Deployment
with correct image and port” test to compare against the existing testNginxImage
fixture constant instead of the duplicated "nginx:latest" literal; leave the
port assertion unchanged.

In `@internal/controller/agentdeployment_controller.go`:
- Around line 282-286: Update the StableVersion assignment in the ReadyReplicas
branch of the reconciliation flow to read the image from the refreshed latest
object, matching the other status updates in that block, while leaving the
surrounding phase and condition updates unchanged.

---

Duplicate comments:
In `@internal/controller/agentdeployment_controller_test.go`:
- Around line 174-183: Protect testReconciler.Deregister from concurrent access
during the test, including both the hook assignment and cleanup. Add and use a
mutex on the reconciler (or an atomic function pointer), and ensure
reconciliation reads the hook through the same synchronization mechanism so the
injected Deregister callback and DeferCleanup reset are race-free.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: fd61153c-c29c-4a89-bac1-db7576542416

📥 Commits

Reviewing files that changed from the base of the PR and between e1c2d96 and 61b98e9.

📒 Files selected for processing (4)
  • config/crd/external/monitoring.coreos.com_servicemonitors.yaml
  • internal/controller/agentdeployment_controller.go
  • internal/controller/agentdeployment_controller_test.go
  • internal/controller/suite_test.go

…revent data races during testing and fix stable version update logic
Repository owner deleted a comment from coderabbitai Bot Aug 6, 2026
@gitcommitankit

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

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 current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@internal/controller/agentdeployment_controller.go`:
- Around line 302-306: Update the readiness logic in the controller
reconciliation block around dep.Status.ReadyReplicas so StableVersion is
advanced only after the Deployment observes the reconciled generation and its
updated and available replica counts satisfy rollout completion. Derive
StableVersion from the reconciled Deployment container image rather than
latest.Spec.Image, and add an image-update test covering a partial rollout where
StableVersion remains unchanged.
🪄 Autofix

✅ Autofix completed


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 206d0d4a-57b0-4669-a2ed-944f3d8e43df

📥 Commits

Reviewing files that changed from the base of the PR and between 61b98e9 and 5587757.

📒 Files selected for processing (2)
  • internal/controller/agentdeployment_controller.go
  • internal/controller/agentdeployment_controller_test.go

Comment thread internal/controller/agentdeployment_controller.go Outdated
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Fixes Applied Successfully

Fixed 4 file(s) based on 1 unresolved review comment.

Files modified:

  • go.mod
  • go.sum
  • internal/controller/agentdeployment_controller.go
  • internal/controller/agentdeployment_controller_test.go

Commit: 17c6376c3a31b547ebf0fbf6080b487b243a1a7b

The changes have been pushed to the phase-1 branch.

Time taken: 6m 59s

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.

1 participant