"${var.name}-4hr-backup" = {
schedule = "@every 4h"
template = {
includeClusterResources = true
includedNamespaces = "${var.included_namespaces}"
includedResources = "${var.included_resource}"
excludedNamespaces = "${var.excluded_namespaces}"
excludedResources = "${var.excluded_resource}"
storageLocation = "aws"
snapshotVolumes = true
ttl = "24h0m0s"
}
}
我有上面的映射,我想根据k8s集群中的名称空间数量进行自定义和重新创建。
我计划使用for循环在名称空间列表上迭代,以生成适当数量的映射。
例如,类似于列表的内容:namespace_4hr_backup=[a,b,c]然后使用循环:在namespace_4hr_backup中创建名称:
a-4hr-backup = {
schedule = "@every 4h"
template = {
includeClusterResources = true
includedNamespaces = "a"
includedResources = "${var.included_resource}"
excludedNamespaces = "${var.excluded_namespaces}"
excludedResources = "${var.excluded_resource}"
storageLocation = "aws"
snapshotVolumes = true
ttl = "24h0m0s"
}
}
b-4hr-backup = {
schedule = "@every 4h"
template = {
includeClusterResources = true
includedNamespaces = "b"
includedResources = "${var.included_resource}"
excludedNamespaces = "${var.excluded_namespaces}"
excludedResources = "${var.excluded_resource}"
storageLocation = "aws"
snapshotVolumes = true
ttl = "24h0m0s"
}
}
c-4hr-backup = {
schedule = "@every 4h"
template = {
includeClusterResources = true
includedNamespaces = "c"
includedResources = "${var.included_resource}"
excludedNamespaces = "${var.excluded_namespaces}"
excludedResources = "${var.excluded_resource}"
storageLocation = "aws"
snapshotVolumes = true
ttl = "24h0m0s"
}
}
最好的方法是什么?我看了一下文档,但我不太清楚,因为我只看到了基本的例子。
您不能创建单独的映射,但可以创建映射的映射。例如:
locals {
namespace_4hr_backup = ["a","b","c"]
namespace_maps = {
for name in local.namespace_4hr_backup:
"${name}-4hr-backup" => {
schedule = "@every 4h"
template = {
includeClusterResources = true
includedNamespaces = "${name}"
includedResources = "${var.included_resource}"
excludedNamespaces = "${var.excluded_namespaces}"
excludedResources = "${var.excluded_resource}"
storageLocation = "aws"
snapshotVolumes = true
ttl = "24h0m0s"
}
}
}
}