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,349 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opentofu-migration
|
|
3
|
+
description: Migrate from Terraform to OpenTofu with state compatibility, provider
|
|
4
|
+
registry setup, and CI/CD pipeline updates. Use when adopting the open-source Terraform
|
|
5
|
+
fork or evaluating license-free IaC.
|
|
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
|
+
# OpenTofu Migration
|
|
22
|
+
|
|
23
|
+
Migrate infrastructure-as-code from HashiCorp Terraform to the open-source OpenTofu fork.
|
|
24
|
+
|
|
25
|
+
## When to Use This Skill
|
|
26
|
+
|
|
27
|
+
Use this skill when:
|
|
28
|
+
- Migrating from Terraform to OpenTofu for licensing reasons
|
|
29
|
+
- Setting up a new IaC project and evaluating OpenTofu vs Terraform
|
|
30
|
+
- Updating CI/CD pipelines to use OpenTofu
|
|
31
|
+
- Configuring the OpenTofu provider registry
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- Existing Terraform codebase (0.13+)
|
|
36
|
+
- OpenTofu CLI installed
|
|
37
|
+
- State backend access (S3, GCS, Azure Blob, etc.)
|
|
38
|
+
|
|
39
|
+
## Install OpenTofu
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# macOS
|
|
43
|
+
brew install opentofu
|
|
44
|
+
|
|
45
|
+
# Linux (Debian/Ubuntu)
|
|
46
|
+
curl --proto '=https' --tlsv1.2 -fsSL https://get.opentofu.org/install-opentofu.sh \
|
|
47
|
+
-o install-opentofu.sh
|
|
48
|
+
chmod +x install-opentofu.sh
|
|
49
|
+
./install-opentofu.sh --install-method deb
|
|
50
|
+
rm install-opentofu.sh
|
|
51
|
+
|
|
52
|
+
# Linux (RPM)
|
|
53
|
+
./install-opentofu.sh --install-method rpm
|
|
54
|
+
|
|
55
|
+
# Docker
|
|
56
|
+
docker run --rm -v $(pwd):/workspace -w /workspace \
|
|
57
|
+
ghcr.io/opentofu/opentofu:latest init
|
|
58
|
+
|
|
59
|
+
# Verify installation
|
|
60
|
+
tofu --version
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Migration Checklist
|
|
64
|
+
|
|
65
|
+
### 1. Verify Compatibility
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# OpenTofu reads Terraform state files directly — no migration needed
|
|
69
|
+
# Check your Terraform version (must be <= 1.6.x for full compat)
|
|
70
|
+
terraform version
|
|
71
|
+
|
|
72
|
+
# Run plan with OpenTofu against existing state
|
|
73
|
+
tofu init
|
|
74
|
+
tofu plan
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 2. Replace CLI Commands
|
|
78
|
+
|
|
79
|
+
| Terraform | OpenTofu |
|
|
80
|
+
|-----------|----------|
|
|
81
|
+
| `terraform init` | `tofu init` |
|
|
82
|
+
| `terraform plan` | `tofu plan` |
|
|
83
|
+
| `terraform apply` | `tofu apply` |
|
|
84
|
+
| `terraform destroy` | `tofu destroy` |
|
|
85
|
+
| `terraform fmt` | `tofu fmt` |
|
|
86
|
+
| `terraform validate` | `tofu validate` |
|
|
87
|
+
| `terraform state` | `tofu state` |
|
|
88
|
+
| `terraform import` | `tofu import` |
|
|
89
|
+
|
|
90
|
+
### 3. Update Provider Lock File
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Remove Terraform lock and regenerate for OpenTofu
|
|
94
|
+
rm .terraform.lock.hcl
|
|
95
|
+
tofu init -upgrade
|
|
96
|
+
|
|
97
|
+
# Verify providers resolve correctly
|
|
98
|
+
tofu providers
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 4. Update State Backend
|
|
102
|
+
|
|
103
|
+
State files are compatible — no migration needed. Just verify:
|
|
104
|
+
|
|
105
|
+
```hcl
|
|
106
|
+
# backend.tf — works identically with OpenTofu
|
|
107
|
+
terraform {
|
|
108
|
+
backend "s3" {
|
|
109
|
+
bucket = "mycompany-tfstate"
|
|
110
|
+
key = "prod/infrastructure.tfstate"
|
|
111
|
+
region = "us-east-1"
|
|
112
|
+
dynamodb_table = "terraform-locks"
|
|
113
|
+
encrypt = true
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Verify state access
|
|
120
|
+
tofu init
|
|
121
|
+
tofu state list
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 5. Provider Registry
|
|
125
|
+
|
|
126
|
+
OpenTofu uses its own registry but mirrors most Terraform providers:
|
|
127
|
+
|
|
128
|
+
```hcl
|
|
129
|
+
# versions.tf
|
|
130
|
+
terraform {
|
|
131
|
+
required_version = ">= 1.6.0"
|
|
132
|
+
|
|
133
|
+
required_providers {
|
|
134
|
+
aws = {
|
|
135
|
+
source = "hashicorp/aws"
|
|
136
|
+
version = "~> 5.0"
|
|
137
|
+
}
|
|
138
|
+
kubernetes = {
|
|
139
|
+
source = "hashicorp/kubernetes"
|
|
140
|
+
version = "~> 2.25"
|
|
141
|
+
}
|
|
142
|
+
# OpenTofu-specific providers
|
|
143
|
+
random = {
|
|
144
|
+
source = "hashicorp/random"
|
|
145
|
+
version = "~> 3.6"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## OpenTofu-Specific Features
|
|
152
|
+
|
|
153
|
+
### State Encryption (Not in Terraform)
|
|
154
|
+
|
|
155
|
+
```hcl
|
|
156
|
+
# OpenTofu supports native state encryption
|
|
157
|
+
terraform {
|
|
158
|
+
encryption {
|
|
159
|
+
key_provider "pbkdf2" "my_key" {
|
|
160
|
+
passphrase = var.state_passphrase
|
|
161
|
+
}
|
|
162
|
+
method "aes_gcm" "encrypt" {
|
|
163
|
+
keys = key_provider.pbkdf2.my_key
|
|
164
|
+
}
|
|
165
|
+
state {
|
|
166
|
+
method = method.aes_gcm.encrypt
|
|
167
|
+
enforced = true
|
|
168
|
+
}
|
|
169
|
+
plan {
|
|
170
|
+
method = method.aes_gcm.encrypt
|
|
171
|
+
enforced = true
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Early Variable/Local Evaluation
|
|
178
|
+
|
|
179
|
+
```hcl
|
|
180
|
+
# OpenTofu allows variables in backend config and module sources
|
|
181
|
+
terraform {
|
|
182
|
+
backend "s3" {
|
|
183
|
+
bucket = var.state_bucket # Works in OpenTofu, not Terraform
|
|
184
|
+
key = "${var.project}/terraform.tfstate"
|
|
185
|
+
region = var.aws_region
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## CI/CD Pipeline Updates
|
|
191
|
+
|
|
192
|
+
### GitHub Actions
|
|
193
|
+
|
|
194
|
+
```yaml
|
|
195
|
+
# .github/workflows/tofu.yml
|
|
196
|
+
name: OpenTofu
|
|
197
|
+
on:
|
|
198
|
+
pull_request:
|
|
199
|
+
paths: ["infra/**"]
|
|
200
|
+
push:
|
|
201
|
+
branches: [main]
|
|
202
|
+
paths: ["infra/**"]
|
|
203
|
+
|
|
204
|
+
permissions:
|
|
205
|
+
id-token: write
|
|
206
|
+
contents: read
|
|
207
|
+
pull-requests: write
|
|
208
|
+
|
|
209
|
+
jobs:
|
|
210
|
+
plan:
|
|
211
|
+
runs-on: ubuntu-latest
|
|
212
|
+
steps:
|
|
213
|
+
- uses: actions/checkout@v4
|
|
214
|
+
|
|
215
|
+
- name: Setup OpenTofu
|
|
216
|
+
uses: opentofu/setup-opentofu@v1
|
|
217
|
+
with:
|
|
218
|
+
tofu_version: "1.8.0"
|
|
219
|
+
|
|
220
|
+
- name: Configure AWS credentials
|
|
221
|
+
uses: aws-actions/configure-aws-credentials@v4
|
|
222
|
+
with:
|
|
223
|
+
role-to-assume: arn:aws:iam::123456789:role/tofu-deploy
|
|
224
|
+
aws-region: us-east-1
|
|
225
|
+
|
|
226
|
+
- name: Init
|
|
227
|
+
run: tofu init
|
|
228
|
+
working-directory: infra/
|
|
229
|
+
|
|
230
|
+
- name: Plan
|
|
231
|
+
id: plan
|
|
232
|
+
run: tofu plan -no-color -out=tfplan
|
|
233
|
+
working-directory: infra/
|
|
234
|
+
|
|
235
|
+
- name: Comment PR with plan
|
|
236
|
+
if: github.event_name == 'pull_request'
|
|
237
|
+
uses: actions/github-script@v7
|
|
238
|
+
with:
|
|
239
|
+
script: |
|
|
240
|
+
const output = `#### OpenTofu Plan
|
|
241
|
+
\`\`\`
|
|
242
|
+
${{ steps.plan.outputs.stdout }}
|
|
243
|
+
\`\`\``;
|
|
244
|
+
github.rest.issues.createComment({
|
|
245
|
+
issue_number: context.issue.number,
|
|
246
|
+
owner: context.repo.owner,
|
|
247
|
+
repo: context.repo.repo,
|
|
248
|
+
body: output.substring(0, 65536)
|
|
249
|
+
});
|
|
250
|
+
|
|
251
|
+
apply:
|
|
252
|
+
needs: plan
|
|
253
|
+
if: github.ref == 'refs/heads/main'
|
|
254
|
+
runs-on: ubuntu-latest
|
|
255
|
+
environment: production
|
|
256
|
+
steps:
|
|
257
|
+
- uses: actions/checkout@v4
|
|
258
|
+
- uses: opentofu/setup-opentofu@v1
|
|
259
|
+
- uses: aws-actions/configure-aws-credentials@v4
|
|
260
|
+
with:
|
|
261
|
+
role-to-assume: arn:aws:iam::123456789:role/tofu-deploy
|
|
262
|
+
aws-region: us-east-1
|
|
263
|
+
- run: tofu init && tofu apply -auto-approve
|
|
264
|
+
working-directory: infra/
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### GitLab CI
|
|
268
|
+
|
|
269
|
+
```yaml
|
|
270
|
+
# .gitlab-ci.yml
|
|
271
|
+
stages: [validate, plan, apply]
|
|
272
|
+
|
|
273
|
+
variables:
|
|
274
|
+
TOFU_VERSION: "1.8.0"
|
|
275
|
+
|
|
276
|
+
.tofu-base:
|
|
277
|
+
image: ghcr.io/opentofu/opentofu:${TOFU_VERSION}
|
|
278
|
+
before_script:
|
|
279
|
+
- tofu init
|
|
280
|
+
|
|
281
|
+
validate:
|
|
282
|
+
extends: .tofu-base
|
|
283
|
+
stage: validate
|
|
284
|
+
script:
|
|
285
|
+
- tofu fmt -check
|
|
286
|
+
- tofu validate
|
|
287
|
+
|
|
288
|
+
plan:
|
|
289
|
+
extends: .tofu-base
|
|
290
|
+
stage: plan
|
|
291
|
+
script:
|
|
292
|
+
- tofu plan -out=tfplan
|
|
293
|
+
artifacts:
|
|
294
|
+
paths: [tfplan]
|
|
295
|
+
|
|
296
|
+
apply:
|
|
297
|
+
extends: .tofu-base
|
|
298
|
+
stage: apply
|
|
299
|
+
script:
|
|
300
|
+
- tofu apply tfplan
|
|
301
|
+
when: manual
|
|
302
|
+
only: [main]
|
|
303
|
+
dependencies: [plan]
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Coexistence Strategy
|
|
307
|
+
|
|
308
|
+
If you need both tools during migration:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
# Use aliases to avoid conflicts
|
|
312
|
+
alias tf="terraform"
|
|
313
|
+
alias tofu="tofu"
|
|
314
|
+
|
|
315
|
+
# Or use direnv per-project
|
|
316
|
+
# .envrc
|
|
317
|
+
export PATH="/opt/opentofu/bin:$PATH"
|
|
318
|
+
|
|
319
|
+
# Wrapper script for gradual migration
|
|
320
|
+
#!/bin/bash
|
|
321
|
+
if [ -f ".use-opentofu" ]; then
|
|
322
|
+
exec tofu "$@"
|
|
323
|
+
else
|
|
324
|
+
exec terraform "$@"
|
|
325
|
+
fi
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Troubleshooting
|
|
329
|
+
|
|
330
|
+
| Issue | Solution |
|
|
331
|
+
|-------|---------|
|
|
332
|
+
| Provider not found | Run `tofu init -upgrade`, check registry.opentofu.org |
|
|
333
|
+
| State lock conflict | Same as Terraform — check DynamoDB/blob lease |
|
|
334
|
+
| Version constraint error | Update `required_version` to `>= 1.6.0` |
|
|
335
|
+
| Backend migration | State is compatible — just run `tofu init` |
|
|
336
|
+
| Missing provider credentials | Same env vars work (`AWS_*`, `GOOGLE_*`, `ARM_*`) |
|
|
337
|
+
|
|
338
|
+
## Related Skills
|
|
339
|
+
|
|
340
|
+
- terraform-aws (`terraform-aws`) — AWS IaC patterns (works with both)
|
|
341
|
+
- terraform-azure (`terraform-azure`) — Azure IaC patterns
|
|
342
|
+
- terraform-gcp (`terraform-gcp`) — GCP IaC patterns
|
|
343
|
+
- policy-as-code (`policy-as-code`) — OPA policy checks for IaC
|
|
344
|
+
|
|
345
|
+
## Limitations
|
|
346
|
+
|
|
347
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
348
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
349
|
+
|