Skip to content

[Feature]: equinix_metal_spot_market_prices #714

@displague

Description

@displague

Description

Implement a sortable, filterable, version of equinix_metal_spot_market_price where multiple factors can be used to determine the best plan + location.

As seen in rancherlabs/terraform-harvester-equinix#63, it is possible to gather this information without a Terraform datasource, however, this requires usage of the Equinix Metal API directly, which prevents users from taking advantage of METAL_AUTH_TOKEN alone.

Alternatively, adding spotmarket pricing to the existing equinix_metal_plans could make for a more comprehensive feature, although it would mean tying separate EM APIs together in one resource.

The examples for equinix_metal_plans include a stanza that suggests that the existing filters, coupled with a sort for spot price, could be powerful:

https://registry.terraform.io/providers/equinix/equinix/latest/docs/data-sources/equinix_metal_plans#example-usage

    filter {
        attribute = "deployment_types"
        values    = ["spot_market"]
    }

Implementing this datasource in HCL is not a simple task. Kudos to the team that pulled this example together.

New or Affected Terraform Resources

equinix_metal_spot_market_prices

Potential Terraform Configuration

data "equinix_metal_spot_market_prices" "example" {
    sort {
        attribute = "pricing_hour"
        direction = "asc"
    }
    filter {
        attribute = "pricing_hour"
        values    = [2.5]
        match_by  = "less_than"
    }
    filter {
        attribute = "available_in_metros"
        values    = ["da", "sv"]
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions