Запечатанные секреты с Kubernetes с использованием terraform

  1. Итак, в моем текущем коде терраформирования я пытаюсь прочитать секреты из хранилища Hashicorp и создать из него запечатанный секрет.
  2. Итак, я пытаюсь прочитать секреты hardicorp из вывода terraform, а затем сказать terraform обновить существующий файл yml значениями из хранилища hashicorp и преобразовать их в запечатанный секрет, используя сценарий оболочки в terraform.

main.tf

        required_providers {
    mongodbatlas = {
      source = "mongodb/mongodbatlas"
    }
  }
  required_version = ">= 0.13"
}
#vault login
provider "vault" {
  address = var.vault_address
  auth_login {
    path = "auth/login"
    parameters = {
      role_id   = var.login_role_id
      secret_id = var.login_secret_id
    }
  }
}

#vault to show
data "vault_generic_secret" "key" {
  path = "path_to_vault_secret"
}




resource "null_resource" "secret3" {

    provisioner "local-exec" {
        command = "/bin/sh Downloads/terraform/secret.sh"

    }
} 

вывод.tf

      #read the output from the harshi corp vault 
output "user_name" {
    value = "${data.vault_generic_secret.key.data["dbuser"]}"
    sensitive = true

}

output "user_password" {
    value = "${data.vault_generic_secret.key.data["dbuser_password"]}"
    sensitive = true
}


секрет.ш

      #!/bin/bash
user_name=$(terraform output -raw user_name)
user_password=$(terraform output -raw user_password)

password_old_value="abc"
user_old_value="abc"


sed  -e "s/$password_old_value/$user_password/g" /Downloads/db-creds.yml  > /Downloads/dummy-creds.yml

sed  -e "s/$user_old_value/$user_name/g" /Downloads/dummy-creds.yml > /Downloads/test-creds.yml

mv /test-creds.yml /terraform/db-creds.yml


cat /terraform/db-creds.yml
kubeseal -n sealed-secret-application < /terraform/db-creds.yml > /terraform/db-creds-encrypted.yaml -o yaml

у меня тут два вопроса

  • Есть ли другой лучший способ выполнить ту же задачу
  • при выполнении этого я сталкиваюсь с ошибкой ниже
      Error: local-exec provisioner error
│ 
│   with null_resource.secret3,
│   on main.tf line 37, in resource "null_resource" "secret3":
│   37:     provisioner "local-exec" {
│ 
│ Error running command '/bin/sh /Downloads/terraform/secret.sh': exit status 1. Output:

0 ответов

Другие вопросы по тегам