| name | oraclecloud-upgrade-migration |
| description | Safely upgrade OCI Python SDK and Terraform provider โ version pinning, breaking change detection, and rollback.
Use when upgrading oci pip packages, updating the Terraform OCI provider, or debugging post-upgrade failures.
Trigger with "oraclecloud upgrade", "oci sdk upgrade", "oci terraform provider update", "oci version migration".
|
| allowed-tools | Read, Write, Edit, Bash(pip:*), Bash(oci:*), Bash(terraform:*), Bash(python3:*), Grep |
| version | 1.7.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","oraclecloud","oci"] |
| compatibility | Designed for Claude Code |
Oracle Cloud Upgrade & Migration
Overview
OCI Terraform provider and Python SDK break backwards compatibility more often than AWS equivalents. The Terraform provider has had provider crashes on terraform plan after upgrades, deprecated resource types removed without migration paths, and schema changes that silently alter behavior. The Python SDK has had memory leak fixes that changed object lifecycle semantics and authentication class renames between minor versions. This skill tracks known breaking changes and provides safe upgrade patterns with version pinning, pre-upgrade testing, and rollback procedures.
Purpose: Upgrade OCI Python SDK and Terraform provider versions safely, detect breaking changes before they hit production, and roll back cleanly if an upgrade fails.
Prerequisites
- Python 3.8+ with the current OCI SDK installed โ
pip show oci
- Terraform 1.5+ with the OCI provider โ
terraform version
- OCI CLI installed โ
oci --version
- Git for version control of infrastructure code
- A test environment โ never upgrade directly in production
- Current
~/.oci/config validated (see oraclecloud-install-auth)
Instructions
Step 1: Audit Current Versions
pip show oci | grep -E "^(Name|Version|Location)"
oci --version
grep -A2 'oracle/oci' .terraform.lock.hcl 2>/dev/null || echo "No lock file found"
terraform providers
import oci
print(f"OCI SDK version: {oci.__version__}")
Step 2: Check for Known Breaking Changes
Python SDK known breaking changes: