terraform + helm =❤️


あなたがTerraFormでIACを管理しようとしたならば、「よく、クラウド資源はすばらしいです、しかし、どのように、私は私のKubernetesクラスタに対処するつもりですか?」
このポストでは、各ツールのベストを使用して、ヘルムをterraformと統合する方法のシンプルで機能的な例を共有したい.
ヘルムv 3がリリースされた後、この統合の設定はずっと簡単になった.今、あなたは単にヘルムプロバイダーにあなたのKubernetes資格情報を渡すことができますし、あなたのグラフをterraformを使用して展開を開始!
provider "helm" {
  kubernetes {
    config_path = "/path/to/kube_cluster.yaml"
  }
}
を使用してグラフを展開することができますhelm_release リソース🎉.
resource "helm_release" "example" {
  name       = "my-redis-release"
  repository = "https://kubernetes-charts.storage.googleapis.com" 
  chart      = "redis"
  version    = "6.0.1"

  values = [
    "${file("values.yaml")}"
  ]

  set {
    name  = "cluster.enabled"
    value = "true"
  }

  set {
    name  = "metrics.enabled"
    value = "true"
  }

  set_string {
    name  = "service.annotations.prometheus\\.io/port"
    value = "9127"
  }
}
OK、それはすばらしいルーカスです、しかし、あなたは基本的にヘルムプロバイダーを示しましたpage ... 私はここで私の時間を無駄にしていますか?

このポストでは、私はすべてのこの過度に対処したいset {} Helmhorn Relaseリソースのパラメータこれらの変数を管理する簡単な方法があります.

実際に、チュートリアルはすでに私たちを示している方法!私たちはvalues すべての変数をYAML形式で渡します.
values = [
  "${file("values.yaml")}"
]
ファイル関数を使う代わりに、EOF形式で渡すこともできます.
< div >
<花高>p >
< P >


おお、大丈夫、ごめんなさい.私はポイントを取得し、もう少し待つ!p >

templateファイル


Traraformでは、動的テンプレートを作成することができますtemplatefile function . この関数をvalues HelmRunリリースリソースのパラメータであり、多くの柔軟性を得ています!p >
TemplateFile関数は、terraformとは異なる構文を持っていますが、簡単にそれに適応できます.p >
以下に例を示します.
バックエンド.TMPL < br/>
<> P >
< div class ="ハイライト"
%{ for addr in ip_addrs ~}
backend ${addr}:${port}
%{ endfor ~}
このテンプレートをレンダリングするには< br/>
<> P >
< div class ="ハイライト"
templatefile("${path.module}/backends.tmpl", { port = 8080, ip_addrs = ["10.0.0.1", "10.0.0.2"] })
出力を与える
<> P >
< div class ="ハイライト"
backend 10.0.0.1:8080
backend 10.0.0.2:8080
そして、そうであれば、if文を使うこともできます.p >
< ulink >すべてのこの柔軟性を値パラメタに正しく使用することができますvalues.yaml :


< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/souzaxx/c59ad91872ea0e9fef00c72b900e32e3.js?file=aws- vpc cni山口大TPL//>
< div >
< tt > templatefileはまた、私たちの生活をより簡単にするために
< div class ="LagagCount - gig - Link - tag "
"スクリプトのID "https://gist.github.com/souzaxx/c59ad91872ea0e9fef00c72b900e32e3.js?file=helm_relase_example.tf//>
< div >
あなたが完全な例にしたがっているならば
<> P >
< div class ="ltag github readmeタグ"
< div class ="readme概要"

ソザックス / ステロイドのEKS



< div >
< div >
< P >


次のポストでは、このプロジェクトについてより詳細に説明します.また、Eksアドレスを実行しているEKSクラスタをどのように助けるかを説明しますp >
あなたの読書ありがとうございます
ステイ・セーフ元気です.p >
<花高>p >