Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Set separate Terraform and OpenTofu minimums to support air-gapped modules

Ouverte
#29,238 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
70/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
go, terraform
Domaine
infrastructure

Piste de recherche

Commencez dans provisioner/terraform/install.go, au niveau de la vérification de version minimale existante, puis suivez la manière dont le moteur de provisionnement est identifié. Mettez à jour les tests pertinents de vérification des versions pour couvrir les versions minimales de Terraform et OpenTofu, y compris les versions maintenues égales ou inférieures à chaque seuil. Le travail est terminé lorsque chaque moteur est validé par rapport à sa propre version minimale sans revenir à Terraform.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Problem

  • We want to use dynamic module sources so users can point modules at an internal registry through a variable.
  • Coder still accepts Terraform 1.1.0, which is no longer maintained.
  • OpenTofu shares this check but has its own version numbers and support dates. It needs a separate minimum.

Background

Some modules hardcode registry.coder.com when they call other modules. Mirroring the top-level module leaves those public registry requests in place.

Dynamic sources require Terraform 1.15 or OpenTofu 1.8. Coder already defaults to Terraform 1.15.5. The minimum still sits at 1.1.0 in provisioner/terraform/install.go:27:

minTerraformVersion = version.Must(version.NewVersion("1.1.0"))

Proposal

Keep the existing version check, but choose the minimum for each engine: Terraform 1.15 or OpenTofu 1.12. Both release series are maintained.

Once we identify the engine, the comparison is:

minimum := version.Must(version.NewVersion("1.15.0"))
if engine == "opentofu" {
    minimum = version.Must(version.NewVersion("1.12.0"))
}
supported := installedVersion.GreaterThanOrEqual(minimum)

Add engine detection and tests for both minimums. Keep OpenTofu as OpenTofu rather than falling back to Terraform.

The Terraform download path already exists and uses Coder's pinned version, not the newest release. Announce the new minimums before updating registry modules. Air-gapped installs and custom provisioner images with older binaries need a local binary update.

Alternatives

  • Raise the shared minimum: reject maintained OpenTofu releases and download Terraform instead. Bad for OpenTofu users.
  • Keep the minimum and adopt dynamic sources: newer modules fail on older binaries that Coder accepts. Bad user experience.
  • Keep hardcoded sources: mirrored modules still contact the public registry. Bad for air-gapped use.

Related: #12009.

Generated by Coder Agents on behalf of @bpmct.

Langage dominant
Go
Étoiles
16.9k
Forks
1.6k
Merge moyen
2 j 13 h
PR mergées (30 j)
515

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de coder/coder

Toutes les issues de coder/coder

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.