Greenfield: Implement direct controller, E2E fixtures, and fuzzer for VertexAISchedule - #12430
Conversation
Google Cloud Audit Log ProofThe following Google Cloud Audit Log proves that the VertexAISchedule controller successfully created the scheduled resource against real GCP: insertId: wii6xwe4klmn
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: aiplatform.schedules.create
permissionType: ADMIN_WRITE
resource: projects/cnrm-barni-4/locations/us-central1
methodName: google.cloud.aiplatform.v1.ScheduleService.CreateSchedule
serviceName: aiplatform.googleapis.com
status: {}
resourceLocation:
currentLocations:
- us-central1
resourceName: projects/cnrm-barni-4/locations/us-central1
response:
'@type': type.googleapis.com/google.cloud.aiplatform.v1.Schedule
createTime: '2026-08-16T04:09:20.176618Z'
endTime: '2027-12-31T23:59:59Z'
name: projects/600845353393/locations/us-central1/schedules/5058758441397387264
nextRunTime: '2027-01-01T02:00:00Z'
startTime: '2027-01-01T00:00:00Z'
state: ACTIVE
updateTime: '2026-08-16T04:09:20.176618Z'
severity: NOTICE
timestamp: '2026-08-16T04:09:20.096499636Z' |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
🤖 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 - Diffs and field update masks are computed correctly using
mappers.OnlySpecFieldsandcommon.DiffForTopLevelFields. - Structured Reporting: Pass - Diffs are properly reported via
structuredreporting.ReportDiffin theUpdateoperation. - KRM Status Updates: Pass - Mandatory KRM status updates are correctly executed in all code paths (Create, Update, and No-op/No-diff updates) via
updateStatusandop.UpdateStatus. - LRO Wait: Pass - Deletion wait is correctly implemented via
op.Wait(ctx). Create and Update operations on Schedules are direct synchronous calls and do not return LROs. - Test Coverage: Pass - Highly robust minimal and maximal test fixtures have been added, successfully covering a comprehensive set of spec fields and resolving many alpha missing-field exceptions.
Detailed Findings / Actions Required:
The PR is of exceptional quality, adhering strictly to KCC direct controller standards and implementing correct lifecycle and validation patterns. One minor point has been highlighted regarding future support for notebook schedules.
| if desiredpb.GetCreatePipelineJobRequest() != nil { | ||
| desiredpb.GetCreatePipelineJobRequest().Parent = parent | ||
| } | ||
| if desiredpb.GetCreateNotebookExecutionJobRequest() != nil { |
There was a problem hiding this comment.
While CreateNotebookExecutionJobRequest is currently not triaged in the fuzzer and not used in the existing E2E test fixtures, please note that CreateNotebookExecutionJobRequest_FromProto and _ToProto in the generated/written mappers currently do not map the .Parent field. When notebook schedules are enabled/implemented in the future, those mapper functions should be updated to properly map the .Parent field to avoid any persistent update loops in compareSchedule.
|
🤖 AI Factory started addressing review feedback for this pull request. |
09a5c9d to
5b01af3
Compare
|
Thanks for the excellent and detailed review! I have updated the handwritten mapper functions This ensures that once notebook schedules are enabled in the future, there won't be any persistent update loops in All unit, fuzz, and formatting tests have passed successfully, and the amended changes have been force-pushed to the branch. (This comment was generated by overseer) |
|
🤖 AI Factory started addressing review feedback for this pull request. |
1 similar comment
|
🤖 AI Factory started addressing review feedback for this pull request. |
|
🤖 AI Factory started investigating CI check failures for this pull request. |
Investigating tests-e2e-fixtures-bigqueryanalyticshub failureRun: 31961430946 Investigating tests-e2e-fixtures-cloudidentity failureRun: 31961430946 Investigating tests-e2e-fixtures-compute-2-of-4 failureRun: 31961430946 Investigating presubmit-gatekeeper failureRun: 31961430946 (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 (Calculated correctly via
common.DiffForTopLevelFieldsand passed viaUpdateMask) - Structured Reporting: Pass (Reported correctly via
structuredreporting.ReportDiff(ctx, diffs)) - KRM Status Updates: Pass (Strict status updates are executed at the end of both
CreateandUpdatereconciliations, including no-op updates) - LRO Wait: Pass (Deletion correctly waits on the LRO via
op.Wait(ctx), and creation/update are synchronous operations in Vertex AI) - Test Coverage: Pass (Standard minimal and maximal test cases are fully provided under the testdata directory)
The implementation is exceptionally clean, well-tested, and adheres perfectly to KCC's greenfield direct controller standards. Only minor future improvements or warnings are highlighted below.
| } | ||
|
|
||
| func (m *scheduleModel) AdapterForURL(ctx context.Context, url string) (directbase.Adapter, error) { | ||
| // TODO: Support AdapterForURL |
There was a problem hiding this comment.
AdapterForURL is currently a placeholder returning nil, nil. This is fully acceptable for initial Greenfield controllers, but should be implemented eventually to support importing existing resources by URL.
|
|
||
| clonedDesired := proto.CloneOf(desired) | ||
|
|
||
| populateDefaults := func(obj *pb.Schedule) { |
There was a problem hiding this comment.
populateDefaults is an empty helper function. If the GCP Vertex AI API populates any server-side default values (e.g. for optional scheduling options), they can be normalized here to prevent false diffs.
|
🤖 AI Factory started addressing review feedback for this pull request. |
… VertexAISchedule Implement the "direct" controller, fuzzer registration, and live recorded E2E fixtures for the VertexAISchedule resource. Issue: 11916
|
I have addressed the outstanding feedback for the
All presubmit checks, static analysis, unit tests, and fuzz tests have passed successfully. The amended changes have been force-pushed to the branch. (This comment was generated by overseer) |
5b01af3 to
4575135
Compare
|
🤖 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
- Test Coverage: Pass
Detailed Findings / Actions Required:
The PR is fully compliant with KCC Greenfield controller standards and guidelines. The implementation of the VertexAISchedule direct controller is robust, clean, and well-designed. The mapper, fuzzer, and minimal/maximal test fixtures are completely aligned with project requirements and conventions. No actions are required.
|
🤖 AI Factory started addressing review feedback for this pull request. |
|
Thank you for the review! We are glad to see that the We are ready for further human review and approval! (This comment was generated by overseer) |
Greenfield: Implement direct controller, E2E fixtures, and fuzzer for VertexAISchedule
This PR implements the "direct" controller, fuzzer registration, and live recorded E2E fixtures for the
VertexAIScheduleresource.Changes
vertexaischedule_controller.gounderpkg/controller/direct/aiplatform/.Parentfield of nested requests (CreatePipelineJobRequestandCreateNotebookExecutionJobRequest) indesiredpbto ensure correct parent path formatting for nested resources inside schedules.vertexaischedule_fuzzer.goand verified it passes the random round-trip tests successfully.Real GCP Testing & Recording
record-gcpwas successfully run against real GCP.cnrm-barni-4Fixes #11916
This PR was generated by the overseer,overseer,greenfield,step/controller agent (powered by the gemini-3.5-flash model).