Я использую terraform 0.12.6 и пытаюсь создать объект, подобный:
variable "dc1" {
type = object({
A = object({ a = number })
B = object({ a = number })
C = object({ a = number })
...(12 times)...
Теперь, это уменьшенная версия кода, оригинальная теперь содержит более 200 строк.
Я не могу использовать list(object({...}))
, потому что я хочу убедиться, что пользователь знает, что он вводит значение a
для A
или B
и т. Д.
Есть ли способ избежать написания object({ a = number })
снова и снова?
Редактировать:
Как и просили в комментариях ниже, добавьте более общую информацию о том, что Я пытаюсь сделать:
Я хочу иметь 12 почти идентичных kubernetes_deployment
ресурсов, только некоторые настройки меняются в этих 12 случаях, например, image
, name
et c. Теперь эти 12 развертываний являются частью модуля, поэтому пользователь просто source
этот модуль и установит значение как
dc1 = {
A = { a = number }
B = { a = number }
C = { a = number }
}
Я не против изменить свой подход до тех пор, пока пользователь знает, что он знает, что он устанавливает значение a
для A
.
Я мог бы просто использовать:
A = object({ a = number })
B = object({ a = number })
C = object({ a = number })
, чтобы не усложнять его, но это также много DRY кода, потому что object({ a = number })
повторяется для всех экземпляров.