2017-11-11 11 views
0

私はKubernetes Providerを使ってTerraformのサービス/ポッドを記述しています。TerraformでYAMLを使用してKubernetes Services/Podsを定義できますか?

Kubernetesのドキュメントには、YAMLのすべてがHCLに変換する必要があることが記載されているため、Hashicorp設定言語を使用して、kubernetes_podまたはkubernetes_serviceのリソースを定義すると混乱することがあります。

ポッドをYAMLとして定義し、kubernetes_podkubernetes_serviceリソースをテンプレートとして使用できますか?

答えて

1

Terraformは通常HCLを使用しますが、これはJSONのスーパーセットです(YAML自体と同じように)can also read JSONです。

可能な選択肢は、既に持っているYAMLの例をとり、それらをJSONに変換してからそれらにTerraformを使用することです。

残念ながら、Terraformが何を期待しているかによってキーワードが異なる可能性があるため、入力YAMLの基本的な翻訳をTerraformリソースJSONに行うために何かを書く必要があるため、これはうまくいかないでしょう。この時点では、変換にHCL出力を追加するだけの価値があります。出力したTerraformの設定を読みやすくするためには、Terraformの設定を1回だけで済ませようとすると読みやすくなります。

kubectlまたは他のツールを使用して実行できる再利用可能なKubernetes設定があることが利点ですが、Terraformのライフサイクル管理のパワーを提供し、Kubernetes以外の部品との変更や統合を計画できる(Kubernetesクラスタを実行するためのインスタンスの設定など)。

私はあまり使っていませんが、Kopsは典型的なKubernetes YAMLファイルでポッド/サービス設定を保つことができますが、Terraformを使用して設定を管理し、Terraform設定を出力することもできますそれをKops自体の外で実行してください。

+0

応答を気に入ってください。私は 'config = template(...)'のようなことをする方法がないと仮定します...? –

+0

残念ながら。 AWS API Gatewayのリソースの1つとして、最近swagger仕様ファイルを使用するためのサポートが追加されています。それが有用かもしれないと思うなら、それのための機能要求問題を提起する価値があるかもしれません – ydaetskcoR

関連する問題