Выполнение домашнего задания по теме "7.6. Написание собственных провайдеров для Terraform".
Q/A
Задание 1
Давайте потренируемся читать исходный код AWS провайдера, который можно склонировать от сюда: https://github.com/hashicorp/terraform-provider-aws.git. Просто найдите нужные ресурсы в исходном коде и ответы на вопросы станут понятны.
- Найдите, где перечислены все доступные
resourceиdata_source, приложите ссылку на эти строки в коде на гитхабе.- Для создания очереди сообщений SQS используется ресурс
aws_sqs_queueу которого есть параметрname.
- С каким другим параметром конфликтует
name? Приложите строчку кода, в которой это указано.- Какая максимальная длина имени?
- Какому регулярному выражению должно подчиняться имя?
Все возможные значения resource перечислены в файле internal/provider/provider.go в ключе ResourcesMap.
Все возможные значения data_source перечислены в файле internal/provider/provider.go в ключе DataSourcesMap.
В ресурсе aws_sqs_queue:
- параметр
nameконфликтует с параметромname_prefix - максимальная длина имени очереди: 75 символов для fifo и 80 символов для остальных
- регулярное выражение для имени очереди:
- тип fifo:
^[a-zA-Z0-9_-]{1,75}\.fifo$ - другие очереди:
^[a-zA-Z0-9_-]{1,80}$
- тип fifo:
Задание 2
В рамках вебинара и презентации мы разобрали как создать свой собственный провайдер на примере кофемашины. Также вот официальная документация о создании провайдера: https://learn.hashicorp.com/collections/terraform/providers.
- Проделайте все шаги создания провайдера.
- В виде результата приложение ссылку на исходный код.
- Попробуйте скомпилировать провайдер, если получится то приложите снимок экрана с командой и результатом компиляции.
Ссылка на исходный код провайдера terraform-provider-hashicups.
Скриншот компиляции провайдера:
