scaleway/compute-instance v5.0.0
block-volume still took namespace/name, the naming convention every sibling module in this provider root (compute-instance, object-bucket, iam-application) has already moved to name_prefix/name_suffix. This PR renames them to match.
It also folds volume creation into compute-instance itself. A repo-wide census found block-volume has had exactly one consumer, ever, and that consumer always paired it 1:1 with the same compute-instance call -- composing the two separately bought no real flexibility, just a second module block and manual additional_volume_ids = [module.volume.id] plumbing every caller had to repeat. compute-instance's top-level additional_volume_ids input is replaced by a new instance_config.block_volume object:
block_volumeleft unset: no managed volume, nothing extra attached.block_volume.sizeunset: no managed volume is created, butblock_volume.additional_volume_ids(pre-created IDs from elsewhere) still attach.block_volume.sizeset:compute-instancecreates the volume itself by composingscaleway/block-volumeinternally, passing through the instance's ownname_prefix/name_suffixso the volume's name matches the instance's -- exactly what the one real past consumer always did by hand.block_volume.project_idbecomes required in this case, enforced via avalidationblock.
This is a narrow, named exception to ADR-0081/ADR-0085's "no local module composes another internally" principle, which otherwise still holds for every other module pairing in this provider root (object-bucket/iam-policy keep composing externally -- they're genuinely reused across many leaves, unlike block-volume). block-volume itself isn't removed; it stays independently callable.
Breaking for both modules:
block-volume:namespace/namerenamed toname_prefix/name_suffix.compute-instance:additional_volume_idsremoved; useinstance_config.block_volume.{size,iops,project_id,additional_volume_ids}instead.
The one live consumer (workloads/bucket/terraform/noisypigeon/poisoned/mega-storage-consolidation/deduplication) stays pinned to its old compute-instance/v4.0.0/block-volume/v2.0.0 tags rather than being migrated here -- its compute/volume/IAM are already being removed entirely on a separate, not-yet-merged branch, so migrating it now would be wasted effort.
See docs/adr/0120-compose-scaleway-block-volume-inside-compute-instance.md for the full decision record, including strikethrough amendments to ADR-0081 and ADR-0085 marking the principle exception.