Kubernetes поддерживает точки в ключах меток метаданных (например, app.role
), и на самом деле это кажется общим соглашением.
Язык конфигурации terraform (0.12) не поддерживает точки в именах аргументов,поэтому метки этой формы не могут быть указаны.Например, в конфигурации google_container_node_pool
я хочу указать это:
resource "google_container_node_pool" "my-node-pool" {
...
labels = {
app.role = web
}
}
Есть ли обходной путь?
примечание: косые черты (/
) довольно часто встречаются в метках k8s какхорошо ..
ОБНОВЛЕНИЕ : в случае, если кто-то споткнется об этой же проблеме в будущем, я выяснил корень своей проблемы.Я неправильно указал аргумент labels
как блок, пропустив =
.Так это выглядело так:
labels {
"app.role" = "web"
}
Это привело к следующей ошибке, которая указала мне в неправильном направлении:
Error: Invalid argument name
on main.tf line 45, in resource "google_container_node_pool" "primary_preemptible_nodes":
45: "app.role" = "web"
Argument names must not be quoted.
Я заметил и исправил недостающее =
, но я не сделалне сводим воедино, что ключи карты имеют синтаксис, отличный от имен аргументов.