Terraform 如何在地形代码中引用次要范围?
我正在尝试引用其他资源中的辅助范围:Terraform 如何在地形代码中引用次要范围?,terraform,terraform-provider-gcp,Terraform,Terraform Provider Gcp,我正在尝试引用其他资源中的辅助范围: resource "google_compute_subnetwork" "mysubnetwork" { name = "mysubnetwork" .... secondary_ip_range { range_name = "mysecondary" ip_cidr_range = "10.0.0.0/24&qu
resource "google_compute_subnetwork" "mysubnetwork" {
name = "mysubnetwork"
....
secondary_ip_range {
range_name = "mysecondary"
ip_cidr_range = "10.0.0.0/24"
}
....
resource "google_container_cluster" "my-cluster" {
....
ip_allocation_policy{
cluster_secondary_range_name = <reference my existing secondary ranges>
services_secondary_range_name = <reference my existing secondary ranges>
}
resource“谷歌计算子网”“我的子网”{
name=“mysubnetwork”
....
二级ip范围{
range_name=“mysecondary”
ip_cidr_range=“10.0.0.0/24”
}
....
资源“google\u容器\u群集”“我的群集”{
....
知识产权分配政策{
群集\辅助\范围\名称=
服务\辅助\范围\名称=
}
尝试了以下操作:google\u compute\u子网.mysubnetwork.secondary\u ip\u range.range\u name[“mysecondary”]
但是这个值没有任何属性。
我试过:google\u compute\u subnetwork.mysubnetwork.secondary\u ip\u range.range\u name.mysecondary
但是得到了相同的错误。这是一个复杂的问题,我还没有测试过,但似乎它会起作用-我会遇到问题吗?想知道是否有更好的方法。为了清楚起见,应该清楚地知道引用的范围(所以不使用索引号)
您是否只拥有一个单一的辅助IP范围?如果是这样,它可以像
google\u compute\u子网.mysubnetwork.secondary\u IP\u range.0.range\u name
用于range\u name
和google\u compute\u子网.mysubnetwork.secondary\u IP\u range.0.IP\u cidr\u range
用于cidr\u范围。如果您有可变金额那么问题就有点棘手了。我有两个次要范围,我不想按索引引用它们。我想按名称引用它们,但它们是静态的还是动态的?如果你总是想用一个资源引用第一个范围,用另一个资源引用第二个范围,那么这只是使用google\u comp的一个例子ute_subnetwork.mysubnetwork.secondary_ip_range.0.range_name
和google_compute_subnetwork.mysubnetwork.secondary_ip_range.1.range_name
。我不想这样做。为了可读性,我想看到配置中引用的范围名称
variable "vpc_secondary_ip_ranges" {
type = map(object({
secondary_range = object({
range_name = string
ip_cidr_range = string
})
}))
default = {
gke-pods = {
secondary_range = {
range_name = "gke-pods"
ip_cidr_range = "10.1.0.0/14"
}
}
gke-services = {
secondary_range = {
range_name = "gke-services"
ip_cidr_range = "10.2.2.0/24"
}
}
}
}
// flatten for secondary_ip_range parameter
resource "google_compute_subnetwork" "bombora-default-subnetwork-us-west1" {
secondary_ip_range = [for r in var.vpc_secondary_ip_ranges : r.secondary_range]
...
...
resource "google_container_cluster" "mycluster" {
// index into map for names of secondaries for ip_allocation_policy
ip_allocation_policy {
cluster_secondary_range_name = var.vpc_secondary_ip_ranges.gke-pods.secondary_range.range_name
services_secondary_range_name = var.vpc_secondary_ip_ranges.gke-services.secondary_range.range_name
}
....