opencode-skills-collection 4.0.67 → 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 +281 -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/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -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/artifact-yylo/SKILL.md +122 -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/google-no-code/SKILL.md +136 -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/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -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/ledger-tasks-yylo/SKILL.md +219 -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/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- 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/plan-ledger-tasks-yylo/SKILL.md +52 -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/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -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/resumable-implementation-contracts/SKILL.md +254 -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/understand-project-yylo/SKILL.md +62 -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/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -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/wiki-yylo/SKILL.md +114 -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/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-security-hardening
|
|
3
|
+
description: Harden OpenClaw self-hosted environments with baseline host controls,
|
|
4
|
+
auth tightening, secret handling, network segmentation, and safe update/rollback
|
|
5
|
+
workflows.
|
|
6
|
+
category: devops
|
|
7
|
+
risk: critical
|
|
8
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
10
|
+
source_type: community
|
|
11
|
+
date_added: '2026-09-20'
|
|
12
|
+
license: MIT
|
|
13
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
14
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
15
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
16
|
+
metadata:
|
|
17
|
+
author: devops-skills
|
|
18
|
+
version: '1.0'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
- Provisioning, hardening, or operating the infrastructure described in this skill within an authorized environment.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# OpenClaw Security Hardening
|
|
27
|
+
|
|
28
|
+
Use this skill to reduce exposure in self-hosted OpenClaw deployments before opening access to teammates or external networks.
|
|
29
|
+
|
|
30
|
+
## Build a Threat Model First
|
|
31
|
+
|
|
32
|
+
Map the highest-risk assets and paths:
|
|
33
|
+
|
|
34
|
+
- Admin/API endpoints for OpenClaw
|
|
35
|
+
- Provider API keys and model credentials
|
|
36
|
+
- Prompt/response logs containing sensitive business data
|
|
37
|
+
- Host-level access (SSH, local admin accounts, remote desktop)
|
|
38
|
+
|
|
39
|
+
Prioritize controls that reduce credential theft, remote code execution blast radius, and data exfiltration.
|
|
40
|
+
|
|
41
|
+
## Apply Baseline Host Hardening
|
|
42
|
+
|
|
43
|
+
1. Keep OS and package dependencies patched on a regular cadence.
|
|
44
|
+
2. Run OpenClaw as a dedicated non-admin user account.
|
|
45
|
+
3. Enable full-disk encryption and secure boot features where available.
|
|
46
|
+
4. Remove unnecessary services and block inbound ports by default.
|
|
47
|
+
5. Lock down remote admin (key-only SSH, no password login, limited source CIDRs).
|
|
48
|
+
|
|
49
|
+
Example Linux baseline checks:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
id openclaw
|
|
53
|
+
sudo ss -tulpn
|
|
54
|
+
sudo ufw status verbose
|
|
55
|
+
sudo systemctl --failed
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Harden Application Runtime
|
|
59
|
+
|
|
60
|
+
- Bind OpenClaw to localhost or private VLAN by default.
|
|
61
|
+
- Place a reverse proxy in front of OpenClaw for TLS, auth, and rate limits.
|
|
62
|
+
- Enforce authentication on every non-health endpoint.
|
|
63
|
+
- Disable debug/dev modes in persistent environments.
|
|
64
|
+
- Restrict outbound egress to only required providers (LLM API, telemetry sink, package mirror).
|
|
65
|
+
|
|
66
|
+
Example reverse proxy controls to enforce:
|
|
67
|
+
|
|
68
|
+
- TLS 1.2+ only
|
|
69
|
+
- strict transport security header
|
|
70
|
+
- request body size limits
|
|
71
|
+
- request timeout and upstream timeout guardrails
|
|
72
|
+
- per-IP and per-token rate limiting
|
|
73
|
+
|
|
74
|
+
## Protect Secrets and Tokens
|
|
75
|
+
|
|
76
|
+
- Store secrets in a vault or platform secret manager, not committed `.env` files.
|
|
77
|
+
- Rotate provider and admin tokens on a fixed interval and after any incident.
|
|
78
|
+
- Scope tokens minimally (least privilege, per-service keys).
|
|
79
|
+
- Scan repos and deployment artifacts for leaked credentials before release.
|
|
80
|
+
|
|
81
|
+
Rotation checklist:
|
|
82
|
+
|
|
83
|
+
1. Generate replacement key.
|
|
84
|
+
2. Update runtime secret store.
|
|
85
|
+
3. Restart or reload OpenClaw.
|
|
86
|
+
4. Validate request success with new key.
|
|
87
|
+
5. Revoke old key.
|
|
88
|
+
|
|
89
|
+
## Segment Network Access
|
|
90
|
+
|
|
91
|
+
Use layered access patterns:
|
|
92
|
+
|
|
93
|
+
- **Tier 1 (private):** OpenClaw service port reachable only from app/proxy subnet.
|
|
94
|
+
- **Tier 2 (operator):** Admin plane reachable only from VPN/Tailscale/WireGuard.
|
|
95
|
+
- **Tier 3 (public):** Expose only hardened reverse proxy with strict ACLs.
|
|
96
|
+
|
|
97
|
+
Do not publish raw OpenClaw service ports directly to the internet.
|
|
98
|
+
|
|
99
|
+
## Add Detection and Recovery Paths
|
|
100
|
+
|
|
101
|
+
- Centralize auth, error, and audit logs.
|
|
102
|
+
- Alert on brute-force attempts, token failures, and unusual outbound traffic.
|
|
103
|
+
- Capture immutable backup snapshots of configs and prompt data retention settings.
|
|
104
|
+
- Test rollback and restore procedures every release cycle.
|
|
105
|
+
|
|
106
|
+
Minimum operational runbook:
|
|
107
|
+
|
|
108
|
+
- service restart path
|
|
109
|
+
- key revocation path
|
|
110
|
+
- incident isolation path (network block + token disable)
|
|
111
|
+
- known-good rollback version
|
|
112
|
+
|
|
113
|
+
## Validation Checklist
|
|
114
|
+
|
|
115
|
+
- All sensitive endpoints require auth and are unreachable without VPN or gateway policy.
|
|
116
|
+
- Secrets are absent from repo history and plaintext shared directories.
|
|
117
|
+
- Host firewall default deny is active for inbound traffic.
|
|
118
|
+
- TLS termination and rate limits are active at ingress.
|
|
119
|
+
- Rollback drill can restore service within target RTO.
|
|
120
|
+
|
|
121
|
+
## Related Skills
|
|
122
|
+
|
|
123
|
+
- openclaw-local-mac-mini (`openclaw-local-mac-mini`) - Local OpenClaw hosting setup
|
|
124
|
+
- multi-tenant-llm-hosting (`multi-tenant-llm-hosting`) - Multi-tenant AI isolation patterns
|
|
125
|
+
- zero-trust (`zero-trust`) - Private access and identity-aware network controls
|
|
126
|
+
|
|
127
|
+
## When to Use
|
|
128
|
+
|
|
129
|
+
- You are provisioning, configuring, or troubleshooting the infrastructure component covered by this skill (servers, storage, databases, networking, cloud, local AI).
|
|
130
|
+
|
|
131
|
+
## Limitations
|
|
132
|
+
|
|
133
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
134
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
135
|
+
|
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openshift
|
|
3
|
+
description: Manage Red Hat OpenShift clusters and deployments.
|
|
4
|
+
category: devops
|
|
5
|
+
risk: critical
|
|
6
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
7
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_type: community
|
|
9
|
+
date_added: '2026-09-20'
|
|
10
|
+
license: MIT
|
|
11
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
12
|
+
compatibility: Requires the relevant platform CLIs (kubectl, helm, terraform, git,
|
|
13
|
+
CI runners) and authorized access to the target environment. Docs-only; helper scripts
|
|
14
|
+
and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# OpenShift
|
|
21
|
+
|
|
22
|
+
Deploy and manage applications on Red Hat OpenShift Container Platform.
|
|
23
|
+
|
|
24
|
+
## When to Use This Skill
|
|
25
|
+
|
|
26
|
+
Use this skill when:
|
|
27
|
+
- Deploying applications to OpenShift clusters
|
|
28
|
+
- Using OpenShift-specific features (Routes, BuildConfigs)
|
|
29
|
+
- Managing projects and RBAC in OpenShift
|
|
30
|
+
- Implementing S2I (Source-to-Image) builds
|
|
31
|
+
- Working with OpenShift Operators
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- OpenShift cluster access
|
|
36
|
+
- oc CLI installed
|
|
37
|
+
- Basic Kubernetes knowledge
|
|
38
|
+
|
|
39
|
+
## CLI Basics
|
|
40
|
+
|
|
41
|
+
### Authentication
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Login to cluster
|
|
45
|
+
oc login https://api.cluster.example.com:6443 -u admin -p password
|
|
46
|
+
|
|
47
|
+
# Login with token
|
|
48
|
+
oc login --token=sha256~xxxx --server=https://api.cluster.example.com:6443
|
|
49
|
+
|
|
50
|
+
# Check current context
|
|
51
|
+
oc whoami
|
|
52
|
+
oc whoami --show-server
|
|
53
|
+
oc whoami --show-context
|
|
54
|
+
|
|
55
|
+
# Logout
|
|
56
|
+
oc logout
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Project Management
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Create project (namespace)
|
|
63
|
+
oc new-project myapp --display-name="My App" --description="My Application"
|
|
64
|
+
|
|
65
|
+
# Switch project
|
|
66
|
+
oc project myapp
|
|
67
|
+
|
|
68
|
+
# List projects
|
|
69
|
+
oc projects
|
|
70
|
+
|
|
71
|
+
# Delete project
|
|
72
|
+
oc delete project myapp
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Deploying Applications
|
|
76
|
+
|
|
77
|
+
### From Image
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Deploy from container image
|
|
81
|
+
oc new-app --image=nginx:latest --name=webserver
|
|
82
|
+
|
|
83
|
+
# Deploy from Docker Hub
|
|
84
|
+
oc new-app docker.io/library/nginx:latest
|
|
85
|
+
|
|
86
|
+
# Deploy with environment variables
|
|
87
|
+
oc new-app myimage:latest \
|
|
88
|
+
-e DATABASE_URL=postgres://localhost/db \
|
|
89
|
+
-e APP_ENV=production
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### From Source (S2I)
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Deploy from Git repository
|
|
96
|
+
oc new-app https://github.com/org/myapp.git
|
|
97
|
+
|
|
98
|
+
# Specify builder image
|
|
99
|
+
oc new-app nodejs:18~https://github.com/org/nodejs-app.git
|
|
100
|
+
|
|
101
|
+
# With context directory
|
|
102
|
+
oc new-app https://github.com/org/monorepo.git \
|
|
103
|
+
--context-dir=backend \
|
|
104
|
+
--name=backend-api
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### From Template
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
# List available templates
|
|
111
|
+
oc get templates -n openshift
|
|
112
|
+
|
|
113
|
+
# Deploy from template
|
|
114
|
+
oc new-app postgresql-persistent \
|
|
115
|
+
-p POSTGRESQL_USER=user \
|
|
116
|
+
-p POSTGRESQL_PASSWORD=secret \
|
|
117
|
+
-p POSTGRESQL_DATABASE=mydb
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Routes
|
|
121
|
+
|
|
122
|
+
### Creating Routes
|
|
123
|
+
|
|
124
|
+
```yaml
|
|
125
|
+
apiVersion: route.openshift.io/v1
|
|
126
|
+
kind: Route
|
|
127
|
+
metadata:
|
|
128
|
+
name: myapp
|
|
129
|
+
spec:
|
|
130
|
+
host: myapp.apps.cluster.example.com
|
|
131
|
+
to:
|
|
132
|
+
kind: Service
|
|
133
|
+
name: myapp
|
|
134
|
+
weight: 100
|
|
135
|
+
port:
|
|
136
|
+
targetPort: 8080
|
|
137
|
+
tls:
|
|
138
|
+
termination: edge
|
|
139
|
+
insecureEdgeTerminationPolicy: Redirect
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Create route via CLI
|
|
144
|
+
oc expose svc/myapp
|
|
145
|
+
|
|
146
|
+
# Create with custom hostname
|
|
147
|
+
oc create route edge myapp \
|
|
148
|
+
--service=myapp \
|
|
149
|
+
--hostname=myapp.apps.cluster.example.com
|
|
150
|
+
|
|
151
|
+
# Create passthrough route (TLS termination at pod)
|
|
152
|
+
oc create route passthrough myapp-secure --service=myapp
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### A/B Testing
|
|
156
|
+
|
|
157
|
+
```yaml
|
|
158
|
+
apiVersion: route.openshift.io/v1
|
|
159
|
+
kind: Route
|
|
160
|
+
metadata:
|
|
161
|
+
name: myapp
|
|
162
|
+
spec:
|
|
163
|
+
to:
|
|
164
|
+
kind: Service
|
|
165
|
+
name: myapp-v1
|
|
166
|
+
weight: 90
|
|
167
|
+
alternateBackends:
|
|
168
|
+
- kind: Service
|
|
169
|
+
name: myapp-v2
|
|
170
|
+
weight: 10
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Build Configurations
|
|
174
|
+
|
|
175
|
+
### BuildConfig
|
|
176
|
+
|
|
177
|
+
```yaml
|
|
178
|
+
apiVersion: build.openshift.io/v1
|
|
179
|
+
kind: BuildConfig
|
|
180
|
+
metadata:
|
|
181
|
+
name: myapp
|
|
182
|
+
spec:
|
|
183
|
+
source:
|
|
184
|
+
type: Git
|
|
185
|
+
git:
|
|
186
|
+
uri: https://github.com/org/myapp.git
|
|
187
|
+
ref: main
|
|
188
|
+
strategy:
|
|
189
|
+
type: Docker
|
|
190
|
+
dockerStrategy:
|
|
191
|
+
dockerfilePath: Dockerfile
|
|
192
|
+
output:
|
|
193
|
+
to:
|
|
194
|
+
kind: ImageStreamTag
|
|
195
|
+
name: myapp:latest
|
|
196
|
+
triggers:
|
|
197
|
+
- type: ConfigChange
|
|
198
|
+
- type: GitHub
|
|
199
|
+
github:
|
|
200
|
+
secret: webhook-secret
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### S2I Build
|
|
204
|
+
|
|
205
|
+
```yaml
|
|
206
|
+
apiVersion: build.openshift.io/v1
|
|
207
|
+
kind: BuildConfig
|
|
208
|
+
metadata:
|
|
209
|
+
name: myapp
|
|
210
|
+
spec:
|
|
211
|
+
source:
|
|
212
|
+
type: Git
|
|
213
|
+
git:
|
|
214
|
+
uri: https://github.com/org/myapp.git
|
|
215
|
+
strategy:
|
|
216
|
+
type: Source
|
|
217
|
+
sourceStrategy:
|
|
218
|
+
from:
|
|
219
|
+
kind: ImageStreamTag
|
|
220
|
+
namespace: openshift
|
|
221
|
+
name: nodejs:18-ubi8
|
|
222
|
+
env:
|
|
223
|
+
- name: NPM_RUN
|
|
224
|
+
value: start
|
|
225
|
+
output:
|
|
226
|
+
to:
|
|
227
|
+
kind: ImageStreamTag
|
|
228
|
+
name: myapp:latest
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Build Commands
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
# Start build
|
|
235
|
+
oc start-build myapp
|
|
236
|
+
|
|
237
|
+
# Start build from local source
|
|
238
|
+
oc start-build myapp --from-dir=.
|
|
239
|
+
|
|
240
|
+
# Follow build logs
|
|
241
|
+
oc start-build myapp --follow
|
|
242
|
+
|
|
243
|
+
# View build logs
|
|
244
|
+
oc logs -f bc/myapp
|
|
245
|
+
|
|
246
|
+
# Cancel build
|
|
247
|
+
oc cancel-build myapp-1
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## Image Streams
|
|
251
|
+
|
|
252
|
+
```yaml
|
|
253
|
+
apiVersion: image.openshift.io/v1
|
|
254
|
+
kind: ImageStream
|
|
255
|
+
metadata:
|
|
256
|
+
name: myapp
|
|
257
|
+
spec:
|
|
258
|
+
lookupPolicy:
|
|
259
|
+
local: true
|
|
260
|
+
tags:
|
|
261
|
+
- name: latest
|
|
262
|
+
from:
|
|
263
|
+
kind: DockerImage
|
|
264
|
+
name: registry.example.com/myapp:latest
|
|
265
|
+
importPolicy:
|
|
266
|
+
scheduled: true
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
# Create image stream
|
|
271
|
+
oc create imagestream myapp
|
|
272
|
+
|
|
273
|
+
# Import image
|
|
274
|
+
oc import-image myapp:latest \
|
|
275
|
+
--from=docker.io/library/nginx:latest \
|
|
276
|
+
--confirm
|
|
277
|
+
|
|
278
|
+
# Tag image
|
|
279
|
+
oc tag myapp:latest myapp:production
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## Deployment Configs
|
|
283
|
+
|
|
284
|
+
```yaml
|
|
285
|
+
apiVersion: apps.openshift.io/v1
|
|
286
|
+
kind: DeploymentConfig
|
|
287
|
+
metadata:
|
|
288
|
+
name: myapp
|
|
289
|
+
spec:
|
|
290
|
+
replicas: 3
|
|
291
|
+
selector:
|
|
292
|
+
app: myapp
|
|
293
|
+
template:
|
|
294
|
+
metadata:
|
|
295
|
+
labels:
|
|
296
|
+
app: myapp
|
|
297
|
+
spec:
|
|
298
|
+
containers:
|
|
299
|
+
- name: myapp
|
|
300
|
+
image: myapp:latest
|
|
301
|
+
ports:
|
|
302
|
+
- containerPort: 8080
|
|
303
|
+
resources:
|
|
304
|
+
requests:
|
|
305
|
+
memory: "128Mi"
|
|
306
|
+
cpu: "100m"
|
|
307
|
+
limits:
|
|
308
|
+
memory: "256Mi"
|
|
309
|
+
cpu: "500m"
|
|
310
|
+
triggers:
|
|
311
|
+
- type: ConfigChange
|
|
312
|
+
- type: ImageChange
|
|
313
|
+
imageChangeParams:
|
|
314
|
+
automatic: true
|
|
315
|
+
containerNames:
|
|
316
|
+
- myapp
|
|
317
|
+
from:
|
|
318
|
+
kind: ImageStreamTag
|
|
319
|
+
name: myapp:latest
|
|
320
|
+
strategy:
|
|
321
|
+
type: Rolling
|
|
322
|
+
rollingParams:
|
|
323
|
+
maxSurge: 25%
|
|
324
|
+
maxUnavailable: 25%
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
## ConfigMaps and Secrets
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
# Create ConfigMap
|
|
331
|
+
oc create configmap myapp-config \
|
|
332
|
+
--from-literal=APP_ENV=production \
|
|
333
|
+
--from-file=config.yaml
|
|
334
|
+
|
|
335
|
+
# Create Secret
|
|
336
|
+
oc create secret generic myapp-secrets \
|
|
337
|
+
--from-literal=password=secret123
|
|
338
|
+
|
|
339
|
+
# Mount as volume
|
|
340
|
+
oc set volume dc/myapp \
|
|
341
|
+
--add --name=config \
|
|
342
|
+
--type=configmap \
|
|
343
|
+
--configmap-name=myapp-config \
|
|
344
|
+
--mount-path=/etc/config
|
|
345
|
+
|
|
346
|
+
# Set as environment
|
|
347
|
+
oc set env dc/myapp --from=secret/myapp-secrets
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Security Context Constraints
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
# List SCCs
|
|
354
|
+
oc get scc
|
|
355
|
+
|
|
356
|
+
# View SCC details
|
|
357
|
+
oc describe scc restricted
|
|
358
|
+
|
|
359
|
+
# Grant SCC to service account
|
|
360
|
+
oc adm policy add-scc-to-user anyuid -z myapp-sa -n myproject
|
|
361
|
+
|
|
362
|
+
# Create service account
|
|
363
|
+
oc create serviceaccount myapp-sa
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
### Custom SCC
|
|
367
|
+
|
|
368
|
+
```yaml
|
|
369
|
+
apiVersion: security.openshift.io/v1
|
|
370
|
+
kind: SecurityContextConstraints
|
|
371
|
+
metadata:
|
|
372
|
+
name: myapp-scc
|
|
373
|
+
allowPrivilegedContainer: false
|
|
374
|
+
runAsUser:
|
|
375
|
+
type: MustRunAsNonRoot
|
|
376
|
+
seLinuxContext:
|
|
377
|
+
type: MustRunAs
|
|
378
|
+
fsGroup:
|
|
379
|
+
type: RunAsAny
|
|
380
|
+
volumes:
|
|
381
|
+
- configMap
|
|
382
|
+
- secret
|
|
383
|
+
- persistentVolumeClaim
|
|
384
|
+
users:
|
|
385
|
+
- system:serviceaccount:myproject:myapp-sa
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Operators
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# List available operators
|
|
392
|
+
oc get packagemanifests -n openshift-marketplace
|
|
393
|
+
|
|
394
|
+
# Subscribe to operator
|
|
395
|
+
cat <<EOF | oc apply -f -
|
|
396
|
+
apiVersion: operators.coreos.com/v1alpha1
|
|
397
|
+
kind: Subscription
|
|
398
|
+
metadata:
|
|
399
|
+
name: prometheus
|
|
400
|
+
namespace: openshift-operators
|
|
401
|
+
spec:
|
|
402
|
+
channel: stable
|
|
403
|
+
name: prometheus
|
|
404
|
+
source: community-operators
|
|
405
|
+
sourceNamespace: openshift-marketplace
|
|
406
|
+
EOF
|
|
407
|
+
|
|
408
|
+
# View installed operators
|
|
409
|
+
oc get csv -n openshift-operators
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
## Monitoring
|
|
413
|
+
|
|
414
|
+
```bash
|
|
415
|
+
# View pod logs
|
|
416
|
+
oc logs -f pod/myapp-1-xyz
|
|
417
|
+
|
|
418
|
+
# View events
|
|
419
|
+
oc get events --sort-by='.lastTimestamp'
|
|
420
|
+
|
|
421
|
+
# Resource usage
|
|
422
|
+
oc adm top pods
|
|
423
|
+
oc adm top nodes
|
|
424
|
+
|
|
425
|
+
# Debug pod
|
|
426
|
+
oc debug pod/myapp-1-xyz
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
## Common Issues
|
|
430
|
+
|
|
431
|
+
### Issue: Build Fails
|
|
432
|
+
**Problem**: S2I build cannot find dependencies
|
|
433
|
+
**Solution**: Check builder image, verify source repository access
|
|
434
|
+
|
|
435
|
+
### Issue: Pod Security Violation
|
|
436
|
+
**Problem**: Pod fails to start due to SCC
|
|
437
|
+
**Solution**: Use appropriate SCC or modify container security context
|
|
438
|
+
|
|
439
|
+
### Issue: Route Not Working
|
|
440
|
+
**Problem**: Cannot access application via route
|
|
441
|
+
**Solution**: Verify service selector, check router pods, validate DNS
|
|
442
|
+
|
|
443
|
+
### Issue: Image Pull Error
|
|
444
|
+
**Problem**: Cannot pull image from registry
|
|
445
|
+
**Solution**: Create image pull secret, link to service account
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
oc create secret docker-registry regcred \
|
|
449
|
+
--docker-server=registry.example.com \
|
|
450
|
+
--docker-username=user \
|
|
451
|
+
--docker-password=pass
|
|
452
|
+
|
|
453
|
+
oc secrets link default regcred --for=pull
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
## Best Practices
|
|
457
|
+
|
|
458
|
+
- Use Projects for isolation (not just namespaces)
|
|
459
|
+
- Leverage ImageStreams for image management
|
|
460
|
+
- Use BuildConfigs for CI/CD integration
|
|
461
|
+
- Implement proper SCCs (avoid privileged)
|
|
462
|
+
- Use Routes instead of Ingress
|
|
463
|
+
- Leverage OpenShift templates for repeatability
|
|
464
|
+
- Monitor with built-in Prometheus
|
|
465
|
+
- Use Operators for complex applications
|
|
466
|
+
|
|
467
|
+
## Related Skills
|
|
468
|
+
|
|
469
|
+
- kubernetes-ops (`kubernetes-ops`) - K8s fundamentals
|
|
470
|
+
- helm-charts (`helm-charts`) - Helm deployments
|
|
471
|
+
- container-registries (`container-registries`) - Image management
|
|
472
|
+
|
|
473
|
+
## Limitations
|
|
474
|
+
|
|
475
|
+
- Guidance executes against real environments: confirm target, blast radius, and rollback plan before applying anything.
|
|
476
|
+
- Never deploy to production without explicit approval. Docs-only import: upstream scripts and templates not bundled.
|
|
477
|
+
|
|
478
|
+
### Example
|
|
479
|
+
|
|
480
|
+
```bash
|
|
481
|
+
git status && git diff --stat
|
|
482
|
+
kubectl diff -f manifest.yaml
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
> Adapted from [BagelHole/DevOps-Security-Agent-Skills](https://github.com/BagelHole/DevOps-Security-Agent-Skills) (MIT); frontmatter, When to Use/Limitations, and safety boundaries added for upstream compliance. Docs-only import: helper scripts and templates not bundled.
|