Repository navigation
Slice 4d.1 — mcpServerRefs plural CRD field + admission CEL - #291
Merged
Pal Lakatos-Toth (pallakatos) merged 2 commits intoMay 13, 2026
Merged
Conversation
Closes Slice 4 DoD #2 (mcpServerRef singular deprecation). Adds GovernanceConfig.mcpServerRefs (Vec<LocalObjectRef>) alongside the existing singular mcpServerRef, which is now deprecated and honored as a length-1 alias via effective_mcp_server_refs(). Controller-side changes: - New constants MCP_SINGULAR_DEPRECATED + PLURAL_MCP_SERVERS_UNSUPPORTED_YET in status/conditions.rs::reason. - Reconciler mirror loop refactored to iterate effective_mcp_server_refs(). Singular-field use emits tracing::warn with McpSingularDeprecated. len > 1 short-circuits via degrade! macro until Slice 4d.2 wires per-server addressing — principles §3 honest 'not-yet-enforced' signal. - 6 new unit tests: shim precedence (3 cases) + camelCase + omit-when-empty + plural-wins-when-both-set. Controller suite: 555 passing. Admission CEL on deploy/helm/azureclaw/templates/crd.yaml: - Mutex: singular and plural cannot both be set. - maxItems: 8 (router-side scheme is sized for this). - Per-name uniqueness across mcpServerRefs. Out of scope for 4d.1 (queued for 4d.2): - Per-server jwks-{name}.json / tools-{name}.json file scheme. - Router-side McpServerRegistry + namespaced tool dispatch. - Stale-file sweep (DoD #6). - e2e fixture with ≥ 3 servers (DoD #1). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…refs-plural # Conflicts: # CHANGELOG.md
Pal Lakatos-Toth (pallakatos)
deleted the
slice-4d.1-mcp-server-refs-plural
branch
May 13, 2026 18:37
Pal Lakatos-Toth (pallakatos)
pushed a commit
that referenced
this pull request
May 13, 2026
Slice 4d.1 landed on dev (PR #291) while slice-4d.2 was open; both touched the same three files. Keep the Slice 4d.2 version everywhere: plural per-server loop, no PluralMcpServersUnsupportedYet degrade, CRD doc comment pointing forward to 4d.3. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.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.
Closes Slice 4 DoD #2 (
mcpServerRefsingular deprecation).Adds
GovernanceConfig.mcpServerRefs(Vec<LocalObjectRef>) alongside the existing singularmcpServerRef, which is now deprecated and honored as a length-1 alias viaeffective_mcp_server_refs().Controller-side
MCP_SINGULAR_DEPRECATED+PLURAL_MCP_SERVERS_UNSUPPORTED_YETinstatus/conditions.rs::reason.Admission CEL on
deploy/helm/azureclaw/templates/crd.yamlmaxItems: 8(router-side scheme is sized for this).mcpServerRefs.Out of scope (queued for Slice 4d.2)
jwks-{name}.json/tools-{name}.jsonfile scheme (DoD Bump jsonwebtoken from 9.3.1 to 10.3.0 #1, fix(entrypoint): pre-create OpenClaw temp dirs and fix router log redirect #3).McpServerRegistry+ namespaced tool dispatch (DoD fix(entrypoint): pre-create OpenClaw temp dirs and fix router log redirect #3).Verification
cargo test --release --package azureclaw-controller --bins→ 555 passed.cargo clippy --release --package azureclaw-controller --all-targets -- -D warnings→ clean.cargo fmt --check -p azureclaw-controller→ clean.