What this test proves
A successful run proves that the selected provider version can use the endpoint and that the exact create, read, refresh, and delete operations in this configuration work for the selected target. It does not prove that every AWS resource, every S3 feature, import, drift recovery, or backend migration works.Prerequisites
- Terraform 1.6+ or a compatible OpenTofu release;
- AWS provider
5.100.0for the exact configuration below; - an installed AWS-origin adapter endpoint;
- a pre-created target bucket represented by an origin-facing bucket name;
- origin-side credentials for the provider;
- an isolated workspace and remote state policy suitable for test data.
Configure the provider endpoint
skip_* settings are deliberate for this bounded S3 fixture: they prevent this provider version from making startup calls to EC2 metadata, region validation, or AWS STS outside the configured adapter route. They do not weaken Cloud Adapter authentication. Validate the origin identity independently, and reassess the startup call graph before changing provider versions.
Run the lifecycle
- Read the object through the origin API.
- Inspect it in the native target service.
- Confirm its bytes and content type.
- Save the provider and adapter versions with the test evidence.
Prove read-back and drift behavior
Run a second plan:0 means no diff, 2 means Terraform found a diff, and 1 means an error. If the provider cannot read a field it wrote, a perpetual diff can appear even though creation succeeded. Compare the diff with the target-specific fidelity and limitation tables.
For a controlled drift test, change only a disposable object’s content through the native target API, run terraform plan, and observe whether the provider detects the change. Restore or destroy the object afterward.
Clean up safely
State and migration boundaries
- Terraform state records provider-visible identity; it is not application data migration.
- Changing the provider endpoint can cause refreshes, replacement plans, or identity mismatches.
- Import requires compatible read and identity behavior, not only create support.
- A clean plan does not prove unsupported fields are preserved.
- Never point a production workspace at a new adapter endpoint before testing refresh and replacement behavior on a copy.
Troubleshooting
Capture diagnostic response headers and run the failing origin operation with the AWS CLI guide to separate provider behavior from adapter behavior.