web-dev-qa-db-ja.com

terraform-kubernetes-providerファイルから秘密を作成する方法

私はTerraform Kubernetes-Provider を使用しています。このkubectlコマンドをTFに変換します。

kubectl create secret generic my-secret --from-file mysecret.json

ただし、secretdataフィールド TFマップだけを期待

私は好きなことを試してみました

data "template_file" "my-secret" {
  template = "${file("${path.module}/my-secret.json")}"
}

resource "kubernetes_secret" "sgw-config" {
   metadata {
     name = "my-secret"
   }
   type = "Opaque"
   data = "{data.template_file.my-secret.template}"
}

しかし、これはではありませんマップです。だから、私はこのようなことをすることができます:

   data = {
      "my-secret.json" = "{data.template_file.my-secret.template}"
   }

しかし、これはmy-secret.jsonという最上位フィールドで秘密を書きます、そしてそれをボリュームマウントするとき、それは他のリソースとは機能しません。

ここでのトリックは何ですか?

8
Davis Ford

ただ使用するだけです https://www.terraform.io/docs/providers/kubernetes/r/config_map.html#binary_data

resource "kubernetes_config_map" "example" {

  metadata {
    name = "my-config"
  }

  binary_data = {
    "my_payload.bin" = "${filebase64("${path.module}/my_payload.bin")}"
  }
}
 _
0
Vlad