This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
devopscritical PriorityID: k8s-gateway-api-cross-namespace-referencegrant-enforcement

Mandatory ReferenceGrant Authorization for Cross-Namespace Kubernetes Gateway API Bindings

Enforces explicit, least-privilege ReferenceGrant declarations in target namespaces whenever Kubernetes Gateway API routes or listeners bind cross-namespace services or secrets. Disallows unrestricted cross-tenant backendRefs and wildcard listener selectors to eliminate traffic interception, secret exfiltration, and route hijacking across cluster boundaries.

Prohibited Anti-Pattern: Cross-Namespace Route Attachment and Backend Forwarding Without Explicit Administrative ReferenceGrant Bindings

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Mandatory ReferenceGrant Authorization for Cross-Namespace Kubernetes Gateway API Bindings - Enforces explicit, least-privilege ReferenceGrant declarations in target namespaces whenever Kubernetes Gateway API routes or listeners bind cross-namespace services or secrets. Disallows unrestricted cross-tenant backendRefs and wildcard listener selectors to eliminate traffic interception, secret exfiltration, and route hijacking across cluster boundaries.
globs: deploy/**/*.yaml, k8s/**/*.yaml, helm/**/*.yaml, manifests/**/*.yaml, charts/**/*.yaml, infrastructure/**/*.yaml
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/k8s-gateway-api-cross-namespace-referencegrant-enforcement"
---

# Mandatory ReferenceGrant Authorization for Cross-Namespace Kubernetes Gateway API Bindings

> **Severity**: CRITICAL | **Category**: devops
> **Anti-Pattern Warning**: Cross-Namespace Route Attachment and Backend Forwarding Without Explicit Administrative ReferenceGrant Bindings

## System Constraints
You are a Principal Software Architect and Kubernetes Security Engineer specializing in Kubernetes Gateway API (gateway.networking.k8s.io). You strictly enforce zero-trust, multi-tenant boundaries. You mandate that any cross-namespace reference—whether an HTTPRoute referencing a foreign Service backend or a Gateway listener referencing a foreign TLS Secret—MUST be explicitly authorized by a ReferenceGrant located within the target namespace. You reject manifests using wildcard cross-namespace route selectors or unauthorized cross-tenant backendRefs.

## Strict Guidelines
- Engineers MUST ALWAYS declare an explicit `ReferenceGrant` (`gateway.networking.k8s.io/v1beta1`) in the target/owning namespace when creating cross-namespace `backendRefs` or TLS certificate references.
- Engineers MUST NOT deploy `HTTPRoute`, `GRPCRoute`, `TCPRoute`, `UDPRoute`, or `TLSRoute` resources targeting services in another namespace without verifying that the destination namespace owner has provisioned a corresponding `ReferenceGrant`.
- Engineers MUST NOT configure Gateway listeners with `allowedRoutes.namespaces.from: All` across multi-tenant boundaries; listener selectors MUST be restricted to `Same` or explicit label-based `Selector` boundaries.
- Manifests MUST scope `ReferenceGrant` rules strictly to the minimal necessary resource `kind` and specific source `namespace`, restricting target resource `name` fields wherever granular resource constraints are supported.
- CI/CD validation pipelines MUST run admission checks (e.g., conftest, opa, or kyverno) to reject manifests attempting cross-namespace routing devoid of corresponding declarative `ReferenceGrant` resources.
- Services MUST NEVER assume cross-namespace route resolution will succeed silently; Gateway controllers MUST mark unresolved cross-namespace backend references as `ResolvedRefs: False` with reason `RefNotPermitted`.

## Bad vs Good Implementations
### Cross-Namespace HTTPRoute Binding with Administrative ReferenceGrant

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: tenant-a defines a backendRef pointing to tenant-b's payment-service without an explicit ReferenceGrant from tenant-b. In insecure or misconfigured environments, this allows unauthorized route splicing and cross-tenant data exposure.
```yaml
# VULNERABLE: Cross-tenant route hijack / unauthorized cross-namespace backendRef
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: tenant-a-checkout
  namespace: tenant-a
spec:
  parentRefs:
    - name: shared-gateway
      namespace: infra-gateway
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /api/checkout
      backendRefs:
        # Directly hijacking or forwarding to internal service in tenant-b namespace
        # without authorization from tenant-b administrators.
        - name: payment-service
          namespace: tenant-b
          port: 8080
```

#### Production Standard (Correct)
> **Standard**: tenant-b explicitly authorizes tenant-a's HTTPRoute via a scoped ReferenceGrant located in tenant-b. The ReferenceGrant limits exposure specifically to the payment-service Service kind and rejects arbitrary route attachments.
```yaml
# SECURE: Explicit ReferenceGrant in target namespace paired with scoped HTTPRoute
apiVersion: gateway.networking.k8s.io/v1beta1
kind: ReferenceGrant
metadata:
  name: allow-tenant-a-checkout-route
  namespace: tenant-b # Resides strictly in target service owner namespace
spec:
  from:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute
      namespace: tenant-a
  to:
    - group: ""
      kind: Service
      name: payment-service
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: tenant-a-checkout
  namespace: tenant-a
spec:
  parentRefs:
    - name: shared-gateway
      namespace: infra-gateway
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /api/checkout
      backendRefs:
        - name: payment-service
          namespace: tenant-b
          port: 8080
```

Architectural Specification & Invariant Rationale

Architectural Invariant Design: Mandatory ReferenceGrant Authorization for Cross-Namespace Kubernetes Gateway API Bindings

Mandatory ReferenceGrant Authorization for Cross-Namespace Kubernetes Gateway API Bindings defines an industrial-grade behavioral standard for devops engineering. Enforces explicit, least-privilege ReferenceGrant declarations in target namespaces whenever Kubernetes Gateway API routes or listeners bind cross-namespace services or secrets. Disallows unrestricted cross-tenant backendRefs and wildcard listener selectors to eliminate traffic interception, secret exfiltration, and route hijacking across cluster boundaries. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Cross-Namespace Route Attachment and Backend Forwarding Without Explicit Administrative ReferenceGrant Bindings Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftCross-Namespace Route Attachment and Backend Forwarding Without Explicit Administrative ReferenceGrant BindingsCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS declare an explicit `ReferenceGrant` (`gateway.networking.k8s.io/v1beta1`) in the target/owning namespace when creating cross-namespace `backendRefs` or TLS certificate references.

Engineers MUST ALWAYS declare an explicit `ReferenceGrant` (`gateway.networking.k8s.io/v1beta1`) in the target/owning namespace when creating cross-namespace `backendRefs` or TLS certificate references.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT deploy `HTTPRoute`, `GRPCRoute`, `TCPRoute`, `UDPRoute`, or `TLSRoute` resources targeting services in another namespace without verifying that the destination namespace owner has provisioned a corresponding `ReferenceGrant`.

Engineers MUST NOT deploy `HTTPRoute`, `GRPCRoute`, `TCPRoute`, `UDPRoute`, or `TLSRoute` resources targeting services in another namespace without verifying that the destination namespace owner has provisioned a corresponding `ReferenceGrant`.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

Engineers MUST NOT configure Gateway listeners with `allowedRoutes.namespaces.from

Engineers MUST NOT configure Gateway listeners with `allowedRoutes.namespaces.from: All` across multi-tenant boundaries; listener selectors MUST be restricted to `Same` or explicit label-based `Selector` boundaries.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

Manifests MUST scope `ReferenceGrant` rules strictly to the minimal necessary resource `kind` and specific source `namespace`, restricting target resource `name` fields wherever granular resource constraints are supported.

Manifests MUST scope `ReferenceGrant` rules strictly to the minimal necessary resource `kind` and specific source `namespace`, restricting target resource `name` fields wherever granular resource constraints are supported.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

CI/CD validation pipelines MUST run admission checks (e.g., conftest, opa, or kyverno) to reject manifests attempting cross-namespace routing devoid of corresponding declarative `ReferenceGrant` resources.

CI/CD validation pipelines MUST run admission checks (e.g., conftest, opa, or kyverno) to reject manifests attempting cross-namespace routing devoid of corresponding declarative `ReferenceGrant` resources.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
6

Services MUST NEVER assume cross-namespace route resolution will succeed silently

Services MUST NEVER assume cross-namespace route resolution will succeed silently; Gateway controllers MUST mark unresolved cross-namespace backend references as `ResolvedRefs: False` with reason `RefNotPermitted`.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is Mandatory ReferenceGrant Authorization for Cross-Namespace Kubernetes Gateway API Bindings critical for AI coding assistants?

Enforces explicit, least-privilege ReferenceGrant declarations in target namespaces whenever Kubernetes Gateway API routes or listeners bind cross-namespace services or secrets. Disallows unrestricted cross-tenant backendRefs and wildcard listener selectors to eliminate traffic interception, secret exfiltration, and route hijacking across cluster boundaries. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Cross-Namespace Route Attachment and Backend Forwarding Without Explicit Administrative ReferenceGrant Bindings) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

Mandatory