Как экспортировать HCL импортированного ресурса для редактирования

#visual-studio-code #terraform #newrelic #hcl

Вопрос:

Мы используем Terraform, чтобы сделать масштабирование наших новых информационных панелей Relic более простым и единообразным. Это связано с тем, что нам нужно будет воссоздавать все наши существующие информационные панели (в настоящее время их несколько десятков) каждый раз, когда мы запускаем нового клиента и/или новый регион продукта. В результате я хотел бы избежать написания кода для каждой существующей панели мониторинга и надеялся найти способ импортировать существующую панель мониторинга NR1 в Terraform.

В самом низу примера использования: Создайте панель мониторинга New Relic One, почти как сноска, в документации упоминается, что панели мониторинга New Relic можно импортировать с помощью их идентификатора GUID. Что ж, это было лишь немного полезно, поскольку на панелях мониторинга NR1, похоже, нет идентификаторов GUID, по крайней мере, не так, как на панелях мониторинга OG. Я смог импортировать панель мониторинга Insights до того, как они ушли, но не смог понять, как получить код, в чем, конечно, и был весь смысл.

Можно ли экспортировать HCL, скажем, в код VS, после импорта, или нам придется перекодировать и протестировать каждую из наших существующих панелей мониторинга? Спасибо, что уделили мне время.

Ответ №1:

В настоящее время terraform не имеет встроенного способа генерации кода из существующей инфраструктуры. Действительно, существуют сторонние проекты, такие как terraformer, но, к сожалению, New Relic ими не поддерживается.

Что вы можете сделать, так это:

  1. Создайте фиктивный ресурс (например, вставка из образца реестра terraform)
  2. Импорт панели мониторинга по идентификатору guid
  3. Запустите план терраформирования и проверьте, что терраформ уничтожит/изменит, затем вы можете легко переписать его, пока у вас не останется изменений для ваших панелей мониторинга.

Это немного банально, но я использовал это в прошлом для облачной инфраструктуры, и это сработало довольно хорошо.

Комментарии:

1. Определенно звучит неуклюже, но это было бы лучше, чем писать все это от руки. Я попробую и посмотрю, сработает ли это для нас.

2. Мне может потребоваться немного времени, чтобы это проверить. Поскольку я уже однажды импортировал панель мониторинга, она, по-видимому, застряла в текущем состоянии и не позволит мне сделать это снова. Я изо всех сил пытаюсь сбросить его. Похоже, обновить его и уничтожить тоже не получилось.

3. Вы также можете удалить панель мониторинга из состояния с помощью terraform state. Панель мониторинга-ресурс-адрес. Это должно сработать 🙂