Skills Agentes

Linkerd Patterns

Implementa patrones de Linkerd para desplegar un service mesh ligero centrado en seguridad. Útil al configurar Linkerd, políticas de tráfico o redes zero-trust con mínimo overhead.

Estrellas
39.8k

en todo el repo

Actividad
30

0–100, la ruta de este skill

Actualizado
hace 6 meses

último commit aquí

Commits
0

últimos 90 días

Contexto
2k tok

55 tok en reposo

Paquete
1 archivo

8 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add wshobson/agents --skill linkerd-patterns --agent claude-code

Se instala solo en este repositorio.

Este skill makes network requests.

Qué hace

  • Instala y configura Linkerd como service mesh ligero con mTLS automático
  • Proporciona plantillas para ServiceProfile, TrafficSplit, Server/ServerAuthorization y HTTPRoute
  • Configura reintentos, timeouts y retry budgets por ruta
  • Establece comandos de monitoreo (viz top, routes, stat, edges) y debugging de proxies
  • Configura setup multi-cluster con linkerd multicluster link/gateways

Úsalo cuando

  • Al configurar un service mesh ligero
  • Al implementar mTLS automático
  • Al configurar traffic splits para despliegues canary
  • Al configurar service profiles para métricas por ruta o mesh multi-cluster

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • “Configura Linkerd con mTLS automático en mi clúster”
    • “Crea un TrafficSplit para un despliegue canary”
    • “Necesito ServiceProfile con reintentos y timeouts por ruta”
    • “Configura Linkerd multi-cluster entre dos clústeres”

    SKILL.md

    En inglés

    Linkerd Patterns

    Production patterns for Linkerd service mesh - the lightweight, security-first service mesh for Kubernetes.

    When to Use This Skill

    • Setting up a lightweight service mesh
    • Implementing automatic mTLS
    • Configuring traffic splits for canary deployments
    • Setting up service profiles for per-route metrics
    • Implementing retries and timeouts
    • Multi-cluster service mesh

    Core Concepts

    1. Linkerd Architecture

    ┌─────────────────────────────────────────────┐
    │                Control Plane                 │
    │  ┌─────────┐ ┌──────────┐ ┌──────────────┐ │
    │  │ destiny │ │ identity │ │ proxy-inject │ │
    │  └─────────┘ └──────────┘ └──────────────┘ │
    └─────────────────────────────────────────────┘
                          │
    ┌─────────────────────────────────────────────┐
    │                 Data Plane                   │
    │  ┌─────┐    ┌─────┐    ┌─────┐             │
    │  │proxy│────│proxy│────│proxy│             │
    │  └─────┘    └─────┘    └─────┘             │
    │     │           │           │               │
    │  ┌──┴──┐    ┌──┴──┐    ┌──┴──┐            │
    │  │ app │    │ app │    │ app │            │
    │  └─────┘    └─────┘    └─────┘            │
    └─────────────────────────────────────────────┘
    

    2. Key Resources

    Resource Purpose
    ServiceProfile Per-route metrics, retries, timeouts
    TrafficSplit Canary deployments, A/B testing
    Server Define server-side policies
    ServerAuthorization Access control policies

    Templates

    Template 1: Mesh Installation

    # Install CLI
    curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install | sh
    
    # Validate cluster
    linkerd check --pre
    
    # Install CRDs
    linkerd install --crds | kubectl apply -f -
    
    # Install control plane
    linkerd install | kubectl apply -f -
    
    # Verify installation
    linkerd check
    
    # Install viz extension (optional)
    linkerd viz install | kubectl apply -f -
    

    Template 2: Inject Namespace

    # Automatic injection for namespace
    apiVersion: v1
    kind: Namespace
    metadata:
      name: my-app
      annotations:
        linkerd.io/inject: enabled
    ---
    # Or inject specific deployment
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-app
      annotations:
        linkerd.io/inject: enabled
    spec:
      template:
        metadata:
          annotations:
            linkerd.io/inject: enabled
    

    Template 3: Service Profile with Retries

    apiVersion: linkerd.io/v1alpha2
    kind: ServiceProfile
    metadata:
      name: my-service.my-namespace.svc.cluster.local
      namespace: my-namespace
    spec:
      routes:
        - name: GET /api/users
          condition:
            method: GET
            pathRegex: /api/users
          responseClasses:
            - condition:
                status:
                  min: 500
                  max: 599
              isFailure: true
          isRetryable: true
        - name: POST /api/users
          condition:
            method: POST
            pathRegex: /api/users
          # POST not retryable by default
          isRetryable: false
        - name: GET /api/users/{id}
          condition:
            method: GET
            pathRegex: /api/users/[^/]+
          timeout: 5s
          isRetryable: true
      retryBudget:
        retryRatio: 0.2
        minRetriesPerSecond: 10
        ttl: 10s
    

    Template 4: Traffic Split (Canary)

    apiVersion: split.smi-spec.io/v1alpha1
    kind: TrafficSplit
    metadata:
      name: my-service-canary
      namespace: my-namespace
    spec:
      service: my-service
      backends:
        - service: my-service-stable
          weight: 900m # 90%
        - service: my-service-canary
          weight: 100m # 10%
    

    Template 5: Server Authorization Policy

    # Define the server
    apiVersion: policy.linkerd.io/v1beta1
    kind: Server
    metadata:
      name: my-service-http
      namespace: my-namespace
    spec:
      podSelector:
        matchLabels:
          app: my-service
      port: http
      proxyProtocol: HTTP/1
    ---
    # Allow traffic from specific clients
    apiVersion: policy.linkerd.io/v1beta1
    kind: ServerAuthorization
    metadata:
      name: allow-frontend
      namespace: my-namespace
    spec:
      server:
        name: my-service-http
      client:
        meshTLS:
          serviceAccounts:
            - name: frontend
              namespace: my-namespace
    ---
    # Allow unauthenticated traffic (e.g., from ingress)
    apiVersion: policy.linkerd.io/v1beta1
    kind: ServerAuthorization
    metadata:
      name: allow-ingress
      namespace: my-namespace
    spec:
      server:
        name: my-service-http
      client:
        unauthenticated: true
        networks:
          - cidr: 10.0.0.0/8
    

    Template 6: HTTPRoute for Advanced Routing

    apiVersion: policy.linkerd.io/v1beta2
    kind: HTTPRoute
    metadata:
      name: my-route
      namespace: my-namespace
    spec:
      parentRefs:
        - name: my-service
          kind: Service
          group: core
          port: 8080
      rules:
        - matches:
            - path:
                type: PathPrefix
                value: /api/v2
            - headers:
                - name: x-api-version
                  value: v2
          backendRefs:
            - name: my-service-v2
              port: 8080
        - matches:
            - path:
                type: PathPrefix
                value: /api
          backendRefs:
            - name: my-service-v1
              port: 8080
    

    Template 7: Multi-cluster Setup

    # On each cluster, install with cluster credentials
    linkerd multicluster install | kubectl apply -f -
    
    # Link clusters
    linkerd multicluster link --cluster-name west \
      --api-server-address https://west.example.com:6443 \
      | kubectl apply -f -
    
    # Export a service to other clusters
    kubectl label svc/my-service mirror.linkerd.io/exported=true
    
    # Verify cross-cluster connectivity
    linkerd multicluster check
    linkerd multicluster gateways
    

    Monitoring Commands

    # Live traffic view
    linkerd viz top deploy/my-app
    
    # Per-route metrics
    linkerd viz routes deploy/my-app
    
    # Check proxy status
    linkerd viz stat deploy -n my-namespace
    
    # View service dependencies
    linkerd viz edges deploy -n my-namespace
    
    # Dashboard
    linkerd viz dashboard
    

    Debugging

    # Check injection status
    linkerd check --proxy -n my-namespace
    
    # View proxy logs
    kubectl logs deploy/my-app -c linkerd-proxy
    
    # Debug identity/TLS
    linkerd identity -n my-namespace
    
    # Tap traffic (live)
    linkerd viz tap deploy/my-app --to deploy/my-backend
    

    Best Practices

    Do's

    • Enable mTLS everywhere - It's automatic with Linkerd
    • Use ServiceProfiles - Get per-route metrics and retries
    • Set retry budgets - Prevent retry storms
    • Monitor golden metrics - Success rate, latency, throughput

    Don'ts

    • Don't skip check - Always run linkerd check after changes
    • Don't over-configure - Linkerd defaults are sensible
    • Don't ignore ServiceProfiles - They unlock advanced features
    • Don't forget timeouts - Set appropriate values per route

    Reproducido de wshobson/agents bajo licencia MIT. Leer esta página en markdown.

    Archivos

    1 archivo en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Requiere un clúster Kubernetes y el CLI de Linkerd instalado.

    Necesita en el PATH:curlkubectl

    Detalles

    Creador
    wshobson
    Licencia
    MIT
    Recursos incluidos
    Solo SKILL.md
    Repositorio
    wshobson/agents
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de wshobson/agents

    Este repo incluye 183 skills. Si instalas uno, normalmente ya tienes los demás. Ver el pack agents entero y su comando de instalación

    Instala y opera Hermes Tweet, un plugin de Hermes Agent para investigar X/Twitter, leer timelines, analizar tweets y ejecutar operaciones privadas o de cambio de estado con aprobación previa.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    el mes pasado
    redes sociales

    Úsalo para mantener un almacén Markdown de conocimiento donde cada afirmación compilada se rastrea hasta una fuente inmutable y el drift se detecta con git diff sin gastar tokens.

    Costo de contexto al activarse
    1.4k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 24 días
    documentos

    Úsalo al diseñar o revisar un esquema específico de PostgreSQL: buenas prácticas, tipos de datos, indexación, restricciones, patrones de rendimiento y funciones avanzadas.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 24 días
    bases de datos

    Úsalo cuando un proyecto guarda su estado en Superself: lee `self context` al iniciar sesión, vincula el trabajo a una work unit, reporta con evidencia y registra decisiones confirmadas.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 24 días
    productividad

    Úsalo cuando pidan optimizar un prompt, mejorar su rendimiento, diseñar una plantilla, aplicar chain-of-thought, few-shot prompting o técnicas avanzadas de prompt engineering para producción.

    Costo de contexto al activarse
    1.3k tok
    Tamaño del paquete
    10 archivos
    Última actualización
    el mes pasado
    herramientas desarrollo

    Audita y reescribe prosa para que deje de sonar generada por máquina. Incluye modo solo-detección, modo reescritura y modo edición en el lugar, con perfiles opcionales de voz y contexto.”

    Costo de contexto al activarse
    1.9k tok
    Tamaño del paquete
    4 archivos
    Última actualización
    el mes pasado
    redaccion contenido

    Skills relacionados

    Construye DAGs de Apache Airflow listos para producción con buenas prácticas para operadores, sensores, testing y despliegue.

    Costo de contexto al activarse
    784 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 4 meses
    devops infraestructura

    Domina técnicas de programación defensiva en Bash para scripts de nivel producción: úsalo al escribir shell scripts robustos, pipelines CI/CD o utilidades de sistema que requieran tolerancia a fallos.

    Costo de contexto al activarse
    498 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 4 meses
    devops infraestructura

    Optimiza builds de Bazel en monorepos a gran escala. Úsalo al configurar Bazel, implementar ejecución remota u optimizar el rendimiento de builds en codebases empresariales.

    Costo de contexto al activarse
    523 tok
    Tamaño del paquete
    2 archivos
    Última actualización
    hace 4 meses
    devops infraestructura