Greenfield: Implement direct controller, E2E fixtures, and fuzzer for DiscoveryEngineServingConfig - #12441
Conversation
Real GCP Testing Proof: Audit LogsBelow are retrieved Google Cloud audit logs demonstrating that the ---
insertId: 1exlsle1azxw
logName: projects/cnrm-barni-4/logs/cloudaudit.googleapis.com%2Factivity
protoPayload:
'@type': type.googleapis.com/google.cloud.audit.AuditLog
authenticationInfo:
principalEmail: overseer-kcc-tester@cnrm-barni-4.iam.gserviceaccount.com
principalSubject: serviceAccount:overseer-kcc-tester@cnrm-barni-4.iam.gserviceaccount.com
authorizationInfo:
- granted: true
permission: discoveryengine.servingConfigs.create
permissionType: ADMIN_WRITE
resource: projects/cnrm-barni-4/locations/global/collections/default_collection/engines/engine-5bmzsg2pksbavgq
methodName: google.cloud.discoveryengine.v1beta.ServingConfigService.CreateServingConfig
request:
'@type': type.googleapis.com/google.cloud.discoveryengine.v1beta.CreateServingConfigRequest
parent: projects/cnrm-barni-4/locations/global/collections/default_collection/engines/engine-5bmzsg2pksbavgq
resourceName: projects/cnrm-barni-4/locations/global/collections/default_collection/engines/engine-5bmzsg2pksbavgq
response:
'@type': type.googleapis.com/google.cloud.discoveryengine.v1beta.ServingConfig
name: projects/600845353393/locations/global/collections/default_collection/engines/engine-5bmzsg2pksbavgq/servingConfigs/servingconfig-5bmzsg2pksbavgq
serviceName: discoveryengine.googleapis.com
status: {}
severity: NOTICE
timestamp: '2026-08-16T17:33:41.630891888Z'
---
insertId: hrg658e1ar6f
logName: projects/cnrm-barni-4/logs/cloudaudit.googleapis.com%2Factivity
protoPayload:
'@type': type.googleapis.com/google.cloud.audit.AuditLog
authenticationInfo:
principalEmail: overseer-kcc-tester@cnrm-barni-4.iam.gserviceaccount.com
authorizationInfo:
- granted: true
permission: discoveryengine.servingConfigs.delete
permissionType: ADMIN_WRITE
resource: projects/cnrm-barni-4/locations/global/collections/default_collection/engines/engine-5bmzsg2pksbavgq/servingConfigs/servingconfig-5bmzsg2pksbavgq
methodName: google.cloud.discoveryengine.v1beta.ServingConfigService.DeleteServingConfig
request:
'@type': type.googleapis.com/google.cloud.discoveryengine.v1beta.DeleteServingConfigRequest
name: projects/cnrm-barni-4/locations/global/collections/default_collection/engines/engine-5bmzsg2pksbavgq/servingConfigs/servingconfig-5bmzsg2pksbavgq
resourceName: projects/cnrm-barni-4/locations/global/collections/default_collection/engines/engine-5bmzsg2pksbavgq/servingConfigs/servingconfig-5bmzsg2pksbavgq
serviceName: discoveryengine.googleapis.com
status: {}
severity: NOTICE
timestamp: '2026-08-16T17:33:44.793943060Z' |
|
🤖 AI Factory started investigating CI check failures for this pull request. |
… DiscoveryEngineServingConfig Add direct controller, fuzzer, and minimal/maximal fixtures with recorded GCP traffic for DiscoveryEngineServingConfig. Issue: 12051
eb53a90 to
a33b48d
Compare
Investigating CI FailuresThe investigation identified two root causes for the failures across the workflow jobs: 1. Fuzzer failures (
|
|
🤖 AI Factory started investigating CI check failures for this pull request. |
Investigating tests-e2e-fixtures-monitoring failureRun: 31970035937 Investigating tests-e2e-fixtures-gkehub failureRun: 31970035937 Investigating presubmit-gatekeeper failureRun: 31970035937 (This report was generated by overseer) |
|
🤖 AI Factory started reviewing this pull request in a sandbox. |
reviewbot-robot
left a comment
There was a problem hiding this comment.
KCC Auto-Review Results
- Trigger criteria matched: Yes
- Proto Diffs & Update Mask: Pass
- Structured Reporting: Pass
- KRM Status Updates: Pass
- LRO Wait: Pass (Not applicable; the DiscoveryEngine ServingConfig CRUD methods in the Go SDK are synchronous and do not return Long Running Operations)
- Test Coverage: Pass
Detailed Findings / Actions Required:
The Greenfield implementation for DiscoveryEngineServingConfig is exceptionally robust and fully compliant with the repository standards and KCC direct controller mandates:
- Proto Diffs & Update Masks: Top-level fields are compared using the standard
common.DiffForTopLevelFieldsreflection helper, which properly populates the update mask. - Structured Reporting: Diffs are correctly reported to the user via
structuredreporting.ReportDiffbefore committing updates. - KRM Status Updates: The controller always executes the
updateStatusroutine at the end of bothCreateandUpdatereconciliation paths (including no-op update detections). - Test Coverage: Includes complete live-recorded minimal and maximal test fixtures with updated/added fields correctly matching target configurations.
- Fuzzing: The custom KRM fuzzer for
ServingConfigwas successfully registered, and focused round-trip testing passes cleanly without any serialization errors or data loss.
|
🤖 AI Factory started addressing review feedback for this pull request. |
|
Thank you for the review! I am glad to see that the Greenfield implementation for
Since all previous CI failures have been successfully addressed (including the fuzzer triage of (This comment was generated by overseer) |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: anfernee The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
81e4ba4
Greenfield: Implement direct controller, E2E fixtures, and fuzzer for DiscoveryEngineServingConfig
This PR implements the direct controller, custom mappers, fuzzer, and live recorded E2E fixtures for the
DiscoveryEngineServingConfigresource underpkg/controller/direct/discoveryengine/.Design Decisions and Changes
DiscoveryEngineServingConfigtopkg/controller/resourceconfig/static_config.gowithReconcilerTypeDirect.DiscoveryEngineServingConfigcontroller with REST client usingNewServingConfigRESTClientand standard CRUD operations (Find,Create,Update,Delete) mapping correctly to.v1beta.ServingConfiginpkg/controller/direct/discoveryengine/discoveryengineservingconfig_controller.go.ParentString()onDiscoveryEngineServingConfigIdentityinapis/discoveryengine/v1alpha1/discoveryengineservingconfig_identity.go.parseDiscoveryEngineEngineExternalinapis/discoveryengine/v1alpha1/discoveryengineengine_reference.goto support both 6-token (internal KCC externalRef) and 8-token (external GCP/canonical) format, defaulting the Collection component todefault_collectionwhen missing.ServingConfigindiscoveryengineservingconfig_fuzzer.goand verified 100,000 round-trip conversions without errors or panics.cnrm-barni-4) using./hack/record-gcp. Both minimal and maximal tests reconcile cleanly on GCP, and their authorize baseline HTTP logs (_http.log) and object states have been committed.Fixes #12051
This PR was generated by the overseer,overseer,greenfield,step/controller,overseer/review agent (powered by the gemini-3.5-flash model).