Releases: outscale/terraform-provider-outscale
Release list
v1.7.0
Release v1.7.0
Changes
OKS CRD deployment
A new outscale_oks_manifest resource lets you deploy Kubernetes manifests directly through the provider using a YAML document and an OKS cluster_id.
This resource allows users to deploy any OKS CRDs, including NodePool, NetPeering, and future CRDs. It automatically fetches the Kubeconfig and can apply both cluster-scoped and namespace-scoped resources without requiring a separate Kubernetes provider configuration.
CRD templates and kubeconfig attributes
Two OKS usability improvements were added alongside oks_manifest:
outscale_oks_crd_templatesprovides ready-to-use CRD manifest templates returned by the OKS APIkubeconfig_attributesis now exposed onoks_clusterandoks_kubeconfigto simplify external Kubernetes provider configuration
Better recovery when create partially fails
When a resource is created remotely but a later step in Create fails, the provider now keeps the resource tracked in Terraform state instead of leaving an orphaned resource behind.
Clearer warnings for VM operations with side-effects
As a partial improvement for issue #21, the provider now emits a plan-time warning for flexible_gpu_link operations that may stop or restart the linked VM. The same warning is not yet available on the VM resource itself, because this requires the VM resource to be migrated to the Plugin Framework first; this follow-up is tracked in #774.
Detailed changelog
What's Changed
✨ Added
- ✨ feat(oks): oks_manifest resource, oks_crd_templates datasource and kubeconfig_attributes by @ryohkhn in #746
- ✨ feat(datasource_image): add most_recent parameter by @ryohkhn in #793
🛠️ Changed / Refactoring
- 🔒 ci: fix plumber lint by @ryohkhn in #758
- 🚸 chore(fgpu_link): show warning about vm start/stop by @ryohkhn in #773
- 🔒 ci: replace compliance workflows by plumber by @ryohkhn in #782
- ♻️ refactor(virtual_gateway): migrate from SDKv2 to Plugin Framework by @ryohkhn in #783
📝 Documentation
- 📝 docs: Add oks_manifest resource by @andrepasteur in #755
- 📝 docs: Document usage of Kubernetes provider in oks_cluster resource by @andrepasteur in #756
- 📝 docs: Add oks_crd_templates data source by @andrepasteur in #753
- 📝 docs: Add kubeconfig_attributes to oks_cluster and oks_kubeconfig by @andrepasteur in #752
- 📝 docs: document migration of legacy env variables by @ryohkhn in #789
- 📝 docs: Add most_recent argument in outscale_image data source by @andrepasteur in #797
- 📝 docs: Rework NIC documentation in outscale_vm resource by @andrepasteur in #796
🐛 Fixed
- 🐛 fix: delete resources on create failure by @ryohkhn in #769
- 🐛 fix(client): profile loading from terraform configuration by @ryohkhn in #775
- 🐛 fix(oks_project): catch pending after delete call by @ryohkhn in #776
- 🐛 fix(vm): primary_nic & nics arguments conflicts by @ryohkhn in #784
- 🦖 fix: api.endpoint as a host or a server url by @ryohkhn in #791
📦 Dependency updates
- ⬆️ deps(gomod): update module github.com/outscale/osc-sdk-go/v3 to v3.0.0-rc.3 by @Open-Source-Bot in #798
Full Changelog: v1.6.0...v1.7.0
v1.6.0
Release v1.6.0
This release completes the migration of the provider's API layer from osc-sdk-go@v2 to osc-sdk-go@v3, along with several provider improvements focused on performance, retry behavior, and debugging.
No changes are required to your Terraform configuration, and the migration is intended to be fully backward-compatible.
Changes
Read batching
During plan and apply, the provider now groups individual Read calls for VMs, Volumes, Security Groups, Nets, and Subnets into bulk API requests.
Instead of sending one API call per resource, reads arriving within a short time window are merged together. On larger infrastructures, this can significantly reduce API usage and improve execution time.
Exponential backoff on throttling
Retries triggered by API throttling now use exponential backoff instead of fixed retry intervals.
This reduces pressure on the API and lowers the risk of repeated rate limiting and timeout failures.
Improved 409 conflict handling
Conflict errors are now handled more precisely, avoiding cases where the provider could enter infinite retry loops and eventually time out.
Cleaner debug logs
HTTP request and response logs shown with TF_LOG=DEBUG are now formatted as multi-line output, making them easier to read during troubleshooting.
Operational note
To help the batcher group more reads into single API calls, you can increase Terraform parallelism (default to 10):
terraform plan -parallelism=20To make this persistent:
export TF_CLI_ARGS_plan="-parallelism=20"See the Terraform CLI documentation for more details on TF_CLI_ARGS.
Detailed changelog
✨ Added
🛠️ Changed / Refactoring
- ♻️ refactor: code cleanup & better logic on LBU state usage by @ryohkhn in #720
- ♻️ refactor: multiple sdkv2 -> plugin framework migrations by @ryohkhn in #721
flexible_gpu_linkresourcepublic_ip&public_ip_linkresourcesserver_certificateresourceclient_gatewayresourcedhcp_optionresourcenat_serviceresource
- ♻️ refactor: snapshot resource migrate by @ryohkhn in #739
- ♻️ refactor: vpn_connection & vpn_connection_route resource migrate by @ryohkhn in #742
📝 Documentation
- 📝 docs: Align docs with oAPI 1.40.1 changes by @andrepasteur in #707
- 📝 docs: Fix incorrectly displayed chevrons in Markdown code block by @andrepasteur in #718
- 📝 docs: Fix flexible_gpu_link import by @andrepasteur in #733
🐛 Fixed
- 🐛 fix(vpn_connection): check err before conversion by @ryohkhn in #745
- 🐛 fix(timeouts): inconsistent apply after import by @ryohkhn in #749
Full Changelog: v1.5.0...v1.6.0
v1.6.0-rc.4
What's Changed
🛠️ Changed / Refactoring
- ♻️ refactor: snapshot resource migrate by @ryohkhn in #739
- ♻️ refactor: vpn_connection & vpn_connection_route resource migrate by @ryohkhn in #742
Full Changelog: v1.6.0-rc.3...v1.6.0-rc.4
v1.6.0-rc.3
v1.6.0-rc.2
What's Changed
🛠️ Changed / Refactoring
- ♻️ refactor: multiple sdkv2 -> plugin framework migrations by @ryohkhn in #721
flexible_gpu_linkresourcepublic_ip&public_ip_linkresourcesserver_certificateresourceclient_gatewayresourcedhcp_optionresourcenat_serviceresource
📝 Documentation
- 📝 docs: Fix flexible_gpu_link import by @andrepasteur in #733
Full Changelog: v1.6.0-rc.1...v1.6.0-rc.2
v1.6.0-rc.1
Release v1.6.0-rc.1
SDKv2 to v3 migration
The provider's API layer has been migrated from osc-sdk-go@v2 to osc-sdk-go@v3. This migration should be fully backward-compatible, no changes needed and no impact on your Terraform files.
Note: This is a release candidate. Please report any issues you encounter.
Provider improvements
-
Read batching: During
planandapply, the provider now collects individualReadcalls for VMs, Volumes, Security Groups, Nets, and Subnets and merges them into single bulk API requests. Instead of one API call per resource, reads arriving within a short time window are grouped together. On large infrastructures, this means dramatically fewer API calls and faster operations. -
Exponential backoff on throttling: When the API returns throttling responses, retries now use exponential backoff instead of fixed intervals. This reduces the chance of hitting rate limits and resulting timeouts.
-
409 conflict handling: Conflict errors are now handled with finer granularity, eliminating cases where the provider could enter infinite retry loops and eventually time out.
-
Cleaner debug logs: HTTP request/response logs (
TF_LOG=DEBUG) are now formatted as multi-line output, making debugging requests easier.
About read batching
Increase Terraform's parallelism so the batcher can group more reads into single API calls:
terraform plan -parallelism=20 # (defaults to 10)To make it permanent, set it via environment variables:
export TF_CLI_ARGS_plan="-parallelism=20"See the Terraform CLI documentation for more details on TF_CLI_ARGS.
v1.5.0
What's Changed
✨ Added
🛠️ Changed / Refactoring
- Docs/updated example by @outscale-rce in #701
📝 Documentation
- 📝 docs: Mention reserved private IPs and fix example in nic resource by @andrepasteur in #696
- 📝 docs: Fix "Create a VM with secondary NICs" example by @andrepasteur in #698
- 📝 docs: Rework the VM resource examples by @andrepasteur in #700
- 📝 docs: Create guide about OOS Backend by @outscale-rce in #702
- 📝 docs: Add 'state' attribute to 'load_balancer' by @andrepasteur in #714
- 📝 docs: Add oks_quotas data source by @andrepasteur in #715
🐛 Fixed
- 🐛 Ensure subprocess commands use string for Windows compatibility by @YashGaykar0309 in #691
- 🐛 fix(vm): do not error on unexpected state by @ryohkhn in #710
- 🐛 fix: clean state on empty read by @ryohkhn in #709
- 🐛 fix(ak): remove expiration_date by @ryohkhn in #712
- 🐛 fix(vm): security_group_ids causes perpetual diff when unset by @ryohkhn in #713
📦 Dependency updates
- ⬆️ deps(gomod): update github.com/outscale/goutils/sdk digest to d95db55 by @Open-Source-Bot in #659
- ⬆️ deps(gomod): update module github.com/spf13/cast to v1.10.0 by @Open-Source-Bot in #644
New Contributors
- @YashGaykar0309 made their first contribution in #691
Full Changelog: v1.4.0...v1.5.0
v1.4.0
What's Changed
✨ Added
- ✨ feat(vm): tpm support by @ryohkhn in #655
- ✨ feat: add configurable timeouts to all resources by @ryohkhn in #661
- ✨ feat(image): tpm support by @ryohkhn in #665
- ✨ feat: image & snapshot task waiting option by @ryohkhn in #677
🐛 Fixed
- 🐛 fix: go-releaser argument deprecation by @ryohkhn in #657
- 🐛 fix(lbu-policies): remove from state when already deleted by @ryohkhn in #666
- 🐛 fix(sg): unlink before destroy by @ryohkhn in #674
- 🐛 fix: per-service configuration by @ryohkhn in #681
📝 Documentation
- 📝 docs: Add tpm_enabled to vm resource by @andrepasteur in #660
- 📝 docs: Adding tpm_mandatory to the image arguments by @annakeita in #671
- 📝 docs: Add tpm_enabled to vm datasource by @andrepasteur in #675
- 📝 docs: Add timeouts default values by @andrepasteur in #676
- 📝 docs: Add wait_for_completion to image export task / snapshot export task resources by @andrepasteur in #680
- 📝 docs: Modify provider configuration arguments by @andrepasteur in #682
- 📝 docs: per-service provider configuration by @ryohkhn in #683
- 📝 docs: changelog v1.4.0 by @ryohkhn in #684
- 📝 docs: update v1.4.0 release date by @ryohkhn in #685
📦 Dependency updates
- ⬆️ deps(gomod): update module github.com/hashicorp/terraform-plugin-framework-timeouts to v0.7.0 by @Open-Source-Bot in #642
🌱 Others
- 🔥 chore: remove legacy scripts by @ryohkhn in #670
- 💚 ci(goreleaser): terraform expects zip package by @ryohkhn in #686
- 💚 ci(goreleaser): missing space by @ryohkhn in #687
Full Changelog: v1.3.2...v1.4.0
v1.3.2
What's Changed
🛠️ Changed / Refactoring
- 🎨 refactor: split by service by @ryohkhn in #619
- 🚨 fix: golangci-lint errors by @ryohkhn in #624
- ♻️ refactor: policy resource migrate by @ryohkhn in #629
- ♻️ refactor: user & user_group resource migrate by @ryohkhn in #634
- ♻️ refactor: ca resource migrate by @ryohkhn in #635
- ♻️ refactor: api_access_(rule & policy) resource migrate by @ryohkhn in #649
📝 Documentation
- 📝 docs: marking the security_group_name argument as optional by @annakeita in #620
- 📝 docs: changing device names in the vm resource examples by @annakeita in #630
🐛 Fixed
- 🐛 fix: virtual gateway state retry by @ryohkhn in #628
- 🐛 fix(security_group_rule): bypass port_range requirement on condition by @ryohkhn in #632
📦 Dependency updates
- chore: Configure Renovate by @Open-Source-Bot in #615
- ⬆️ deps(gomod): update module github.com/aws/smithy-go/aws-http-auth to v1.1.1 by @Open-Source-Bot in #641
🌱 Others
- 👷 ci: trigger push tests pre-release by @ryohkhn in #626
- 👷 ci: trigger push tests pre-release sequel by @ryohkhn in #627
- ✅ test: missing name randomization by @ryohkhn in #625
Full Changelog: v1.3.1...v1.3.2