<p>tfenvはconf.tfからrequired_versionを読み取りません</p>

作成日 2019年07月22日  ·  6コメント  ·  ソース: tfutils/tfenv

問題

conf.tfファイルで次のように宣言しています。

terraform {
  required_version = "0.12.5"

  backend "s3" {
    bucket   = "somebucket"
    region   = "eu-central-1"
    role_arn = "somerole"
  }
}

terraform --versionを実行すると、tfenvはリストされているバージョンを読み取りませんが、 /usr/local/Cellar/tfenv/1.0.1/versionによって設定されたバージョンを読み取ります。

意図された動作

tfenvがconf.tfファイルをrequired_version解析して、正しいバージョンを使用することを期待しています。
これがサポートされているかどうかについてのドキュメントは少し不明確です(https://github.com/tfutils/tfenv#min-required)

documentation enhancement

最も参考になるコメント

ドキュメントは少し誤解を招く可能性があると思います: https

// this will detect 0.12.3
terraform {
  required_version  = "<0.12.3, >= 0.10.0"
}

全てのコメント6件

これは意図された使用例ではありません。 tfenvはテラフォームバージョン宣言を評価しません。 使用中のテラフォームコアバージョンは、 .terraform-versionファイルによって維持されます。 互換性のないバージョンによって評価された場合にコードが実行されないように、required_version宣言に制限を設けるかどうかはあなた次第です。

ドキュメントは少し誤解を招く可能性があると思います: https

// this will detect 0.12.3
terraform {
  required_version  = "<0.12.3, >= 0.10.0"
}

@Zordrakは意図されていませんが、PRを

#118に結び付けるのはかなり簡単なはずだと思います(PRが最終的に終了したら、最初にeslint-plugin-jest作業を終了する必要があります:joy :)。

少なくとも、これは.terraform-versionファイルの生成(および更新の維持)に結び付けるために使用できます。

これらの新機能の保守とサポートを喜んで処理します。

ここと#118には、PRへの貢献の提案があります。 あなたはまだそうするつもりですか? 以前、ユースケースではないと言ったときは間違っていました。他の人が貢献した最小要件の作業を完全に忘れていたからです。

安全に改善できると思われる場合は、(関連するテストケースとともに)提供することを歓迎します。

そうでなければ、これと#118はおそらく今のところ閉じられるべきです。

@Zordrak私はあなたが私を参照していると思います:)

#118の初期実装として実際に#122を開いたのですが、1年以上誰からも注目されていなかったので閉じました。

これを取り戻して、PRを確認してよければ、現在のロジックを改善できるかどうかを確認してもかまいませんが、時間がかかる場合があります。

ドキュメントは、次のようなベアバージョンを提案しています。

required_version = "0.12.5"

は、必要な最小バージョンが0.12.5を意味するものとして解析されます。 (編集:テストしました- tfenv version-name .terraform-versionとenv varが存在しない場合、 tfenv version-nameエラーが発生します。)

おそらく> / <の解析の一部として、それらがないこと(または= )が0.12.5ように扱われるとしたら、すばらしいIMOになります。 .terraform-versionファイルで指定されました。 これはterraform自体の動作です- "0.12.5"0.12.5 _only_を意味するため、 >0.12.5利用可能なバージョンがある場合は、少なくともそれを採用しても機能しません。

このページは役に立ちましたか?
0 / 5 - 0 評価