Как мне избежать истины / ложи в терраформе?

Мне нужно передать слово true или false в файл шаблона данных в terraform. Однако, если я попытаюсь предоставить значение, оно выйдет 0 или 1 из-за синтаксиса интерполяции. Я пробовал делать \\true\\, как рекомендовано в https://www.terraform.io/docs/configuration/interpolation.html, однако это приводит к \true\, что, очевидно, неверно. То же самое с \\false\\ = \false\

Чтобы усложнить ситуацию, у меня также есть сценарий, в котором мне нужно передать ему значение переменной, которое может быть либо истинным, либо ложным. Любые идеи?

# control whether to enable REST API and set other port defaults
data "template_file" "master_spark_defaults" {
  template = "${file("${path.module}/templates/spark/spark-    defaults.conf")}"

  vars = {
    spark_server_port   = "${var.application_port}"
    spark_driver_port   = "${var.spark_driver_port}"
    rest_port           = "${var.spark_master_rest_port}"
    history_server_port = "${var.history_server_port}"
    enable_rest         = "${var.spark_master_enable_rest}"
  }
}

var.spark_master_enable_rest может быть либо true, либо false. Я попытался установить переменную как "\\${var.spark_master_enable_rest}\\", но снова это привело к \true\ или \false\

Изменить 1:

Вот соответствующая часть рассматриваемого файла conf:

spark.ui.port ${spark_server_port}
# set to default worker random number.
spark.driver.port ${spark_driver_port}

spark.history.fs.logDirectory /var/log/spark
spark.history.ui.port ${history_server_port}

spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400

spark.master.rest.enabled ${enable_rest}
spark.master.rest.port ${rest_port}

person Ethan Stein    schedule 04.01.2019    source источник
comment
Вам нужен здесь логический тип или достаточно String?   -  person Matt Schuchard    schedule 05.01.2019
comment
Это файл spark-default.conf. Я пытаюсь понять, могу ли я получить правду, выполнив \ true \, но я не уверен, что это сработает.   -  person Ethan Stein    schedule 05.01.2019
comment
Я добавил правку, чтобы показать часть рассматриваемого файла.   -  person Ethan Stein    schedule 05.01.2019
comment
Да, это не понравилось   -  person Ethan Stein    schedule 05.01.2019


Ответы (2)


Я думаю, вы, должно быть, слишком много думаете, если я установил значение var как

spark_master_enable_rest="true"

Тогда я получаю:

spark.worker.cleanup.enabled true
spark.worker.cleanup.appDataTtl 86400

spark.master.rest.enabled true

в моем результате, когда я подаю заявку.

person James Woolfenden    schedule 05.01.2019
comment
Клянусь, у меня это не сработало. Как вы определили его в своем инстансе терраформирования? - person Ethan Stein; 09.01.2019

В итоге я создал сценарий облачной конфигурации, чтобы найти / заменить 0/1 в файле:

  part {
    content_type = "text/x-shellscript"

    content = <<SCRIPT
    #!/bin/sh
    sed -i.bak -e '/spark.master.rest.enabled/s/0/false/' -e '/spark.master.rest.enabled/s/1/true/' /opt/spark/conf/spark-defaults.conf
SCRIPT
  }
person Ethan Stein    schedule 09.01.2019