This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
devopscritical PriorityID: k8s-gateway-canary-baggage-propagation

Kubernetes Gateway API Dynamic Canary Routing with W3C Baggage Header Propagation

Mandates that all progressive canary delivery workflows utilizing Kubernetes Gateway API HTTPRoutes enforce deterministic L7 header matching coupled with W3C Distributed Baggage context propagation. Guarantees zero-misroute execution across distributed, multi-cluster service meshes by strictly synchronizing ingress split rules with downstream egress header injection.

Prohibited Anti-Pattern: Edge-Only Header Evaluation with Downstream Baggage Drop Causing Asymmetrical Canary Leaks

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Kubernetes Gateway API Dynamic Canary Routing with W3C Baggage Header Propagation - Mandates that all progressive canary delivery workflows utilizing Kubernetes Gateway API HTTPRoutes enforce deterministic L7 header matching coupled with W3C Distributed Baggage context propagation. Guarantees zero-misroute execution across distributed, multi-cluster service meshes by strictly synchronizing ingress split rules with downstream egress header injection.
globs: k8s/**/*.yaml, deploy/**/*.yaml, src/middleware/**/*.{ts,js,go}, src/network/**/*.{ts,js,go}
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/k8s-gateway-canary-baggage-propagation"
---

# Kubernetes Gateway API Dynamic Canary Routing with W3C Baggage Header Propagation

> **Severity**: CRITICAL | **Category**: devops
> **Anti-Pattern Warning**: Edge-Only Header Evaluation with Downstream Baggage Drop Causing Asymmetrical Canary Leaks

## System Constraints
You are a Principal Software Architect enforcing Kubernetes Gateway API Dynamic Canary Routing and W3C Distributed Context Propagation. You must mandate that HTTPRoute definitions and application-tier network clients maintain synchronous L7 routing invariants. Every egress call within a canary cohort must propagate W3C baggage headers ('baggage') alongside synthetic session keys to ensure downstream multi-cluster services never route back to the stable baseline prematurely.

## Strict Guidelines
- Engineers MUST ALWAYS match canary cohorts via explicit HTTPRoute 'matches' criteria utilizing both 'baggage' and canonical track headers (e.g., 'x-canary-track').
- Engineers MUST NOT rely exclusively on edge ingress routing without enforcing downstream W3C baggage extraction and injection across intermediate service boundaries.
- Services MUST serialize OpenTelemetry W3C Baggage values matching 'deployment-track=canary' on all outbound HTTP and gRPC network clients.
- Gateway API HTTPRoute configurations MUST declare absolute weights totalling exactly 100% across all backendRefs, preventing unhandled route fallbacks.
- Components NEVER drop propagation context when initiating background jobs or asynchronous sub-requests spawned from an active canary transaction.

## Bad vs Good Implementations
### Egress HTTP Client Canary Baggage Propagation Interceptor

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: The outgoing HTTP call drops the OpenTelemetry 'baggage' header and Canary routing context. In a multi-cluster Gateway API topology, intermediate proxies and egress listeners cannot identify this sub-call as belonging to the canary deployment, resulting in split-brain state mutations between canary and stable databases.
```typescript
import axios, { AxiosRequestConfig } from 'axios';

// ANTI-PATTERN: Forwards only raw incoming auth headers;
// drops OpenTelemetry baggage and x-canary-track headers.
// Downstream Kubernetes Gateway API routing defaults back to stable mesh.
export async function forwardDownstreamRequest(url: string, data: unknown, incomingHeaders: Record<string, string>) {
  const config: AxiosRequestConfig = {
    headers: {
      'authorization': incomingHeaders['authorization'],
      'content-type': 'application/json'
    }
  };
  return axios.post(url, data, config);
}
```

#### Production Standard (Correct)
> **Standard**: Strictly extracts inbound distributed tracing and baggage context, injects the serialized W3C baggage into outgoing requests, and explicitly synchronizes the HTTPRoute 'x-canary-track' header. This ensures Kubernetes Gateway API dynamic routing consistently selects canary backend clusters across all microservice hops.
```typescript
import axios, { AxiosRequestConfig } from 'axios';
import { propagation, context, ROOT_CONTEXT } from '@opentelemetry/api';

const CANARY_TRACK_KEY = 'canary-deployment-track';
const CANARY_HEADER = 'x-canary-track';

export async function forwardDownstreamRequest(
  url: string, 
  data: unknown, 
  incomingHeaders: Record<string, string | string[] | undefined>
) {
  // 1. Extract existing trace and baggage context from carrier
  const extractedContext = propagation.extract(ROOT_CONTEXT, incomingHeaders);
  
  // 2. Prepare mutable egress carrier
  const outgoingHeaders: Record<string, string> = {
    'content-type': 'application/json'
  };
  
  if (typeof incomingHeaders['authorization'] === 'string') {
    outgoingHeaders['authorization'] = incomingHeaders['authorization'];
  }

  // 3. Inject active context (W3C traceparent and baggage) into outgoing request
  propagation.inject(extractedContext, outgoingHeaders);

  // 4. Enforce strict L7 Gateway API route contract validation
  const activeBaggage = propagation.getBaggage(extractedContext);
  const canaryEntry = activeBaggage?.getEntry(CANARY_TRACK_KEY);
  if (canaryEntry && canaryEntry.value === 'active') {
    outgoingHeaders[CANARY_HEADER] = 'canary';
  }

  const config: AxiosRequestConfig = {
    headers: outgoingHeaders
  };

  return context.with(extractedContext, () => axios.post(url, data, config));
}
```

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: Kubernetes Gateway API Dynamic Canary Routing with W3C Baggage Header Propagation

Kubernetes Gateway API Dynamic Canary Routing with W3C Baggage Header Propagation defines an industrial-grade behavioral standard for devops engineering. Mandates that all progressive canary delivery workflows utilizing Kubernetes Gateway API HTTPRoutes enforce deterministic L7 header matching coupled with W3C Distributed Baggage context propagation. Guarantees zero-misroute execution across distributed, multi-cluster service meshes by strictly synchronizing ingress split rules with downstream egress header injection. 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: Edge-Only Header Evaluation with Downstream Baggage Drop Causing Asymmetrical Canary Leaks 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 DriftEdge-Only Header Evaluation with Downstream Baggage Drop Causing Asymmetrical Canary LeaksCritical
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 match canary cohorts via explicit HTTPRoute 'matches' criteria utilizing both 'baggage' and canonical track headers (e.g., 'x-canary-track').

Engineers MUST ALWAYS match canary cohorts via explicit HTTPRoute 'matches' criteria utilizing both 'baggage' and canonical track headers (e.g., 'x-canary-track').

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 rely exclusively on edge ingress routing without enforcing downstream W3C baggage extraction and injection across intermediate service boundaries.

Engineers MUST NOT rely exclusively on edge ingress routing without enforcing downstream W3C baggage extraction and injection across intermediate service 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.
3

Services MUST serialize OpenTelemetry W3C Baggage values matching 'deployment-track=canary' on all outbound HTTP and gRPC network clients.

Services MUST serialize OpenTelemetry W3C Baggage values matching 'deployment-track=canary' on all outbound HTTP and gRPC network clients.

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

Gateway API HTTPRoute configurations MUST declare absolute weights totalling exactly 100% across all backendRefs, preventing unhandled route fallbacks.

Gateway API HTTPRoute configurations MUST declare absolute weights totalling exactly 100% across all backendRefs, preventing unhandled route fallbacks.

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

Components NEVER drop propagation context when initiating background jobs or asynchronous sub-requests spawned from an active canary transaction.

Components NEVER drop propagation context when initiating background jobs or asynchronous sub-requests spawned from an active canary transaction.

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 Kubernetes Gateway API Dynamic Canary Routing with W3C Baggage Header Propagation critical for AI coding assistants?

Mandates that all progressive canary delivery workflows utilizing Kubernetes Gateway API HTTPRoutes enforce deterministic L7 header matching coupled with W3C Distributed Baggage context propagation. Guarantees zero-misroute execution across distributed, multi-cluster service meshes by strictly synchronizing ingress split rules with downstream egress header injection. 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 (Edge-Only Header Evaluation with Downstream Baggage Drop Causing Asymmetrical Canary Leaks) 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

Kubernetes