implementing-service-mesh — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited implementing-service-mesh (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Configure and deploy service mesh infrastructure for Kubernetes environments. Enable secure service-to-service communication with mutual TLS, implement traffic management policies, configure authorization controls, and set up progressive delivery strategies. Abstracts network complexity while providing observability, security, and resilience for microservices.
Invoke this skill when:
Choose based on requirements and constraints.
Istio Ambient (Recommended for most):
Linkerd (Simplicity priority):
Cilium (eBPF-native):
For detailed comparison matrix and architecture trade-offs, see references/decision-tree.md.
Sidecar: Proxy per pod, fine-grained L7 control, higher overhead Sidecar-less: Shared node proxies (Istio Ambient) or eBPF (Cilium), lower overhead
Istio Ambient Components:
Routing: Path, header, weight-based traffic distribution Resilience: Retries, timeouts, circuit breakers, fault injection Load Balancing: Round robin, least connections, consistent hash
mTLS: Automatic encryption, certificate rotation, zero app changes Modes: STRICT (reject plaintext), PERMISSIVE (accept both) Authorization: Default-deny, identity-based (not IP), L7 policies
Istio uses Custom Resource Definitions for traffic management and security.
apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
name: backend-canary
spec:
hosts:
- backend
http:
- route:
- destination:
host: backend
subset: v1
weight: 90
- destination:
host: backend
subset: v2
weight: 10apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
name: backend-circuit-breaker
spec:
host: backend
trafficPolicy:
connectionPool:
tcp:
maxConnections: 100
http:
http1MaxPendingRequests: 10
outlierDetection:
consecutiveErrors: 5
interval: 30s
baseEjectionTime: 30sapiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: default
namespace: istio-system
spec:
mtls:
mode: STRICTapiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: allow-frontend
namespace: production
spec:
selector:
matchLabels:
app: backend
action: ALLOW
rules:
- from:
- source:
principals:
- cluster.local/ns/production/sa/frontend
to:
- operation:
methods: ["GET", "POST"]
paths: ["/api/*"]For advanced patterns (fault injection, mirroring, gateways), see references/istio-patterns.md.
Linkerd emphasizes simplicity with automatic mTLS.
apiVersion: policy.linkerd.io/v1beta2
kind: HTTPRoute
metadata:
name: backend-canary
spec:
parentRefs:
- name: backend
kind: Service
rules:
- backendRefs:
- name: backend-v1
port: 8080
weight: 90
- name: backend-v2
port: 8080
weight: 10apiVersion: linkerd.io/v1alpha2
kind: ServiceProfile
metadata:
name: backend.production.svc.cluster.local
spec:
routes:
- name: GET /api/data
condition:
method: GET
pathRegex: /api/data
timeout: 3s
retryBudget:
retryRatio: 0.2
minRetriesPerSecond: 10apiVersion: policy.linkerd.io/v1alpha1
kind: AuthorizationPolicy
metadata:
name: allow-frontend
spec:
targetRef:
kind: Server
name: backend-api
requiredAuthenticationRefs:
- name: frontend-identity
kind: MeshTLSAuthenticationFor complete patterns and mTLS verification, see references/linkerd-patterns.md.
Cilium uses eBPF for kernel-level enforcement.
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: backend-access
spec:
endpointSelector:
matchLabels:
app: backend
ingress:
- fromEndpoints:
- matchLabels:
app: frontend
toPorts:
- ports:
- port: "8080"
rules:
http:
- method: GET
path: "/api/.*"apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: external-api-access
spec:
endpointSelector:
matchLabels:
app: backend
egress:
- toFQDNs:
- matchName: "api.github.com"
toPorts:
- ports:
- port: "443"For mTLS with SPIRE and eBPF patterns, see references/cilium-patterns.md.
Example (Istio):
# Strict mTLS
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: strict-mtls
namespace: production
spec:
mtls:
mode: STRICT
---
# Deny all by default
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
name: deny-all
namespace: production
spec: {}For JWT authentication and external authorization (OPA), see references/security-patterns.md.
Gradually shift traffic with monitoring.
Stages:
Monitor: Error rate, latency (P95/P99), throughput
Instant cutover with quick rollback.
Process:
apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
name: backend
spec:
targetRef:
kind: Deployment
name: backend
service:
port: 8080
analysis:
interval: 1m
threshold: 5
maxWeight: 50
stepWeight: 10
metrics:
- name: request-success-rate
thresholdRange:
min: 99For A/B testing and detailed patterns, see references/progressive-delivery.md.
Extend mesh across Kubernetes clusters.
Use Cases: HA, geo-distribution, compliance, DR
Istio Multi-Primary:
# Install on cluster 1
istioctl install --set values.global.meshID=mesh1 \
--set values.global.multiCluster.clusterName=cluster1
# Exchange secrets for service discovery
istioctl x create-remote-secret --context=cluster2 | \
kubectl apply -f - --context=cluster1Linkerd Multi-Cluster:
# Link clusters
linkerd multicluster link --cluster-name cluster2 | \
kubectl apply -f -
# Export service
kubectl label svc/backend mirror.linkerd.io/exported=trueFor complete setup and cross-cluster patterns, see references/multi-cluster.md.
curl -L https://istio.io/downloadIstio | sh -
istioctl install --set profile=ambient -y
kubectl label namespace production istio.io/dataplane-mode=ambientcurl -sL https://run.linkerd.io/install-edge | sh
linkerd install --crds | kubectl apply -f -
linkerd install | kubectl apply -f -
kubectl annotate namespace production linkerd.io/inject=enabledhelm install cilium cilium/cilium \
--namespace kube-system \
--set meshMode=enabled \
--set authentication.mutual.spire.enabled=true# Istio: Check mTLS status
istioctl authn tls-check frontend.production.svc.cluster.local
# Linkerd: Check edges
linkerd edges deployment/frontend -n production
# Cilium: Check auth
cilium bpf auth list# Istio: Analyze config
istioctl analyze -n production
# Linkerd: Tap traffic
linkerd tap deployment/backend -n production
# Cilium: Observe flows
hubble observe --namespace productionFor complete debugging guide and solutions, see references/troubleshooting.md.
kubernetes-operations: Cluster setup, namespaces, RBAC security-hardening: Container security, secret management infrastructure-as-code: Terraform/Helm for mesh deployment building-ci-pipelines: Automated canary, integration tests performance-engineering: Latency benchmarking, optimization
references/decision-tree.md - Service mesh selection and comparisonreferences/istio-patterns.md - Istio configuration examplesreferences/linkerd-patterns.md - Linkerd patterns and best practicesreferences/cilium-patterns.md - Cilium eBPF policies and mTLSreferences/security-patterns.md - Zero-trust and authorizationreferences/progressive-delivery.md - Canary, blue/green, A/B testingreferences/multi-cluster.md - Multi-cluster setup and federationreferences/troubleshooting.md - Common issues and debugging~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.