Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,37 @@ The `availability` field controls publication state and access restrictions. mes

---

<!-- scorecard-checks: provider_floor -->
## Provider Version Floor

A `>=` constraint says "not older than this"; the floor says **how old is still acceptable
anywhere in the hub**. It is declared in exactly one place — the `PROVIDER_FLOOR` map at the top of
[`tools/scorecard/scorecard.mjs`](tools/scorecard/scorecard.mjs) — and the `provider_floor`
scorecard check enforces it across every tier a module owns: `meshstack_integration.tf`,
`backplane/`, `buildingblock/` and `e2e/` (including nested submodules).

Two things fail the check:

- a `required_providers` entry for a floor-managed provider with **no** `version` at all — that is
unbounded, so `tofu init` may resolve an arbitrarily old release
- a constraint whose lower bound is **below** the floor (`>= 0.21.0` against a 0.23.0 floor, or a
constraint with no lower bound at all such as `< 1.0.0`)

**To raise the floor for the whole hub**: edit the one value in `PROVIDER_FLOOR`, then run
`node tools/scorecard/scorecard.mjs --category=core`. Every module still declaring less turns red
and the failure detail names the file and the current constraint — that list is the bump work item.
The check verifies rather than rewrites, because HCL `required_providers` `version` must be a string
literal (no interpolation), so there is nothing a module could reference; and because the constraint
is a deliberate, reviewable statement about what a module needs.

Why the floor is load-bearing even though nothing pins in CI: the hub commits no
`.terraform.lock.hcl` (root configurations own locking), and the smoke-test workflow injects a
provider built from `main` through Terraform `dev_overrides`, which bypasses both
`required_providers` and any lockfile. The floor is therefore what protects **local** runs
(`task e2e:run`, `terraform validate`) from silently resolving a stale provider.

---

## Scorecard

The repository includes a scorecard tool that checks module maturity across four categories:
Expand Down
2 changes: 1 addition & 1 deletion modules/aks/github-connector/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/aks/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
azuread = {
source = "hashicorp/azuread"
Expand Down
2 changes: 1 addition & 1 deletion modules/aws/agentic-coding-sandbox/buildingblock/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ End users provide:

| Name | Version |
|------|---------|
| <a name="requirement_meshstack"></a> [meshstack](#requirement\_meshstack) | >= 0.7.1 |
| <a name="requirement_meshstack"></a> [meshstack](#requirement\_meshstack) | >= 0.23.0 |

## Modules

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.7.1"
version = ">= 0.23.0"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ terraform {
}
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/aws/route53-dns-record/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ terraform {
}
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/aws/s3_bucket/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ terraform {
}
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
3 changes: 2 additions & 1 deletion modules/azure/budget-alert/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
2 changes: 1 addition & 1 deletion modules/azure/budget-alert/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
2 changes: 1 addition & 1 deletion modules/azure/entra-id-groups/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
2 changes: 1 addition & 1 deletion modules/azure/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
3 changes: 2 additions & 1 deletion modules/azure/resource-group/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
2 changes: 1 addition & 1 deletion modules/azure/resource-group/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
2 changes: 1 addition & 1 deletion modules/azure/service-principal/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
3 changes: 2 additions & 1 deletion modules/azure/storage-account/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
2 changes: 1 addition & 1 deletion modules/azure/storage-account/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
azurerm = {
source = "hashicorp/azurerm"
Expand Down
2 changes: 1 addition & 1 deletion modules/gcp/storage-bucket/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
google = {
source = "hashicorp/google"
Expand Down
2 changes: 1 addition & 1 deletion modules/github/repository/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/kubernetes/manifest/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
3 changes: 2 additions & 1 deletion modules/meshstack/github-workflow/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/meshstack/github-workflow/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
3 changes: 2 additions & 1 deletion modules/meshstack/link/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/meshstack/link/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
3 changes: 2 additions & 1 deletion modules/meshstack/manual/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/meshstack/manual/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/meshstack/noop/backplane/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ terraform {
}
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
time = {
source = "hashicorp/time"
Expand Down
3 changes: 2 additions & 1 deletion modules/meshstack/noop/e2e/env-audit/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ terraform {
required_version = ">= 1.0"
required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
}
}
3 changes: 2 additions & 1 deletion modules/meshstack/noop/e2e/runner/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
google = {
source = "hashicorp/google"
Expand Down
3 changes: 2 additions & 1 deletion modules/meshstack/noop/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/meshstack/noop/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
2 changes: 1 addition & 1 deletion modules/meshstack/payment-method/buildingblock/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ module "payment_method" {
| Name | Version |
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.0 |
| <a name="requirement_meshstack"></a> [meshstack](#requirement\_meshstack) | >= 0.14.0 |
| <a name="requirement_meshstack"></a> [meshstack](#requirement\_meshstack) | >= 0.23.0 |

## Modules

Expand Down
2 changes: 1 addition & 1 deletion modules/meshstack/payment-method/buildingblock/versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.14.0"
version = ">= 0.23.0"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ The module automatically:

| Name | Version |
|------|---------|
| <a name="requirement_meshstack"></a> [meshstack](#requirement\_meshstack) | >= 0.21.0 |
| <a name="requirement_meshstack"></a> [meshstack](#requirement\_meshstack) | >= 0.23.0 |
| <a name="requirement_oci"></a> [oci](#requirement\_oci) | 7.32.0 |

## Modules
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
oci = {
source = "oracle/oci"
Expand Down
2 changes: 1 addition & 1 deletion modules/ske/forgejo-connector/meshstack_integration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ terraform {
required_providers {
meshstack = {
source = "meshcloud/meshstack"
version = ">= 0.21.0"
version = ">= 0.23.0"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
Expand Down
3 changes: 2 additions & 1 deletion modules/ske/ske-starterkit/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
Expand Down
3 changes: 2 additions & 1 deletion modules/stackit/git-repository/e2e/terraform.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ terraform {

required_providers {
meshstack = {
source = "meshcloud/meshstack"
source = "meshcloud/meshstack"
version = ">= 0.23.0"
}
}
}
Loading
Loading