API Reference¶
Packages¶
agentic.prototype.x-k8s.io/v0alpha0¶
Resource Types¶
AccessPolicySpec¶
AccessPolicySpec defines the desired state of AccessPolicy.
Appears in: - XAccessPolicy
| Field | Description | Default | Validation |
|---|---|---|---|
targetRefs LocalPolicyTargetReferenceWithSectionName array |
TargetRefs specifies the targets of the AccessPolicy. An AccessPolicy must target at least one resource. |
MaxItems: 10 MinItems: 1 Required: {} |
|
rules AccessRule array |
Rules defines a list of rules to be applied to the target. An AccessPolicy must have at least one rule. |
MaxItems: 10 MinItems: 1 Required: {} |
AccessPolicyStatus¶
AccessPolicyStatus defines the observed state of AccessPolicy.
Appears in: - XAccessPolicy
| Field | Description | Default | Validation |
|---|---|---|---|
ancestors PolicyAncestorStatus array |
Ancestors is a list of ancestor resources (usually Backend) that are associated with the policy, and the status of the policy with respect to each ancestor. This field is inherited from the Gateway API Policy status definition. For more details, see the upstream documentation: https://gateway-api.sigs.k8s.io/reference/spec/#policyancestorstatus |
MaxItems: 16 Required: {} |
AccessRule¶
AccessRule specifies an authorization rule for the targeted backend. If the tool list is empty, the rule denies access to all tools from Source.
Appears in: - AccessPolicySpec
| Field | Description | Default | Validation |
|---|---|---|---|
name string |
Name specifies the name of the rule. | MaxLength: 253 MinLength: 1 Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ Required: {} |
|
source Source |
Source specifies the source of the request. | Required: {} |
|
authorization AuthorizationRule |
Authorization specifies the authorization rule to be applied to requests from the source. | Optional: {} |
AuthorizationRule¶
Appears in: - AccessRule
| Field | Description | Default | Validation |
|---|---|---|---|
type AuthorizationRuleType |
Enum: [InlineTools ExternalAuth] Required: {} |
||
tools string array |
Tools specifies a list of tools inline. | Optional: {} |
|
externalAuth HTTPExternalAuthFilter |
ExternalAuth specifies an external auth filter to be used for authorization. Support: Extended |
Optional: {} |
AuthorizationRuleType¶
Underlying type: string
AuthorizationRuleType identifies a type of authorization rule.
Validation: - Enum: [InlineTools ExternalAuth]
Appears in: - AuthorizationRule
| Field | Description |
|---|---|
InlineTools |
AuthorizationRuleTypeInlineTools is used to identify authorization rules declared as an inline list of authorized tools. |
ExternalAuth |
AuthorizationRuleTypeExternalAuth is used to identify authorization rules evaluated by an external auth service. |
AuthorizationSourceSPIFFE¶
Underlying type: string
Validation:
- Pattern: ^spiffe://[a-z0-9._-]+(?:/[A-Za-z0-9._-]+)*$
Appears in: - Source
AuthorizationSourceServiceAccount¶
Appears in: - Source
| Field | Description | Default | Validation |
|---|---|---|---|
namespace string |
Namespace is the namespace of the ServiceAccount If not specified, current namespace (the namespace of the policy) is used. |
Optional: {} |
|
name string |
Name is the name of the ServiceAccount. | Required: {} |
AuthorizationSourceType¶
Underlying type: string
AuthorizationSourceType identifies a type of source for authorization.
Validation: - Enum: [ServiceAccount SPIFFE]
Appears in: - Source
| Field | Description |
|---|---|
SPIFFE |
AuthorizationSourceTypeSPIFFE is used to identify a request matches a SPIFFE Identity. |
ServiceAccount |
AuthorizationSourceTypeServiceAccount is used to identify a request matches a ServiceAccount from within the cluster. |
BackendSpec¶
BackendSpec defines the desired state of Backend.
Appears in: - XBackend
| Field | Description | Default | Validation |
|---|---|---|---|
mcp MCPBackend |
MCP defines a MCP backend. | ExactlyOneOf: [serviceName hostname] Required: {} |
BackendStatus¶
BackendStatus defines the observed state of Backend.
Appears in: - XBackend
| Field | Description | Default | Validation |
|---|---|---|---|
conditions Condition array |
conditions represent the current state of the Backend resource. Each condition has a unique type and reflects the status of a specific aspect of the resource. Standard condition types include: - "Available": the resource is fully functional - "Progressing": the resource is being created or updated - "Degraded": the resource failed to reach or maintain its desired state The status of each condition is one of True, False, or Unknown. |
Optional: {} |
MCPBackend¶
MCPBackend describes a MCP Backend. ServiceName and Hostname cannot be defined at the same time.
Validation: - ExactlyOneOf: [serviceName hostname]
Appears in: - BackendSpec
| Field | Description | Default | Validation |
|---|---|---|---|
serviceName string |
ServiceName defines the Kubernetes Service name of a MCP backend. | Optional: {} |
|
hostname string |
Hostname defines the hostname of the external MCP service to connect to. | Optional: {} |
|
port integer |
Port defines the port of the backend endpoint. | Maximum: 65535 Minimum: 1 Required: {} |
|
path string |
Path is the URL path of the MCP backend for MCP traffic. A MCP backend may serve both MCP traffic and non-MCP traffic. If not specified, the default is /mcp. |
/mcp | Optional: {} |
Source¶
Source specifies the source of a request.
Type must be set to indicate the type of source type. Similarly, either SPIFFE or Serviceaccount can be set based on the type.
Appears in: - AccessRule
| Field | Description | Default | Validation |
|---|---|---|---|
type AuthorizationSourceType |
Enum: [ServiceAccount SPIFFE] Required: {} |
||
spiffe AuthorizationSourceSPIFFE |
spiffe specifies an identity that is matched by this rule. spiffe identities must be specified as SPIFFE-formatted URIs following the pattern: spiffe:// The exact workload identifier structure is implementation-specific. spiffe identities for authorization can be derived in various ways by the underlying implementation. Common methods include: - From peer mTLS certificates: The identity is extracted from the client's mTLS certificate presented during connection establishment. - From IP-to-identity mappings: The implementation might maintain a dynamic mapping between source IP addresses (pod IPs) and their associated identities (e.g., Service Account, SPIFFE IDs). - From JWTs or other request-level authentication tokens. Note for reviewers: While this GEP primarily focuses on identity-based authorization where identity is often established at the transport layer, some implementations might derive identity from authenticated tokens or sources within the request itself. |
Pattern: ^spiffe://[a-z0-9._-]+(?:/[A-Za-z0-9._-]+)*$ Optional: {} |
|
serviceAccount AuthorizationSourceServiceAccount |
ServiceAccount specifies a Kubernetes Service Account that is matched by this rule. A request originating from a pod associated with this serviceaccount will match the rule. The ServiceAccount listed here is expected to exist within the same trust domain as the targeted workload. Cross-trust-domain access should instead be expressed using the SPIFFE field. |
Optional: {} |
XAccessPolicy¶
XAccessPolicy is the Schema for the accesspolicies API.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
agentic.prototype.x-k8s.io/v0alpha0 |
||
kind string |
XAccessPolicy |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
Optional: {} |
|
spec AccessPolicySpec |
spec defines the desired state of AccessPolicy. | Required: {} |
|
status AccessPolicyStatus |
status defines the observed state of AccessPolicy. | Optional: {} |
XBackend¶
XBackend is the Schema for the backends API.
| Field | Description | Default | Validation |
|---|---|---|---|
apiVersion string |
agentic.prototype.x-k8s.io/v0alpha0 |
||
kind string |
XBackend |
||
metadata ObjectMeta |
Refer to Kubernetes API documentation for fields of metadata. |
Optional: {} |
|
spec BackendSpec |
spec defines the desired state of Backend. | Required: {} |
|
status BackendStatus |
status defines the observed state of Backend. | Optional: {} |