コンテンツへスキップ
レジストリの使用

レジストリの使用

Markdown で表示

Status200 プロバイダーは Terraform Registry と OpenTofu Registry で公開されています。terraform init と tofu init がそこからダウンロードするので、手でインストールするものはありません。このページでは、何が公開されているか、バージョンの番号の付け方、新しいバージョンへの移り方を説明します。

公開されているもの

Status200 の各リリースは、Status200 自身の API からプロバイダーを生成します。プロバイダーが変わった場合、そのリリースは、Terraform と OpenTofu のエンドツーエンドテストに合格した後で、リリースのバージョンでプロバイダーを公開します。

flowchart TB R["Status200 のリリース"] --> G["Status200 の API から<br/>プロバイダーを生成"] 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 とともに公開されました。プロバイダーが変わらなかったリリースは何も公開しないため、バージョンには抜けがあり、正確なバージョンを 1 つだけ指定する制約は、存在しないバージョンを指すことがあります。代わりに範囲を書いてください。

使っているもの制約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 の実行が正確にそのバージョンをインストールします。チェックサムはレジストリが公開するすべてのプラットフォームを対象とするので、1 つのロックファイルで 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 をアップグレードし、その後でプロバイダーの範囲の上限を上げます。

コードの場所

プロバイダーは、Status200 のメインリポジトリ で Status200 の API から生成され、各バージョンはそれを公開したリリースからビルドされます。プロバイダー自身のリポジトリ OneUptime/terraform-provider-status200 には生成器が書いたものが入っているので、変更はメインリポジトリで行います。問題は、ドキュメントの問題も含めて git.wilix.dev/status200/status200/issues に報告してください。

次のステップ