减少terraform中几乎相同的多变量的干代码

减少terraform中几乎相同的多变量的干代码,terraform,Terraform,我正在使用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

我正在使用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
B
等输入
a
的值

有没有办法避免反复写入
对象({a=number})


编辑:

如以下评论中所述,请添加有关我正在尝试做的事情的更一般性信息:

我希望有12个几乎相同的
kubernetes\u部署
资源,只有这12个实例中的一些设置发生了更改,如
image
name
等。 现在,这12个部署是一个模块的一部分,因此用户只需
source
此模块并设置like的值

dc1 = {
    A = { a = number }
    B = { a = number }
    C = { a = number }
}
只要用户知道他们正在为
a
设置
a
的值,我不介意将方法更改为

我可以简单地使用:

    A = object({ a = number })
    B = object({ a = number })
    C = object({ a = number })

为了避免使它看起来复杂,但这也是一大堆枯燥的代码,因为
object({a=number})
对所有实例都是重复的。

这听起来很像是一个xy问题。你能用更广泛的方式陈述你的问题吗?现在听起来您有一个非常复杂的对象供模块的调用者配置。你真的需要吗?如果你有很多东西(比如一个完整的数据中心),那么如果你的地形配置或状态被破坏了,这也会导致很大的爆炸半径。@ydaetskcoR感谢你的建议,添加了更多的一般信息,如果需要的话,我很乐意添加更多的信息。