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

Mandatory ReferenceGrant Handshakes for Cross-Namespace Gateway API Routing

Enforces strict bidirectional handshake governance under Kubernetes Gateway API v1.2 specifications by mandating explicit ReferenceGrant resources in target namespaces for all cross-namespace parentRefs, backendRefs, and Secret certificate references. Prevents catastrophic cross-tenant route hijacking, unauthorized ingress exposure, and silent route dropping due to missing ResolvedRefs status conditions in multi-tenant clusters.

Prohibited Anti-Pattern: Cross-Namespace Parent/Backend Binding Without Explicit Target-Namespace ReferenceGrant Authorization

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Mandatory ReferenceGrant Handshakes for Cross-Namespace Gateway API Routing - Enforces strict bidirectional handshake governance under Kubernetes Gateway API v1.2 specifications by mandating explicit ReferenceGrant resources in target namespaces for all cross-namespace parentRefs, backendRefs, and Secret certificate references. Prevents catastrophic cross-tenant route hijacking, unauthorized ingress exposure, and silent route dropping due to missing ResolvedRefs status conditions in multi-tenant clusters.
globs: k8s/**/*.yaml, deploy/**/*.yaml, helm/**/*.yaml, infra/**/*.ts, cdk8s/**/*.ts
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/k8s-gateway-api-referencegrant-cross-namespace-enforcement"
---

# Mandatory ReferenceGrant Handshakes for Cross-Namespace Gateway API Routing

> **Severity**: CRITICAL | **Category**: devops
> **Anti-Pattern Warning**: Cross-Namespace Parent/Backend Binding Without Explicit Target-Namespace ReferenceGrant Authorization

## System Constraints
You are a Principal Software Architect and Infrastructure Security Specialist enforcing Kubernetes Gateway API v1.2 specifications. Your immutable objective is to prevent cross-tenant traffic hijacking and misconfigurations by ensuring all cross-namespace parent references, backend references, and certificate secret references are authorized via explicitly scoped ReferenceGrant manifests. Reject any manifest or IaC pipeline attempting cross-namespace linkage without a corresponding ReferenceGrant in the referenced resource's namespace.

## Strict Guidelines
- Engineers MUST ALWAYS provision a ReferenceGrant in the target namespace whenever an HTTPRoute, GRPCRoute, or Gateway references a resource outside its own namespace.
- Engineers MUST NOT configure wildcards ('*') in the 'from.namespace' or 'to.name' fields of a ReferenceGrant in multi-tenant environments.
- Gateway parentRefs spanning namespaces MUST be validated against the Gateway's 'allowedRoutes.namespaces.from' policy before creating child routes.
- BackendRefs routing traffic to Services in foreign namespaces MUST have a corresponding ReferenceGrant in that Service's namespace explicitly listing 'kind: Service' and 'group: ""'.
- Gateway certificateRefs targeting TLS Secrets across namespaces MUST have a ReferenceGrant in the Secret's namespace authorizing 'group: ""' and 'kind: Secret'.
- CI/CD deployment gates MUST verify that Gateway API status condition 'ResolvedRefs' evaluates to 'True' with reason 'ResolvedRefs' on every applied Route.

## Bad vs Good Implementations
### Cross-Namespace BackendRef Enforcement via ReferenceGrant

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: The HTTPRoute attempts to route traffic to a Service residing in 'tenant-secure-backend' from 'tenant-frontend'. Without a ReferenceGrant inside 'tenant-secure-backend', the Gateway API controller will reject the backend reference, setting ResolvedRefs: False with reason RefNotPermitted, causing silent routing failure or exposing vulnerability to route hijacking.
```yaml
# VULNERABLE: Cross-namespace backend reference without target ReferenceGrant
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: billing-edge-route
  namespace: tenant-frontend
spec:
  parentRefs:
    - name: shared-gateway
      namespace: ingress-infra
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /api/billing
      backendRefs:
        - name: core-billing-service
          namespace: tenant-secure-backend
          port: 8443
          # ERROR: Silently dropped at runtime by Gateway controller.
          # The target namespace 'tenant-secure-backend' has not authorized
          # 'tenant-frontend' to route to its internal Service.
```

#### Production Standard (Correct)
> **Standard**: The target namespace 'tenant-secure-backend' provisions a ReferenceGrant explicitly granting authorization to HTTPRoutes from 'tenant-frontend' targeting the specific Service 'core-billing-service'. This creates an explicit cryptographic-like boundary handshake that passes Gateway API ResolvedRefs validation.
```yaml
# SECURE & COMPLIANT: Bidirectional handshake with explicit ReferenceGrant
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: billing-edge-route
  namespace: tenant-frontend
spec:
  parentRefs:
    - name: shared-gateway
      namespace: ingress-infra
  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /api/billing
      backendRefs:
        - name: core-billing-service
          namespace: tenant-secure-backend
          port: 8443
---
apiVersion: gateway.networking.k8s.io/v1beta1
kind: ReferenceGrant
metadata:
  name: allow-frontend-billing-access
  namespace: tenant-secure-backend
spec:
  from:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute
      namespace: tenant-frontend
  to:
    - group: ""
      kind: Service
      name: core-billing-service
```

Recommended MCP Servers (mcp-serverlist.com)

Equip agent with system tools to verify code for this stack.

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: Mandatory ReferenceGrant Handshakes for Cross-Namespace Gateway API Routing

Mandatory ReferenceGrant Handshakes for Cross-Namespace Gateway API Routing defines an industrial-grade behavioral standard for devops engineering. Enforces strict bidirectional handshake governance under Kubernetes Gateway API v1.2 specifications by mandating explicit ReferenceGrant resources in target namespaces for all cross-namespace parentRefs, backendRefs, and Secret certificate references. Prevents catastrophic cross-tenant route hijacking, unauthorized ingress exposure, and silent route dropping due to missing ResolvedRefs status conditions in multi-tenant clusters. 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 Parent/Backend Binding Without Explicit Target-Namespace ReferenceGrant Authorization 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 Parent/Backend Binding Without Explicit Target-Namespace ReferenceGrant AuthorizationCritical
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 provision a ReferenceGrant in the target namespace whenever an HTTPRoute, GRPCRoute, or Gateway references a resource outside its own namespace.

Engineers MUST ALWAYS provision a ReferenceGrant in the target namespace whenever an HTTPRoute, GRPCRoute, or Gateway references a resource outside its own namespace.

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 configure wildcards ('*') in the 'from.namespace' or 'to.name' fields of a ReferenceGrant in multi-tenant environments.

Engineers MUST NOT configure wildcards ('*') in the 'from.namespace' or 'to.name' fields of a ReferenceGrant in multi-tenant environments.

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

Gateway parentRefs spanning namespaces MUST be validated against the Gateway's 'allowedRoutes.namespaces.from' policy before creating child routes.

Gateway parentRefs spanning namespaces MUST be validated against the Gateway's 'allowedRoutes.namespaces.from' policy before creating child routes.

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

BackendRefs routing traffic to Services in foreign namespaces MUST have a corresponding ReferenceGrant in that Service's namespace explicitly listing 'kind

BackendRefs routing traffic to Services in foreign namespaces MUST have a corresponding ReferenceGrant in that Service's namespace explicitly listing 'kind: Service' and 'group: ""'.

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

Gateway certificateRefs targeting TLS Secrets across namespaces MUST have a ReferenceGrant in the Secret's namespace authorizing 'group

Gateway certificateRefs targeting TLS Secrets across namespaces MUST have a ReferenceGrant in the Secret's namespace authorizing 'group: ""' and 'kind: Secret'.

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

CI/CD deployment gates MUST verify that Gateway API status condition 'ResolvedRefs' evaluates to 'True' with reason 'ResolvedRefs' on every applied Route.

CI/CD deployment gates MUST verify that Gateway API status condition 'ResolvedRefs' evaluates to 'True' with reason 'ResolvedRefs' on every applied Route.

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 Handshakes for Cross-Namespace Gateway API Routing critical for AI coding assistants?

Enforces strict bidirectional handshake governance under Kubernetes Gateway API v1.2 specifications by mandating explicit ReferenceGrant resources in target namespaces for all cross-namespace parentRefs, backendRefs, and Secret certificate references. Prevents catastrophic cross-tenant route hijacking, unauthorized ingress exposure, and silent route dropping due to missing ResolvedRefs status conditions in multi-tenant clusters. 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 Parent/Backend Binding Without Explicit Target-Namespace ReferenceGrant Authorization) 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