Перейти к содержимому
Использование реестра

Использование реестра

Открыть в Markdown

Провайдер Status200 публикуется в Terraform Registry и в OpenTofu Registry. terraform init и tofu init скачивают его оттуда: вручную устанавливать ничего не нужно. Эта страница рассказывает, что публикуется, как нумеруются версии и как перейти на более новую.

Что публикуется

Каждый релиз Status200 генерирует провайдер из собственного API Status200. Если провайдер изменился, релиз публикует его под версией релиза, как только он пройдёт сквозные тесты в Terraform и в OpenTofu:

flowchart TB R["Релиз Status200"] --> G["Провайдер генерируется<br/>из API Status200"] G --> C{"Провайдер<br/>изменился?"} C -->|"да"| P["Проверен в Terraform<br/>и OpenTofu, затем<br/>опубликован<br/>под версией релиза"] C -->|"нет"| N["Новой версии<br/>провайдера<br/>в этом релизе нет"] P --> I["terraform init<br/>и tofu init<br/>скачивают его"]

От релиза Status200 до вашего terraform init

ЧтоГде
Провайдер для Linux, macOS, Windows, FreeBSD, OpenBSD и SolarisСкачивается командами terraform init и tofu init, с контрольными суммами, которые подписывает Status200
Справочник по каждому ресурсу и источнику данных со всеми их атрибутамиДокументация реестра, сгруппированная по продуктам: мониторы, страницы состояния, инциденты, дежурства и остальные
Руководство по использованию провайдера с OpenTofuРуководства реестра
Каждая версия, начиная с самой новойСписок версий в реестре

Справочник говорит, что такое каждый атрибут. Эта документация показывает, как использовать их вместе: начните с Обзор Terraform.

Как нумеруются версии

Версия провайдера – это версия релиза Status200, который его опубликовал: провайдер 14.0.20 вышел с Status200 14.0.20. Релиз, в котором провайдер не изменился, его не публикует, поэтому в версиях есть пропуски, и ограничение, называющее одну точную версию, может назвать версию, которой не существует. Вместо этого пишите диапазон:

Вы используетеОграничениеTerraform устанавливает
Status200 Cloud~> 14.0Самый новый провайдер 14.x
Status200 с собственным хостингомДиапазон, который заканчивается версией вашего Status200, например >= 14.0, <= 14.0.40Самый новый провайдер, который не новее вашего Status200

На Status200 с собственным хостингом провайдер новее вашего Status200 может отправлять настройки, которых у вашего Status200 ещё нет: Настройка собственного хостинга показывает, как написать для него диапазон.

main.tfHCL
terraform {
  required_providers {
    oneuptime = {
      source  = "oneuptime/status200"
      version = "~> 14.0"
    }
  }
}

Адрес источника не называет реестр: Terraform читает его из Terraform Registry, а OpenTofu из OpenTofu Registry, которые публикуют одни и те же версии.

Файл блокировки

terraform init записывает выбранную версию и контрольные суммы своих загрузок в .terraform.lock.hcl. Закоммитьте этот файл: тогда каждая машина и каждый запуск CI устанавливают ровно эту версию, пока вы не выберете другую. Контрольные суммы охватывают все платформы, которые публикует реестр, поэтому один файл блокировки одинаково подходит машинам с Linux, macOS и Windows.

.terraform.lock.hclHCL
provider "registry.terraform.io/status200/status200" {
  version     = "14.0.20"
  constraints = "~> 14.0"
  hashes = [
    "h1:...",
    "zh:...",
  ]
}

Файл блокировки называет реестр. OpenTofu пишет registry.opentofu.org/status200/status200 там, где Terraform пишет registry.terraform.io/status200/status200, поэтому смена инструмента меняет файл блокировки: init заменяет запись и просит закоммитить изменение.

Переход на более новую версию

  1. Прочитайте, что изменилось

    Релизы Status200 рассказывают, что изменил каждый релиз, включая провайдер. Релизы провайдера ссылаются на изменения с предыдущего.

  2. Скачайте её

    Bash
    terraform init -upgrade

    init -upgrade берёт самую новую версию, которую допускает ваше ограничение, выводит её и обновляет .terraform.lock.hcl. Ограничение ~> 14.0 берёт каждый релиз 14.x; для новой основной версии нужно новое ограничение.

  3. Запустите план перед применением

    Выполните terraform plan и применяйте, только когда он пуст или показывает ожидаемые изменения. Закоммитьте обновлённый файл блокировки.

На Status200 с собственным хостингом сначала обновите Status200, затем поднимите конец диапазона провайдера.

Где находится код

Провайдер генерируется из API Status200 в основном репозитории Status200, и каждая версия собирается из релиза, который её опубликовал. Его собственный репозиторий, OneUptime/terraform-provider-status200, содержит то, что написал генератор, поэтому изменения вносятся в основной репозиторий: сообщайте о проблемах, в том числе в документации, на git.wilix.dev/status200/status200/issues.

Дальнейшие шаги