Terraform:如何检索 aks 管理的出站 ip
Terraform: How to retrieve the aks managed outbound ip
在标准 sku 的 aks 托管 slb 中,azure 自动分配一个 public ip。
此 public ip 的名称是自动生成的,但具有以下标签
"tags": {
"aks-managed-type": "aks-slb-managed-outbound-ip"
},
创建后我无法检索此 ip。
名称也是自动生成的
"name": "[parameters('publicIPAddresses_837ca1c7_1817_43b7_8f4d_34b750419d4b_name')]",
我尝试使用 azurerm_public_ip 数据源进行过滤并使用标签进行过滤,但这不起作用。
data "azurerm_public_ip" "example" {
resource_group_name = "rg-sample-004"
filter {
name = "tag:aks-managed-type"
values = [ "aks-slb-managed-outbound-ip" ]
}
}
上面的代码是不正确的,因为没有提供 name 参数,但在创建之前我不知道名称。
我想为我在申请阶段创建的 Azure MySQL 数据库将此 IP 列入白名单。
是否有任何其他方法可以在 terraform 应用期间检索此 public ip?
给你,我们用它来将从 AKS 到密钥保管库等的访问列入白名单:
data "azurerm_public_ip" "aks_outgoing" {
name = join("", (regex("([^/]+)$", join("", azurerm_kubernetes_cluster.aks.network_profile[0].load_balancer_profile[0].effective_outbound_ips))))
resource_group_name = "YOUR_RG"
}
在标准 sku 的 aks 托管 slb 中,azure 自动分配一个 public ip。
此 public ip 的名称是自动生成的,但具有以下标签
"tags": {
"aks-managed-type": "aks-slb-managed-outbound-ip"
},
创建后我无法检索此 ip。
名称也是自动生成的
"name": "[parameters('publicIPAddresses_837ca1c7_1817_43b7_8f4d_34b750419d4b_name')]",
我尝试使用 azurerm_public_ip 数据源进行过滤并使用标签进行过滤,但这不起作用。
data "azurerm_public_ip" "example" {
resource_group_name = "rg-sample-004"
filter {
name = "tag:aks-managed-type"
values = [ "aks-slb-managed-outbound-ip" ]
}
}
上面的代码是不正确的,因为没有提供 name 参数,但在创建之前我不知道名称。
我想为我在申请阶段创建的 Azure MySQL 数据库将此 IP 列入白名单。
是否有任何其他方法可以在 terraform 应用期间检索此 public ip?
给你,我们用它来将从 AKS 到密钥保管库等的访问列入白名单:
data "azurerm_public_ip" "aks_outgoing" {
name = join("", (regex("([^/]+)$", join("", azurerm_kubernetes_cluster.aks.network_profile[0].load_balancer_profile[0].effective_outbound_ips))))
resource_group_name = "YOUR_RG"
}