Терраформ импортный секрет Кубернетес - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь импортировать существующий секрет kubernetes в мое состояние Terraform.

Секретный ресурс должен находиться в модуле вместе с postgres ресурсами. Идея состоит в том, что я создаю postgres учетные данные пользователя и помещаю их прямо в секрет K8S.

Ресурс выглядит так:

resource "kubernetes_secret" "database-credentials" {
  metadata {
    name = "${var.name}-database-credentials"
  } 
  data = {
    username = "${var.name}_user"
    password = random_password.password.result
  }
  type = "Opaque"
}

Затем я пытаюсь импортировать его с следующая команда: terraform import module.<module_name>.kubernetes_secret.database-credentials default/<existing-secret-name>

Теперь проблема в том, что эта команда завершается ошибкой со следующим сообщением об ошибке:

Error: Error initializing PostgreSQL client: error detecting capabilities: error PostgreSQL version: pq: no PostgreSQL user name specified in startup packet

Я понятия не имею, почему клиент PostgreSQL должен делать что-нибудь здесь или почему это не удается. Для конфигурации секретного ресурса kubernetes определены ресурсы postgres, но я просто хочу импортировать секрет k8s. Я определил все необходимые переменные среды, необходимые. terraform apply отлично работает, когда я запускаю его без секрета.

Может кто-нибудь указать мне правильное направление, пожалуйста?

1 Ответ

0 голосов
/ 14 февраля 2020

Только что сам понял.

https://github.com/terraform-providers/terraform-provider-postgresql/issues/2#issuecomment -567887609

TLDR: добавьте expected_version = "<YOUR_POSTGRES_VERSION>" в блок postgres поставщика.

...