テラフォームでazurerm_kubernetes_clusterのVMのリストを取得するためにさまざまなアプローチを結びましたが、成功しませんでした。https://www.terraform.io/docs/providers/azurerm/d/kubernetes_cluster.htmlには、考えられる要素がいくつかありますが、VMのリストを取得できるようにするための継ぎ目はありません。方法はありますか?
さて、サブネット経由で道を見つけました。このアプローチを使用するには、既知のサブネットを使用して高度なネットワークでKubernetesクラスターを作成する必要があります。
最初のセクションでは、サブネットからip_configurationsを取得し、醜い分割でネットワークインターフェイス名を抽出します。
data "null_data_source" "all_kubernetes_nic_name" {
count = "${length(azurerm_subnet.kubernetes.ip_configurations)}"
inputs {
nic = "${element(split("/", azurerm_subnet.kubernetes.ip_configurations[count.index]), 8)}"
}
}
各kubernetesノードがIPアドレスの数を取得しているため、前のリストで区別する必要があります。
data "null_data_source" "kubernetes_nic_name" {
count = "${length(distinct(data.null_data_source.all_kubernetes_nic_name.*.outputs.nic))}"
inputs {
nic = "${element(distinct(data.null_data_source.all_kubernetes_nic_name.*.outputs.nic), count.index)}"
}
}
そうすれば、kubernetesクラスター内の各ノードのネットワークインターフェースへの正確な参照を簡単に取得できます。resource_group_name
クラスタオブジェクトから直接抽出されることに注意してください。
data "azurerm_network_interface" "kubernetes_nic" {
count = "${length(data.null_data_source.kubernetes_nic_name.*.outputs.nic)}"
name = "${data.null_data_source.kubernetes_nic_name.*.outputs.nic[count.index]}"
resource_group_name = "${azurerm_kubernetes_cluster.cluster.node_resource_group}"
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加