opencode-skills-collection 4.0.68 → 4.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +266 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6943 -323
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: service-mesh
|
|
3
|
+
description: Implement Istio and Linkerd service meshes. Configure mTLS, traffic management,
|
|
4
|
+
and observability. Use when managing microservices communication.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
14
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Service Mesh
|
|
21
|
+
|
|
22
|
+
Implement service-to-service communication management with mTLS, traffic shaping, observability, and policy enforcement using Istio or Linkerd.
|
|
23
|
+
|
|
24
|
+
## When to Use
|
|
25
|
+
|
|
26
|
+
- Securing microservice communication with automatic mTLS.
|
|
27
|
+
- Implementing canary deployments, traffic splitting, or A/B testing.
|
|
28
|
+
- Adding circuit breakers, retries, and timeouts without changing application code.
|
|
29
|
+
- Gaining service-level observability (latency, error rates, request volume).
|
|
30
|
+
- Enforcing authorization policies between services.
|
|
31
|
+
|
|
32
|
+
## Prerequisites
|
|
33
|
+
|
|
34
|
+
- Kubernetes cluster (1.26+) with kubectl configured.
|
|
35
|
+
- Helm 3 installed (for some installation methods).
|
|
36
|
+
- Sufficient cluster resources (Istio control plane needs ~2 GB RAM).
|
|
37
|
+
- For Istio: `istioctl` CLI installed.
|
|
38
|
+
- For Linkerd: `linkerd` CLI installed.
|
|
39
|
+
|
|
40
|
+
## Istio Installation
|
|
41
|
+
|
|
42
|
+
### Install with istioctl
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Download istioctl
|
|
46
|
+
curl -L https://istio.io/downloadIstio -o /tmp/downloadIstio.sh && sh /tmp/downloadIstio.sh && rm /tmp/downloadIstio.sh
|
|
47
|
+
cd istio-*
|
|
48
|
+
export PATH=$PWD/bin:$PATH
|
|
49
|
+
|
|
50
|
+
# Install with the production profile
|
|
51
|
+
istioctl install --set profile=default -y
|
|
52
|
+
|
|
53
|
+
# Or use the demo profile (includes all addons, good for learning)
|
|
54
|
+
istioctl install --set profile=demo -y
|
|
55
|
+
|
|
56
|
+
# Verify installation
|
|
57
|
+
istioctl verify-install
|
|
58
|
+
|
|
59
|
+
# Check running components
|
|
60
|
+
kubectl get pods -n istio-system
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Enable Sidecar Injection
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Enable automatic sidecar injection for a namespace
|
|
67
|
+
kubectl label namespace default istio-injection=enabled
|
|
68
|
+
|
|
69
|
+
# Verify label
|
|
70
|
+
kubectl get namespace default --show-labels
|
|
71
|
+
|
|
72
|
+
# Restart existing pods to inject sidecars
|
|
73
|
+
kubectl rollout restart deployment -n default
|
|
74
|
+
|
|
75
|
+
# Check sidecar status
|
|
76
|
+
kubectl get pods -n default -o jsonpath='{range .items[*]}{.metadata.name}{" containers: "}{range .spec.containers[*]}{.name}{" "}{end}{"\n"}{end}'
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Install Observability Addons
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Install Kiali, Prometheus, Grafana, Jaeger
|
|
83
|
+
kubectl apply -f samples/addons/prometheus.yaml
|
|
84
|
+
kubectl apply -f samples/addons/grafana.yaml
|
|
85
|
+
kubectl apply -f samples/addons/jaeger.yaml
|
|
86
|
+
kubectl apply -f samples/addons/kiali.yaml
|
|
87
|
+
|
|
88
|
+
# Wait for rollout
|
|
89
|
+
kubectl rollout status deployment/kiali -n istio-system
|
|
90
|
+
|
|
91
|
+
# Access dashboards
|
|
92
|
+
istioctl dashboard kiali
|
|
93
|
+
istioctl dashboard grafana
|
|
94
|
+
istioctl dashboard jaeger
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Traffic Management
|
|
98
|
+
|
|
99
|
+
### VirtualService (Routing Rules)
|
|
100
|
+
|
|
101
|
+
```yaml
|
|
102
|
+
# virtualservice.yaml — canary deployment with traffic split
|
|
103
|
+
apiVersion: networking.istio.io/v1beta1
|
|
104
|
+
kind: VirtualService
|
|
105
|
+
metadata:
|
|
106
|
+
name: my-app
|
|
107
|
+
namespace: default
|
|
108
|
+
spec:
|
|
109
|
+
hosts:
|
|
110
|
+
- my-app
|
|
111
|
+
http:
|
|
112
|
+
# Header-based routing (canary testers)
|
|
113
|
+
- match:
|
|
114
|
+
- headers:
|
|
115
|
+
x-canary:
|
|
116
|
+
exact: "true"
|
|
117
|
+
route:
|
|
118
|
+
- destination:
|
|
119
|
+
host: my-app
|
|
120
|
+
subset: canary
|
|
121
|
+
# Percentage-based traffic split
|
|
122
|
+
- route:
|
|
123
|
+
- destination:
|
|
124
|
+
host: my-app
|
|
125
|
+
subset: stable
|
|
126
|
+
weight: 90
|
|
127
|
+
- destination:
|
|
128
|
+
host: my-app
|
|
129
|
+
subset: canary
|
|
130
|
+
weight: 10
|
|
131
|
+
timeout: 30s
|
|
132
|
+
retries:
|
|
133
|
+
attempts: 3
|
|
134
|
+
perTryTimeout: 10s
|
|
135
|
+
retryOn: gateway-error,connect-failure,refused-stream
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### DestinationRule (Subsets and Connection Policy)
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
# destinationrule.yaml
|
|
142
|
+
apiVersion: networking.istio.io/v1beta1
|
|
143
|
+
kind: DestinationRule
|
|
144
|
+
metadata:
|
|
145
|
+
name: my-app
|
|
146
|
+
namespace: default
|
|
147
|
+
spec:
|
|
148
|
+
host: my-app
|
|
149
|
+
trafficPolicy:
|
|
150
|
+
connectionPool:
|
|
151
|
+
tcp:
|
|
152
|
+
maxConnections: 100
|
|
153
|
+
http:
|
|
154
|
+
h2UpgradePolicy: DEFAULT
|
|
155
|
+
http1MaxPendingRequests: 100
|
|
156
|
+
http2MaxRequests: 1000
|
|
157
|
+
maxRequestsPerConnection: 10
|
|
158
|
+
outlierDetection:
|
|
159
|
+
consecutive5xxErrors: 5
|
|
160
|
+
interval: 10s
|
|
161
|
+
baseEjectionTime: 30s
|
|
162
|
+
maxEjectionPercent: 50
|
|
163
|
+
subsets:
|
|
164
|
+
- name: stable
|
|
165
|
+
labels:
|
|
166
|
+
version: v1
|
|
167
|
+
- name: canary
|
|
168
|
+
labels:
|
|
169
|
+
version: v2
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Gateway (Ingress Traffic)
|
|
173
|
+
|
|
174
|
+
```yaml
|
|
175
|
+
# gateway.yaml — expose service to external traffic
|
|
176
|
+
apiVersion: networking.istio.io/v1beta1
|
|
177
|
+
kind: Gateway
|
|
178
|
+
metadata:
|
|
179
|
+
name: app-gateway
|
|
180
|
+
namespace: default
|
|
181
|
+
spec:
|
|
182
|
+
selector:
|
|
183
|
+
istio: ingressgateway
|
|
184
|
+
servers:
|
|
185
|
+
- port:
|
|
186
|
+
number: 443
|
|
187
|
+
name: https
|
|
188
|
+
protocol: HTTPS
|
|
189
|
+
tls:
|
|
190
|
+
mode: SIMPLE
|
|
191
|
+
credentialName: app-tls-cert # Kubernetes secret
|
|
192
|
+
hosts:
|
|
193
|
+
- app.example.com
|
|
194
|
+
- port:
|
|
195
|
+
number: 80
|
|
196
|
+
name: http
|
|
197
|
+
protocol: HTTP
|
|
198
|
+
hosts:
|
|
199
|
+
- app.example.com
|
|
200
|
+
tls:
|
|
201
|
+
httpsRedirect: true
|
|
202
|
+
---
|
|
203
|
+
apiVersion: networking.istio.io/v1beta1
|
|
204
|
+
kind: VirtualService
|
|
205
|
+
metadata:
|
|
206
|
+
name: app-external
|
|
207
|
+
namespace: default
|
|
208
|
+
spec:
|
|
209
|
+
hosts:
|
|
210
|
+
- app.example.com
|
|
211
|
+
gateways:
|
|
212
|
+
- app-gateway
|
|
213
|
+
http:
|
|
214
|
+
- route:
|
|
215
|
+
- destination:
|
|
216
|
+
host: my-app
|
|
217
|
+
port:
|
|
218
|
+
number: 8080
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## mTLS Configuration
|
|
222
|
+
|
|
223
|
+
### Strict mTLS (Cluster-Wide)
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
# peer-authentication.yaml
|
|
227
|
+
apiVersion: security.istio.io/v1beta1
|
|
228
|
+
kind: PeerAuthentication
|
|
229
|
+
metadata:
|
|
230
|
+
name: default
|
|
231
|
+
namespace: istio-system # Applies to entire mesh
|
|
232
|
+
spec:
|
|
233
|
+
mtls:
|
|
234
|
+
mode: STRICT
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Permissive mTLS (Per Namespace)
|
|
238
|
+
|
|
239
|
+
```yaml
|
|
240
|
+
# Allow both plaintext and mTLS during migration
|
|
241
|
+
apiVersion: security.istio.io/v1beta1
|
|
242
|
+
kind: PeerAuthentication
|
|
243
|
+
metadata:
|
|
244
|
+
name: default
|
|
245
|
+
namespace: legacy-apps
|
|
246
|
+
spec:
|
|
247
|
+
mtls:
|
|
248
|
+
mode: PERMISSIVE
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Verify mTLS Status
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
# Check mTLS status for a namespace
|
|
255
|
+
istioctl x describe pod <pod-name> -n default
|
|
256
|
+
|
|
257
|
+
# View TLS configuration
|
|
258
|
+
istioctl proxy-config cluster <pod-name>.default --fqdn my-app.default.svc.cluster.local -o json | grep -A5 "tlsContext"
|
|
259
|
+
|
|
260
|
+
# Verify with istioctl authn
|
|
261
|
+
istioctl authn tls-check <pod-name>.default my-app.default.svc.cluster.local
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Authorization Policies
|
|
265
|
+
|
|
266
|
+
```yaml
|
|
267
|
+
# authz-policy.yaml — only allow frontend to call API
|
|
268
|
+
apiVersion: security.istio.io/v1beta1
|
|
269
|
+
kind: AuthorizationPolicy
|
|
270
|
+
metadata:
|
|
271
|
+
name: api-access
|
|
272
|
+
namespace: default
|
|
273
|
+
spec:
|
|
274
|
+
selector:
|
|
275
|
+
matchLabels:
|
|
276
|
+
app: my-api
|
|
277
|
+
action: ALLOW
|
|
278
|
+
rules:
|
|
279
|
+
- from:
|
|
280
|
+
- source:
|
|
281
|
+
principals:
|
|
282
|
+
- "cluster.local/ns/default/sa/frontend"
|
|
283
|
+
to:
|
|
284
|
+
- operation:
|
|
285
|
+
methods: ["GET", "POST"]
|
|
286
|
+
paths: ["/api/*"]
|
|
287
|
+
---
|
|
288
|
+
# Deny all other traffic to api
|
|
289
|
+
apiVersion: security.istio.io/v1beta1
|
|
290
|
+
kind: AuthorizationPolicy
|
|
291
|
+
metadata:
|
|
292
|
+
name: deny-all
|
|
293
|
+
namespace: default
|
|
294
|
+
spec:
|
|
295
|
+
selector:
|
|
296
|
+
matchLabels:
|
|
297
|
+
app: my-api
|
|
298
|
+
action: DENY
|
|
299
|
+
rules:
|
|
300
|
+
- from:
|
|
301
|
+
- source:
|
|
302
|
+
notPrincipals:
|
|
303
|
+
- "cluster.local/ns/default/sa/frontend"
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Circuit Breaking
|
|
307
|
+
|
|
308
|
+
```yaml
|
|
309
|
+
# circuit-breaker.yaml
|
|
310
|
+
apiVersion: networking.istio.io/v1beta1
|
|
311
|
+
kind: DestinationRule
|
|
312
|
+
metadata:
|
|
313
|
+
name: my-api-circuit-breaker
|
|
314
|
+
spec:
|
|
315
|
+
host: my-api
|
|
316
|
+
trafficPolicy:
|
|
317
|
+
connectionPool:
|
|
318
|
+
tcp:
|
|
319
|
+
maxConnections: 50
|
|
320
|
+
http:
|
|
321
|
+
http1MaxPendingRequests: 50
|
|
322
|
+
http2MaxRequests: 100
|
|
323
|
+
maxRetries: 3
|
|
324
|
+
outlierDetection:
|
|
325
|
+
consecutive5xxErrors: 3
|
|
326
|
+
interval: 15s
|
|
327
|
+
baseEjectionTime: 60s
|
|
328
|
+
maxEjectionPercent: 100
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Linkerd Installation
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# Install Linkerd CLI
|
|
335
|
+
curl --proto '=https' --tlsv1.2 -sSfL https://run.linkerd.io/install -o /tmp/install-linkerd.sh && sh /tmp/install-linkerd.sh && rm /tmp/install-linkerd.sh
|
|
336
|
+
export PATH=$HOME/.linkerd2/bin:$PATH
|
|
337
|
+
|
|
338
|
+
# Validate cluster prerequisites
|
|
339
|
+
linkerd check --pre
|
|
340
|
+
|
|
341
|
+
# Install Linkerd CRDs
|
|
342
|
+
linkerd install --crds | kubectl apply -f -
|
|
343
|
+
|
|
344
|
+
# Install Linkerd control plane
|
|
345
|
+
linkerd install | kubectl apply -f -
|
|
346
|
+
|
|
347
|
+
# Verify installation
|
|
348
|
+
linkerd check
|
|
349
|
+
|
|
350
|
+
# Inject sidecar into a namespace
|
|
351
|
+
kubectl get deploy -n my-app -o yaml | linkerd inject - | kubectl apply -f -
|
|
352
|
+
|
|
353
|
+
# Or annotate namespace for auto-injection
|
|
354
|
+
kubectl annotate namespace my-app linkerd.io/inject=enabled
|
|
355
|
+
|
|
356
|
+
# View live traffic dashboard
|
|
357
|
+
linkerd viz install | kubectl apply -f -
|
|
358
|
+
linkerd viz dashboard
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
### Linkerd Traffic Split (SMI)
|
|
362
|
+
|
|
363
|
+
```yaml
|
|
364
|
+
# traffic-split.yaml
|
|
365
|
+
apiVersion: split.smi-spec.io/v1alpha4
|
|
366
|
+
kind: TrafficSplit
|
|
367
|
+
metadata:
|
|
368
|
+
name: my-app-split
|
|
369
|
+
namespace: default
|
|
370
|
+
spec:
|
|
371
|
+
service: my-app
|
|
372
|
+
backends:
|
|
373
|
+
- service: my-app-stable
|
|
374
|
+
weight: 900
|
|
375
|
+
- service: my-app-canary
|
|
376
|
+
weight: 100
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Debugging
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# Istio: check proxy configuration
|
|
383
|
+
istioctl proxy-config routes <pod-name>.default
|
|
384
|
+
istioctl proxy-config clusters <pod-name>.default
|
|
385
|
+
istioctl proxy-config listeners <pod-name>.default
|
|
386
|
+
|
|
387
|
+
# Istio: analyze configuration for issues
|
|
388
|
+
istioctl analyze -n default
|
|
389
|
+
|
|
390
|
+
# Istio: proxy debug logs
|
|
391
|
+
istioctl proxy-config log <pod-name>.default --level debug
|
|
392
|
+
|
|
393
|
+
# Linkerd: check proxy stats
|
|
394
|
+
linkerd viz stat deploy -n default
|
|
395
|
+
linkerd viz top deploy/my-app -n default
|
|
396
|
+
linkerd viz edges deploy -n default
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
## Troubleshooting
|
|
400
|
+
|
|
401
|
+
| Symptom | Cause | Fix |
|
|
402
|
+
|---------|-------|-----|
|
|
403
|
+
| Sidecar not injected | Missing namespace label | Add `istio-injection=enabled` label; restart pods |
|
|
404
|
+
| 503 errors between services | mTLS mismatch (one side plaintext) | Set `PeerAuthentication` to `PERMISSIVE` during migration |
|
|
405
|
+
| High latency after mesh install | Sidecar resource limits too low | Increase sidecar CPU/memory limits in mesh config |
|
|
406
|
+
| VirtualService not routing | Missing DestinationRule subsets | Create matching DestinationRule with subset labels |
|
|
407
|
+
| `upstream connect error` | Circuit breaker tripped | Check outlier detection settings; increase thresholds |
|
|
408
|
+
| Authorization policy blocks everything | Default deny without matching allow rule | Add explicit ALLOW rule before DENY-all |
|
|
409
|
+
| Kiali shows "Unknown" traffic | Missing sidecar on calling service | Inject sidecar into all communicating services |
|
|
410
|
+
|
|
411
|
+
## Related Skills
|
|
412
|
+
|
|
413
|
+
- load-balancing (`load-balancing`) - Layer 4/7 load balancing outside Kubernetes
|
|
414
|
+
- reverse-proxy (`reverse-proxy`) - Ingress-level proxying
|
|
415
|
+
- ai-inference-service-mesh (`ai-inference-service-mesh`) - Mesh patterns for ML workloads
|
|
416
|
+
- dns-management (`dns-management`) - DNS for mesh ingress gateways
|
|
417
|
+
|
|
418
|
+
## Limitations
|
|
419
|
+
|
|
420
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
421
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
422
|
+
|