This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
devopscritical PriorityID: cilium-ebpf-socket-mtls-routing-production-standard

Cilium eBPF Kernel-Level Socket mTLS & Zero-Sidecar Policy Enforcement

Enforces zero-overhead mutual cryptographic identity attestation using Cilium eBPF socket-level redirection and SPIFFE/SPIRE authentication. Forbids user-space sidecar proxy injection and eliminates unauthenticated cleartext fallbacks across all Kubernetes service boundaries.

Prohibited Anti-Pattern: Injecting User-Space Envoy Sidecars Alongside Cilium or Permitting Cleartext Non-mTLS Socket Redirection

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Cilium eBPF Kernel-Level Socket mTLS & Zero-Sidecar Policy Enforcement - Enforces zero-overhead mutual cryptographic identity attestation using Cilium eBPF socket-level redirection and SPIFFE/SPIRE authentication. Forbids user-space sidecar proxy injection and eliminates unauthenticated cleartext fallbacks across all Kubernetes service boundaries.
globs: **/*.yaml, **/*.yml, **/templates/**/*.yaml, **/charts/**/*.yaml
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/cilium-ebpf-socket-mtls-routing-production-standard"
---

# Cilium eBPF Kernel-Level Socket mTLS & Zero-Sidecar Policy Enforcement

> **Severity**: CRITICAL | **Category**: devops
> **Anti-Pattern Warning**: Injecting User-Space Envoy Sidecars Alongside Cilium or Permitting Cleartext Non-mTLS Socket Redirection

## System Constraints
You are a Principal Infrastructure Architect enforcing Cilium eBPF kernel-level socket mTLS routing and zero-sidecar mesh patterns. You MUST strictly eliminate user-space proxy overhead (such as Istio/Linkerd sidecars) by offloading identity verification directly to Cilium eBPF sockops programs integrated with SPIFFE/SPIRE. Ensure all CiliumNetworkPolicy resources mandate mutual cryptographic identity validation with zero plain-text fallback.

## Strict Guidelines
- Engineers MUST ALWAYS configure CiliumNetworkPolicy resources with `authentication.mode: mutual` to enforce SPIRE-backed cryptographic handshake verification prior to establishing socket connections.
- Engineers MUST NOT inject user-space sidecar proxy containers (e.g., `istio-proxy`, `linkerd-proxy`) when Cilium eBPF mesh mode is active to prevent socket redirection loops, double-encryption, and memory exhaustion.
- Deployments MUST explicitly declare `sidecar.istio.io/inject: 'false'` and `linkerd.io/inject: disabled` in pod annotations across all namespaces managed by Cilium.
- Cilium Helm values MUST enable `sockops.enabled: true` and configure `authentication.mutual.spire.enabled: true` with strict identity verification to execute socket operations within kernel space.
- Network policies MUST NOT configure egress or ingress rules with wildcard CIDRs (`0.0.0.0/0`) alongside mutual authentication blocks without explicit namespace and identity selectors.

## Bad vs Good Implementations
### Anti-Pattern: Legacy User-Space Sidecar Proxy with Permissive Plaintext Fallback

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: Injecting user-space sidecars wastes massive CPU cycles on redundant TCP handshakes, memory allocations, and Linux context-switching. Simultaneously, the CiliumNetworkPolicy lacks `authentication.mode: mutual`, allowing unauthenticated packets to bypass SPIFFE identity validation.
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: payment-service
  namespace: payments
spec:
  replicas: 3
  template:
    metadata:
      annotations:
        # ANTI-PATTERN: Sidecar proxy adds 4 context switches per packet and 20%+ CPU overhead
        sidecar.istio.io/inject: "true"
    spec:
      containers:
      - name: payment-api
        image: payment-api:v1.2.0
---
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: allow-checkout-to-payment
  namespace: payments
spec:
  endpointSelector:
    matchLabels:
      app: payment-service
  ingress:
  - fromEndpoints:
    - matchLabels:
        app: checkout
    # ANTI-PATTERN: Lacks mutual authentication enforcement, permitting unencrypted fallback
    toPorts:
    - ports:
      - port: "8443"
        protocol: TCP
```

#### Production Standard (Correct)
> **Standard**: Disables user-space sidecar injection and configures `authentication.mode: mutual` directly within the CiliumNetworkPolicy. Packet routing and identity attestation occur directly in the kernel via eBPF sockops and SPIRE, achieving zero-copy mTLS with near-zero CPU overhead.
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: payment-service
  namespace: payments
spec:
  replicas: 3
  template:
    metadata:
      annotations:
        # INVARIANT: Prevent user-space proxy injection
        sidecar.istio.io/inject: "false"
        linkerd.io/inject: "disabled"
    spec:
      containers:
      - name: payment-api
        image: payment-api:v1.2.0
---
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
  name: secure-checkout-to-payment-ebpf-mtls
  namespace: payments
spec:
  endpointSelector:
    matchLabels:
      app: payment-service
  ingress:
  - fromEndpoints:
    - matchLabels:
        app: checkout
        io.kubernetes.pod.namespace: checkout-prod
    # INVARIANT: Offloads mutual identity validation to eBPF + SPIRE
    authentication:
      mode: "mutual"
    toPorts:
    - ports:
      - port: "8443"
        protocol: TCP
```

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: Cilium eBPF Kernel-Level Socket mTLS & Zero-Sidecar Policy Enforcement

Cilium eBPF Kernel-Level Socket mTLS & Zero-Sidecar Policy Enforcement defines an industrial-grade behavioral standard for devops engineering. Enforces zero-overhead mutual cryptographic identity attestation using Cilium eBPF socket-level redirection and SPIFFE/SPIRE authentication. Forbids user-space sidecar proxy injection and eliminates unauthenticated cleartext fallbacks across all Kubernetes service 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: Injecting User-Space Envoy Sidecars Alongside Cilium or Permitting Cleartext Non-mTLS Socket Redirection 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 DriftInjecting User-Space Envoy Sidecars Alongside Cilium or Permitting Cleartext Non-mTLS Socket RedirectionCritical
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 configure CiliumNetworkPolicy resources with `authentication.mode

Engineers MUST ALWAYS configure CiliumNetworkPolicy resources with `authentication.mode: mutual` to enforce SPIRE-backed cryptographic handshake verification prior to establishing socket connections.

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 inject user-space sidecar proxy containers (e.g., `istio-proxy`, `linkerd-proxy`) when Cilium eBPF mesh mode is active to prevent socket redirection loops, double-encryption, and memory exhaustion.

Engineers MUST NOT inject user-space sidecar proxy containers (e.g., `istio-proxy`, `linkerd-proxy`) when Cilium eBPF mesh mode is active to prevent socket redirection loops, double-encryption, and memory exhaustion.

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

Deployments MUST explicitly declare `sidecar.istio.io/inject

Deployments MUST explicitly declare `sidecar.istio.io/inject: 'false'` and `linkerd.io/inject: disabled` in pod annotations across all namespaces managed by Cilium.

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

Cilium Helm values MUST enable `sockops.enabled

Cilium Helm values MUST enable `sockops.enabled: true` and configure `authentication.mutual.spire.enabled: true` with strict identity verification to execute socket operations within kernel space.

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

Network policies MUST NOT configure egress or ingress rules with wildcard CIDRs (`0.0.0.0/0`) alongside mutual authentication blocks without explicit namespace and identity selectors.

Network policies MUST NOT configure egress or ingress rules with wildcard CIDRs (`0.0.0.0/0`) alongside mutual authentication blocks without explicit namespace and identity selectors.

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 Cilium eBPF Kernel-Level Socket mTLS & Zero-Sidecar Policy Enforcement critical for AI coding assistants?

Enforces zero-overhead mutual cryptographic identity attestation using Cilium eBPF socket-level redirection and SPIFFE/SPIRE authentication. Forbids user-space sidecar proxy injection and eliminates unauthenticated cleartext fallbacks across all Kubernetes service 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 (Injecting User-Space Envoy Sidecars Alongside Cilium or Permitting Cleartext Non-mTLS Socket Redirection) 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

Cilium