I am trying to simulate the kubectl commands in TF.
Kubectl command
kubectl create secret generic cloud-access \
--from-file=basic.txt=$TUTORIAL_HOME/creds-sasl-user.txt
Contents of creds-sasl-user.txt
username=<api-key>
password=<api-secret>
In my Terraform run, I have the API key and API secret created but I am not sure how I can simulate the exact behaviour. This is what I have so far but doesn't seems correct to me
resource "kubernetes_secret" "k8s_secret" {
metadata {
namespace = var.namespace
name = var.secret_name
}
data = {
basic.txt = "username=${var.api_key}password=${var.api_secret}"
}
}
As per the official TF documentation, You can use <<EOT
to pass multi line string like this:
resource "kubernetes_secret" "k8s_secret" {
metadata {
namespace = "default"
name = "test"
}
data = {
"basic.txt" = <<EOT
username=<api-key>
password=<api-secret>
EOT
}
}
Don't forget to place Secret's key (basic.text
) within the quotes before applying.