バージョンの指定

Terraform、OCI Terraformプロバイダおよびモジュールのバージョンを指定および固定します。

構成ファイルでコールするTerraform、Oracle Cloud Infrastructure (OCI) TerraformプロバイダおよびTerraformモジュールのすべてに変更が導入されたり、新機能が追加されたりすることがあります。これらの変更が行われると、新しいバージョンがリリースされます。

構成がOCIリソースに一貫して適用されるように、Terraform構成ファイルでこれらのコンポーネントのバージョンを明示的に設定できます。

Terraform CLIのバージョン

Terraform構成で特定のバージョンのTerraform CLIを使用する必要がある場合は、terraformブロック内でrequired_version設定を使用して指定できます。例:

terraform {
    required_version = ">= 0.12.16"
}

詳細は、必要なTerraformバージョンの指定を参照してください。

ノート

リソース・マネージャは、スタック・バージョンに基づいてTerraformバージョンを管理します。リソース・マネージャでは、指定されたCLIバージョンは無視されます。

プロバイダ・バージョン

TerraformがOCIリソースと対話する際に使用するOCI Terraformプロバイダのバージョンを制御できます。この機能は、構成が特定のバージョンのプロバイダで導入された機能に依存している場合、または特定のバージョンのプロバイダでのみテストされている場合に特に役立ちます。

ユースケースに応じて、>=または=演算子でバージョンを指定できます。

詳細は、プロバイダ要件の指定を参照してください。

Terraform v0.12以前の使用

Terraform v0.12以前では、providerブロック内でversionを指定できました。例:

provider "oci" {
    version          = ">= 3.27.0"
    region           = "${var.region}"
    …
}

Terraform v0.13の使用

Terraform v0.13では、providerブロック内のversionは非推奨になりました。かわりに、バージョンはrequired_providersブロック内で指定する必要があります。例:

terraform {
    required_providers {
        oci = {
            source  = "hashicorp/oci"
            version = ">= 4.0.0"
        }
    }
    ...
}

モジュールのバージョン

Terraform CLIおよびOCI Terraformプロバイダのバージョンの指定に加え、Terraformモジュールのバージョンも指定できます。

新しいバージョンのTerraformコアを使用するようにモジュールがアップグレードされているが、以前のバージョンのTerraformを使用している場合は、互換性のあるバージョンのモジュールを指定できます。特定のバージョンのモジュールでのみ構成がテストされている場合は、そのバージョンを指定して互換性を確保できます。

モジュールではversion引数を使用できます。例:

module "oke" {
    source  = "oracle-terraform-modules/oke/oci"
    version = "1.0.0"
    # insert required variables here
}

詳細は、モジュール・ブロックを参照してください。