WIP: Rename ApprovalPolicy to AgenticConfig and consolidate configuration#3
Draft
harche wants to merge 2 commits into
Draft
WIP: Rename ApprovalPolicy to AgenticConfig and consolidate configuration#3harche wants to merge 2 commits into
harche wants to merge 2 commits into
Conversation
…uration Replace the ApprovalPolicy CRD with AgenticConfig — a cluster-scoped singleton that consolidates: - Approval policy (stages, maxAttempts) under spec.approval - Concurrency limits (maxConcurrentProposals) at top level - Console plugin image under spec.console.image - Sandbox pod config under spec.sandbox (image, timeout) Remove --template-name CLI flag; base template name is now a package constant (defaultBaseTemplateName = "lightspeed-agent"). Add Enabled callback to ProposalReconciler and AgenticConsoleConfig for feature gate integration with lightspeed-operator. Console reconciler now reads image from AgenticConfig CR instead of receiving it as a constructor parameter. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Make console and sandbox sections required on AgenticConfig — the controller is useless without images configured. Add CEL validations: - Image fields: MinLength=1, MaxLength=512, must contain '/' (registry path) - Singleton name enforcement (metadata.name == 'cluster') - Approval stages: MinItems=1, MaxItems=4 with listType=map - maxAttempts: Minimum=1, Maximum=3 - maxConcurrentProposals: Minimum=1, Maximum=20 Also fix console reconciler error handling: distinguish NotFound from transient errors, and use AgenticConfigName constant instead of hardcoded "cluster" string. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
xrajesh
pushed a commit
to xrajesh/lightspeed-agentic-operator
that referenced
this pull request
May 10, 2026
…1, #13-17, #19-22, #29, #32) - openshift#1: Change status.attempts from *int32 to int32 with min=1/max=int32 validation - openshift#2: Move maxAttempts from ProposalSpec to ApprovalPolicy (admin ceiling) and ExecutionApproval (user choice); fix semantics so N = N total attempts - openshift#3: Remove spec.revision, use metadata.generation for revision signaling - openshift#4: Make ProposalStep.tools non-pointer with omitzero, add MinProperties=1 - #8-11: Make outcome/result/conditionOutcome required; SandboxInfo fields required - #13: Add CEL singleton rule (metadata.name == "cluster") on ApprovalPolicy - #14: Use listType=map+listMapKey=name on ApprovalPolicy stages - #15: Remove defaultOption from ApprovalPolicy (operator defaults to option 0) - #16-17: Add omitempty to name/approval, document allowed values - #19: Replace denied bool with decision enum (Approved|Denied) + CEL immutability - #20: Make ProposalApproval spec required - #21: Use listType=map+listMapKey=type on ProposalApproval stages - #22: Make estimatedImpact required on RemediationOption - #29: Remove components from ExecutionResult and VerificationResult (copy-paste error) - #32: Add MinProperties=1 to ToolsSpec Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
ApprovalPolicyCRD →AgenticConfig— a cluster-scoped singleton consolidating approval policy, concurrency limits, console/sandbox images, and timeout configspec.approval(stages, maxAttempts);maxConcurrentProposalsstays top-levelspec.console.imagereplaces--agentic-console-imageCLI flagspec.sandbox.imageandspec.sandbox.timeout(scaffolding for future wiring)lightspeed-agent), removes--template-nameflagEnabledcallback onProposalReconcilerand console config for feature gate integrationAgenticConfigCR, with proper NotFound vs transient error handlingCompanion PR
Test plan
go build ./...passesgo test ./controller/proposal/... -count=1— all tests passgo test ./controller/console/... -count=1— all tests pass🤖 Generated with Claude Code