From 52cc84650a4bc961f9fbae3e79780efef97bbc0a Mon Sep 17 00:00:00 2001 From: Octoturge Date: Wed, 26 Aug 2026 15:47:25 +0200 Subject: [PATCH] Re-declare hashicorp/http provider to unblock existing workspace state Removing the jetbrains module (previous commit) dropped the only thing in these templates that used the hashicorp/http provider (the module fetched IDE metadata via it internally). terraform init only installs providers the current config declares, but any workspace whose state still has resources from a template version that included the jetbrains module needs that provider available to reconcile/destroy those entries - without it, plan/apply fails with "Missing required provider ... hashicorp/http". Re-declaring it in required_providers (all 6 templates) unblocks those existing workspaces' next apply. Safe to remove again once every workspace has updated past the jetbrains-module version. --- templates/3d-printing/main.tf | 10 ++++++++++ templates/cobol/main.tf | 10 ++++++++++ templates/default/main.tf | 10 ++++++++++ templates/python/main.tf | 10 ++++++++++ templates/ttrpg/main.tf | 10 ++++++++++ templates/web/main.tf | 10 ++++++++++ 6 files changed, 60 insertions(+) diff --git a/templates/3d-printing/main.tf b/templates/3d-printing/main.tf index e230507..196bd00 100644 --- a/templates/3d-printing/main.tf +++ b/templates/3d-printing/main.tf @@ -6,6 +6,16 @@ terraform { docker = { source = "kreuzwerker/docker" } + # Not used directly in this config. Existing workspace state from before + # the jetbrains module was removed still has resources tagged under this + # provider (the module used it internally to fetch IDE metadata) - + # terraform init only installs providers the current config declares, so + # without this, plan/apply fails with "Missing required provider" while + # trying to reconcile/destroy those leftover state entries. Safe to drop + # once every workspace has updated past the jetbrains-module version. + http = { + source = "hashicorp/http" + } } } diff --git a/templates/cobol/main.tf b/templates/cobol/main.tf index 02fe8ef..ea53cff 100644 --- a/templates/cobol/main.tf +++ b/templates/cobol/main.tf @@ -6,6 +6,16 @@ terraform { docker = { source = "kreuzwerker/docker" } + # Not used directly in this config. Existing workspace state from before + # the jetbrains module was removed still has resources tagged under this + # provider (the module used it internally to fetch IDE metadata) - + # terraform init only installs providers the current config declares, so + # without this, plan/apply fails with "Missing required provider" while + # trying to reconcile/destroy those leftover state entries. Safe to drop + # once every workspace has updated past the jetbrains-module version. + http = { + source = "hashicorp/http" + } } } diff --git a/templates/default/main.tf b/templates/default/main.tf index 53fd340..ff57b18 100644 --- a/templates/default/main.tf +++ b/templates/default/main.tf @@ -6,6 +6,16 @@ terraform { docker = { source = "kreuzwerker/docker" } + # Not used directly in this config. Existing workspace state from before + # the jetbrains module was removed still has resources tagged under this + # provider (the module used it internally to fetch IDE metadata) - + # terraform init only installs providers the current config declares, so + # without this, plan/apply fails with "Missing required provider" while + # trying to reconcile/destroy those leftover state entries. Safe to drop + # once every workspace has updated past the jetbrains-module version. + http = { + source = "hashicorp/http" + } } } diff --git a/templates/python/main.tf b/templates/python/main.tf index 46873ac..f6f676c 100644 --- a/templates/python/main.tf +++ b/templates/python/main.tf @@ -6,6 +6,16 @@ terraform { docker = { source = "kreuzwerker/docker" } + # Not used directly in this config. Existing workspace state from before + # the jetbrains module was removed still has resources tagged under this + # provider (the module used it internally to fetch IDE metadata) - + # terraform init only installs providers the current config declares, so + # without this, plan/apply fails with "Missing required provider" while + # trying to reconcile/destroy those leftover state entries. Safe to drop + # once every workspace has updated past the jetbrains-module version. + http = { + source = "hashicorp/http" + } } } diff --git a/templates/ttrpg/main.tf b/templates/ttrpg/main.tf index 81e66f6..c6604a4 100644 --- a/templates/ttrpg/main.tf +++ b/templates/ttrpg/main.tf @@ -6,6 +6,16 @@ terraform { docker = { source = "kreuzwerker/docker" } + # Not used directly in this config. Existing workspace state from before + # the jetbrains module was removed still has resources tagged under this + # provider (the module used it internally to fetch IDE metadata) - + # terraform init only installs providers the current config declares, so + # without this, plan/apply fails with "Missing required provider" while + # trying to reconcile/destroy those leftover state entries. Safe to drop + # once every workspace has updated past the jetbrains-module version. + http = { + source = "hashicorp/http" + } } } diff --git a/templates/web/main.tf b/templates/web/main.tf index 2ad995b..5f1d0ba 100644 --- a/templates/web/main.tf +++ b/templates/web/main.tf @@ -6,6 +6,16 @@ terraform { docker = { source = "kreuzwerker/docker" } + # Not used directly in this config. Existing workspace state from before + # the jetbrains module was removed still has resources tagged under this + # provider (the module used it internally to fetch IDE metadata) - + # terraform init only installs providers the current config declares, so + # without this, plan/apply fails with "Missing required provider" while + # trying to reconcile/destroy those leftover state entries. Safe to drop + # once every workspace has updated past the jetbrains-module version. + http = { + source = "hashicorp/http" + } } }