Support for Elastic Metal Servers
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Description
Scaleway introduced a service named "Elastic Metal" in early 2022, but although there is an API for managing such servers, this Terraform provider does not include a corresponding resource. There has been no mention of Elastic Metal servers in this project's issue tracker; is support for this feasible? If so, would the maintainers consider it a priority?
New or Affected Resource(s)
- scaleway_elasticmetal_server
After hearing a couple Scaleway employees confirm that "Elastic Metal" servers can be configured with Terraform in this presentation from February 2022 (that link jumps directly to the relevant statements), I decided to take a closer look.
There appear to be two issues at play:
- this Terraform module uses the term "Bare Metal" to describe Scaleway's "Elastic Metal" product (and as of this moment, the word "elastic" does not appear anywhere in the source code)
- Scaleway inconsistently advertises a product named "Bare Metal" which is distinct from "Elastic Metal"
Concerning the first issue: Scaleway's "Terraform Quickstart" tutorial purports to create an Elastic Metal server, but the corresponding Terraform configuration uses a resource named scaleway_baremetal_server. The Terraform Registry page for that resource references "the documentation" with a link to a page titled, "Elastic metal API".
This would be somewhat confusing all on its own because Scaleway markets "Elastic Metal" as a sort of answer to "Bare Metal" (e.g. "The reliability of Bare Metal, the elasticity of the cloud"). It might actually be more confusing because of the presence of a product named "Bare Metal"--the second issue mentioned above.
"Bare Metal" is not listed as an "Element" on the Scaleway site's footer, but the page on Terraform includes a link to a page on "Bare Metal Servers".

If one clicks on that link in a web browser with JavaScript enabled, they will arrive at a product page describing a distinct offering with its own pricing model and fact sheet.

However, the Scaleway server is configured to redirect HTTP requests for that page to the page on "Elastic Metal":
$ curl --silent --head https://www.scaleway.com/en/bare-metal-servers/ | awk '/HTTP/,/location/'
HTTP/2 301
date: Tue, 17 May 2022 00:49:35 GMT
content-type: text/html
location: https://www.scaleway.com/en/elastic-metal/
If you are viewing the page on "Bare Metal" in a browser and refresh, you will instead see the "Elastic Metal" page.
If this analysis is accurate, then the feature I requested is already available and nothing technically needs to change in this project. In that case, though, I would strongly recommend changes to the technical documentation and marketing material.
Hello, you can create elastic metal resources using the bare-metal resource. https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/baremetal_server Elastic metal is a marketing term and both elastic-metal and bare-metal ones are routed to the exact same API. Due to the internal code generation pipeline, it is complicated to maintain two identical resources with different names but goes on the same API. As for renaming the resource, it would mean to do a breaking change for all the customers that already got a baremetal_server configured. If it is really important for you, I can create an elastic_metal that will in the background redirect to the exact same code that is currently available in the terraform provider.
Hi Rémy, thanks for the quick response!
I had a hunch that the discrepancy between the technical design and marketing material was a result of an evolution in the product. The friction behind normalizing the API makes sense to me.
Your offer to introduce an alias for the Terraform resource is much appreciated, and it would reduce confusion for people who have no way to know that the two terms are equivalent.
That said, changes like that have their own maintenance burden. In my previous comment, I recommended changing the documentation and marketing material because explaining things in a clear and consistent manner doesn't create any technical debt. Here are some of the improvements I had in mind:
- In the documentation for this project, mention that the
scaleway_baremetal_serverresource creates a server that the web site calls "Elastic Metal" - On the web page for this project, update the link that's currently titled "Bare Metal Servers" (the one pictured in my previous comment)
The second improvement is a little vague because I'm not familiar with Scaleway's product line. If "Bare Metal" is a distinct offering, then the link should take users to the "Bare Metal" product page regardless of whether they have JavaScript enabled (and to allow bookmarking and sharing links, the URL of that page should not redirect to "Elastic Metal"). If "Bare Metal" is not a distinct offering, then the link should be renamed (and the price estimate updated), and it should consistently route visitors to the "Elastic Metal" product page.