Skip to content

Repo structure to host proposals, apis#119

Open
HarshithaMS005 wants to merge 1 commit into
kubernetes-sigs:mainfrom
HarshithaMS005:repo-structure
Open

Repo structure to host proposals, apis#119
HarshithaMS005 wants to merge 1 commit into
kubernetes-sigs:mainfrom
HarshithaMS005:repo-structure

Conversation

@HarshithaMS005
Copy link
Copy Markdown
Contributor

What type of PR is this?
/kind documentation

What this PR does / why we need it:
Added repo-structure documentation so contributors know where to find and add proposals, APIs, and docs. It adds docs/REPO_STRUCTURE.md, docs/api/README.md (API types, CRDs, clients, and relation to Gateway API), updates docs/proposals/README.md, and updates the main README with links to proposals, APIs, and the structure doc. This gives a single place to look for layout and contribution conventions.

Which issue(s) this PR fixes:
*Automatically closes linked issue when PR is merged.
Fixes #14

Does this PR introduce a user-facing change?:

NONE

@k8s-ci-robot k8s-ci-robot added the kind/documentation Categorizes issue or PR as related to documentation. label Feb 26, 2026
@netlify
Copy link
Copy Markdown

netlify Bot commented Feb 26, 2026

Deploy Preview for kube-agentic-networking ready!

Name Link
🔨 Latest commit 61007f0
🔍 Latest deploy log https://app.netlify.com/projects/kube-agentic-networking/deploys/69bd590f0b72820008571d13
😎 Deploy Preview https://deploy-preview-119--kube-agentic-networking.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: HarshithaMS005
Once this PR has been reviewed and has the lgtm label, please assign david-martin for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Feb 26, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Hi @HarshithaMS005. Thanks for your PR.

I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Feb 26, 2026
Copy link
Copy Markdown
Member

@LiorLieberman LiorLieberman left a comment

Choose a reason for hiding this comment

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

Looks great to me overall, left a few small nits. Thank you @HarshithaMS005 !

Comment thread docs/api/README.md Outdated
Comment thread docs/api/README.md Outdated
Comment thread docs/api/README.md Outdated
@LiorLieberman
Copy link
Copy Markdown
Member

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Feb 27, 2026
Copy link
Copy Markdown
Contributor

@chuangw6 chuangw6 left a comment

Choose a reason for hiding this comment

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

Thank you @HarshithaMS005 for your contribution!

Comment thread docs/api/README.md Outdated
Comment thread docs/REPO_STRUCTURE.md Outdated
Comment thread README.md Outdated
Comment thread docs/REPO_STRUCTURE.md Outdated
Comment thread docs/api/README.md Outdated
Comment thread docs/REPO_STRUCTURE.md Outdated
@LiorLieberman
Copy link
Copy Markdown
Member

Thanks @HarshithaMS005! ping me when you had a chance to fix the comments and I will approve

@HarshithaMS005
Copy link
Copy Markdown
Contributor Author

@LiorLieberman I have made necessary changes as per the comments please review.

@HarshithaMS005
Copy link
Copy Markdown
Contributor Author

Hi @LiorLieberman , Can you please review this PR ? I have made necessary changes.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 19, 2026
Signed-off-by: Harshitha MS <harshitha.ms@ibm.com>
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 20, 2026
@LiorLieberman
Copy link
Copy Markdown
Member

/assign @robscott can you take a look?

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

PR needs rebase.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Mar 24, 2026
Copy link
Copy Markdown
Member

@robscott robscott left a comment

Choose a reason for hiding this comment

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

Thanks for the great work on this @HarshithaMS005! While there's a lot of really great content in here, I'm worried that some of it will become stale since the project is still moving pretty quickly. Have recommended omitting some portions of this for now and revisiting as the project and APIs stabilize a bit more.

@@ -0,0 +1,60 @@
# Repository structure
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

While I see the value in a doc like this, unfortunately I think it would go stale very quickly, especially with such a relatively young project. Mind leaving this out of this PR?

Comment thread docs/proposals/README.md
Comment on lines +7 to +11
| Proposal | Description |
|----------|-------------|
| [0008-ToolAuthAPI.md](0008-ToolAuthAPI.md) | Tool Authorization API |
| [0017-DynamicAuth.md](0017-DynamicAuth.md) | Dynamic Auth |
| [0059-AccessPolicyTargetRefs.md](0059-AccessPolicyTargetRefs.md) | AccessPolicy TargetRefs |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this is very useful to have, but again very worried about it going stale. Maybe we could autogenerate the list here? For example, Gateway API autogenerates this list for GEPs, but it does admittedly rely on a GEP metadata file. We could potentially copy most of this over, but that may be better for a standalone PR since it could get quite large: https://github.com/kubernetes-sigs/gateway-api/blob/main/tools/geps/main.go.

Comment thread docs/design/api.md
@@ -0,0 +1,38 @@
# API design

This document describes the design of the project’s custom APIs and how they fit with the Gateway API.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
This document describes the design of the project’s custom APIs and how they fit with the Gateway API.
This document describes the design of the project’s custom APIs and how they fit with the Gateway API. Note that this API is still in an early alpha state and could still change significantly.

Comment thread docs/design/api.md
- **XBackend** — describes a backend (e.g. an MCP server) that HTTPRoutes can reference via BackendRef.
- **XAccessPolicy** — describes who can access what: it targets one or more XBackends and defines rules (sources and authorization) that the data plane enforces.

Type definitions and generated code live under [`api/`](../../api/) and [`k8s/`](../../k8s/). For a short “what lives where” guide, see [repo_structure.md](repo_structure.md).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Recommend removing this

Comment thread docs/design/api.md
@@ -0,0 +1,38 @@
# API design
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this intended to be part of the website? If so, I'd recommend putting it in the site-src directory

Comment thread docs/design/api.md

## XBackend

An **XBackend** represents a backend that agents or tools call into—for example, an MCP server. It is namespaced and is referenced by HTTPRoute `BackendRef`s (and by XAccessPolicy targetRefs). The controller and translator use XBackends to configure the data plane (e.g. clusters, RBAC) so that traffic to that backend is correctly routed and authorized.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Recommend leaving out any implementation details here and just focusing on what the API does

Suggested change
An **XBackend** represents a backend that agents or tools call into—for example, an MCP server. It is namespaced and is referenced by HTTPRoute `BackendRef`s (and by XAccessPolicy targetRefs). The controller and translator use XBackends to configure the data plane (e.g. clusters, RBAC) so that traffic to that backend is correctly routed and authorized.
An **XBackend** represents a backend that agents or tools call into—for example, an MCP server. It is namespaced and is referenced by HTTPRoute `BackendRef`s (and by XAccessPolicy targetRefs).

Comment thread docs/design/api.md

## XAccessPolicy

An **XAccessPolicy** is an authorization policy: it defines *who* can access *what* for the backends it targets. It targets XBackends via `targetRefs` and contains rules that describe allowed (or denied) sources and optional authorization (e.g. which tools or methods). The translator turns XAccessPolicy into data-plane configuration (e.g. Envoy RBAC) so that only allowed callers can reach the targeted backends.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
An **XAccessPolicy** is an authorization policy: it defines *who* can access *what* for the backends it targets. It targets XBackends via `targetRefs` and contains rules that describe allowed (or denied) sources and optional authorization (e.g. which tools or methods). The translator turns XAccessPolicy into data-plane configuration (e.g. Envoy RBAC) so that only allowed callers can reach the targeted backends.
An **XAccessPolicy** is an authorization policy: it defines *who* can access *what* for the backends it targets. It targets Gateways or XBackends via `targetRefs` and contains rules that describe allowed (or denied) sources and optional authorization (e.g. which tools or methods).

Comment thread docs/design/api.md
Comment on lines +18 to +22
Key design points:

- One XBackend per logical backend (e.g. one MCP server).
- Backend identity can be specified by Kubernetes Service name (in-cluster) or by hostname (external).
- The data plane uses XBackend to know where to send traffic and how to secure it (e.g. mTLS, path).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These details feel like they could become stale pretty quickly, recommend omitting.

Comment thread docs/design/api.md
Comment on lines +28 to +32
Key design points:

- Targets one or more XBackends via `targetRefs`.
- Rules combine a source (e.g. service account, namespace) with optional authorization (e.g. allowed tools/methods).
- If no XAccessPolicy targets an XBackend, the data plane does not enforce RBAC for that backend (allow-all behaviour). If at least one XAccessPolicy targets it, the translated rules are enforced.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

These details could become stale pretty quickly, recommend omitting.

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

@HarshithaMS005: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-kube-agentic-networking-gateway-api-conformance 61007f0 link true /test pull-kube-agentic-networking-gateway-api-conformance

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/documentation Categorizes issue or PR as related to documentation. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repo structure to host proposals, apis etc

5 participants