Cloudflare Terraform provider v5.29.0 — як працює namespace для AI Search

У підході Cloudflare до AI Search, починаючи з релізу Terraform provider v5.29.0, з'явилася важлива зміна: інстансами AI Search тепер можна керувати в будь-якому namespace, а не лише в namespace за замовчуванням "default".

Новий аргумент namespace у ресурсі cloudflare_ai_search_instance

Ресурс cloudflare_ai_search_instance отримав новий аргумент namespace. Якщо його не вказати, він автоматично матиме значення "default". Завдяки цьому наявні Terraform-конфігурації продовжують керувати тими самими інстансами AI Search після оновлення до v5.29.0 без додаткових змін.

Щоб явно створювати інстанси в окремих namespace, можна спочатку описати ресурс cloudflare_ai_search_namespace, а потім посилатися на нього з інстансу AI Search.

resource "cloudflare_ai_search_namespace" "support" {
  account_id = var.account_id
  name       = "support"
}
resource "cloudflare_ai_search_instance" "docs" {
  account_id = var.account_id
  id         = "docs"
  namespace  = cloudflare_ai_search_namespace.support.name
}

Новий формат import ID з урахуванням namespace

Для існуючих інстансів і namespace AI Search імпорт у Terraform тепер враховує namespace в ідентифікаторі ресурсу. Для cloudflare_ai_search_instance формат import ID змінився на

<account_id>/<namespace>/<id>

Для інстансів у namespace за замовчуванням потрібно явно вказувати default, тобто <account_id>/default/<id>. Так само імпортуються й ресурси namespace.

terraform import cloudflare_ai_search_instance.docs <account_id>/support/docs
terraform import cloudflare_ai_search_namespace.support <account_id>/support

Зміни в data sources і обмеження щодо namespace

Data sources cloudflare_ai_search_instance і cloudflare_ai_search_instances тепер потребують обов'язкового аргументу namespace. Для інстансів у стандартному просторі імен потрібно явно задати namespace = "default".

Data source cloudflare_ai_search_instances тепер повертає інстанси лише з одного вказаного namespace. Аргумент filter.namespace для cloudflare_ai_search_instance видалено, тому фільтрація за namespace тепер виконується саме через новий обов'язковий аргумент.

data "cloudflare_ai_search_instance" "docs" {
  account_id = var.account_id
  namespace  = "support"
  id         = "docs"
}
data "cloudflare_ai_search_instances" "support" {
  account_id = var.account_id
  namespace  = "support"
}

Під час планування міграції конфігурацій важливо врахувати, що зміна значення namespace у ресурсі cloudflare_ai_search_instance призводить до заміни інстансу (recreate). Це означає, що перенесення інстансу в інший namespace через Terraform запускає операцію видалення старого ресурсу та створення нового, і ці зміни потрібно враховувати в плані оновлення.


Джерело: Cloudflare Changelog

Пошук

Закрити