API для тестирования манифеста TerraformBeta
Ниже описаны методы API для тестирования манифеста Terraform с системой развертывания.
Запрос загружает манифест Terraform в систему развертывания.
Параметры запроса на загрузку манифеста plans/<ИМЯ_ПЛАНА>/deployment/deploy.tf:
Параметр | Значение |
|---|---|
Метод запроса |
|
Путь запроса |
Здесь:
|
Тело запроса ( | Содержимое манифеста Если для тестирования требуются дополнительные ресурсы провайдеров, их нужно добавить в тело запроса |
|
|
Пример запроса:
curl -v -X POST https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/config/test_1.0 \-H 'x-auth-token: <ТОКЕН_ДОСТУПА>' \--data-binary "@deploy.tf"
HTTP-коды ответа:
Код | Описание |
|---|---|
201 | Манифест загружен или обновлен |
400, 500 | Ошибка выполнения запроса |
401 | Ошибка авторизации |
При отправке запроса с именем манифеста, уже существующим в системе развертывания, конфигурация этого манифеста будет обновлена. Все ранее загруженные конфигурации манифеста будут сохранены в системе развертывания, чтобы обеспечить корректную работу Terraform.
Запрос возвращает текущую конфигурацию указанного в запросе манифеста Terraform.
Параметры запроса:
Параметр | Значение |
|---|---|
Метод запроса |
|
Путь запроса |
Здесь:
|
|
|
Пример запроса:
curl https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/config/test_1.0 \-H 'x-auth-token: <ТОКЕН_ДОСТУПА>'
HTTP-коды ответа:
Код | Описание |
|---|---|
200 | Запрос выполнен. Ответ на запрос содержит текущую конфигурацию указанного манифеста Terraform |
401 | Ошибка авторизации |
404 | Манифест не найден |
500 | Ошибка выполнения запроса |
Запрос создает ресурсы согласно текущей конфигурации манифеста Terraform.
Параметры запроса на создание инстанса сервиса:
Параметр | Значение |
|---|---|
Метод запроса |
|
Путь запроса |
Здесь |
|
|
Тело запроса ( | Должны быть указаны следующие параметры:
|
|
|
Пример запроса:
curl -v -X POST https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/object \-H "Content-Type: application/json" \-H 'x-auth-token: <ТОКЕН_ДОСТУПА>' \--data '{"uuid": "675f6f08-XXXX-f02311f795d7","config": "test_1.0","vars": {"sub_network": "a793470c-XXXX-67af6c178c8e","image_uuid": "163ff752-XXXX-b0001e3e65d3","volume_type": "ceph-ssd","flavor_uuid": "6e61564f-XXXX-08df5fd84514"}}'
Здесь:
sub_network— ID подсети.image_uuid— ID образа сервиса.volume_type— тип диска.flavor_uuid— ID шаблона конфигурации ВМ.
HTTP-коды ответа:
Код | Описание |
|---|---|
201 | Инстанс сервиса создан |
400, 500 | Ошибка выполнения запроса |
401 | Ошибка авторизации |
Запрос удаляет инстанс сервиса, созданный в результате выполнения манифеста Terraform
Параметры запроса:
Параметр | Значение |
|---|---|
Метод запроса |
|
Путь запроса |
Здесь:
|
|
|
Пример запроса:
curl -v -X DELETE https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/object/675f6f08-XXXX-f02311f795d7 \-H 'x-auth-token: <ТОКЕН_ДОСТУПА>'
HTTP-коды ответа:
Код | Описание |
|---|---|
201 | Инстанс сервиса удален |
400, 500 | Ошибка выполнения запроса |
401 | Ошибка авторизации |
404 | Манифест не найден |
Запрос возвращает статус инстанса сервиса.
Параметр | Значение |
|---|---|
Метод запроса |
|
Путь запроса |
Здесь:
|
|
|
Пример запроса:
curl https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/hoe/object/675f6f08-XXXX-f02311f795d7 \-H 'x-auth-token: <ТОКЕН_ДОСТУПА>'
HTTP-коды ответа:
Код | Описание |
|---|---|
200 | Запрос выполнен. Ответ на запрос содержит статус инстанса сервиса (
|
401 | Ошибка авторизации |
404 | Идентификатор инстанса сервиса не найден |
500 | Ошибка выполнения запроса |
Пример ответа на запрос, выполненный после удаления инстанса сервиса:
{"uuid": "675f6f08-XXXX-f02311f795d7","target_status": "deleted","vars": {},"out": "{}","status": "deleted","conf_name": "user@vk.team","conf_hash": "75587baeXXXX","pid": "b66dde3dXXXX","create_at": "2023-04-26T13:57:54.849565Z","update_at": "2023-04-26T14:02:42.667399Z","full_deployed": false,"attempts": 0,"max_attempts": 15}
Здесь:
uuid— идентификатор развертывания инстанса сервиса.target_status— целевой статус инстанса сервиса (deletedилиrunning).vars— входные переменные манифеста.out— выходные параметры манифеста.status— текущий статус инстанса сервиса.conf_name— имя пользователя, развернувшего сервис.conf_hash— хеш конфигурации инстанса сервиса.pid— идентификатор проекта пользователя, развернувшего сервис (Project ID).create_at— дата и время, когда инстанс сервиса был создан.update_at— дата и время последнего обновления инстанса сервиса системой развертывания.full_deployed— успешно ли развернут инстанс сервиса (для статусаdeletedзначение равноfalse).attempts— количество выполненных повторных попыток при развертывании инстанса сервиса.max_attempts— максимальное количество повторных попыток.
Запрос возвращает логи инстанса сервиса.
Параметры запроса:
Параметр | Значение |
|---|---|
Метод запроса |
|
Путь запроса |
Здесь:
|
|
|
Пример запроса:
curl https://cloud.vk.com/marketplace/api/infra-api/api/v1-public/logs/instance/675f6f08-XXXX-f02311f795d7 \-H 'x-auth-token: <ТОКЕН_ДОСТУПА>'
HTTP-коды ответа:
Код | Описание |
|---|---|
200 | Запрос выполнен. В ответе на запрос в параметре |
401 | Ошибка авторизации |
404 | Идентификатор инстанса сервиса не найден |
500 | Ошибка выполнения запроса |
Пример ответа:
[{"message": " Apply complete! Resources: 1 added, 0 changed, 0 destroyed. ","src": "terraform","level": "debug","created_at": "2024-05-30T08:32:24Z","uuid": "675f6f08-XXXX-f02311f795d7","broker_id": ""}]