📼

Cloud Composer は最新イメージのバージョンだけではなく古いイメージのバージョンでも新規作成できる

2021/05/27に公開

Cloud Console 上からは最新のイメージしか指定できない

Cloud Composer のドキュメントには以下の記載があり、

When you create a new environment or upgrade an existing one, only the latest versions of Cloud Composer images are available as choices.

https://cloud.google.com/composer/docs/concepts/versioning/composer-versions#latest_version

実際「環境の作成」画面では、最新のバージョンのみが選択肢として表示されます。


「環境の作成」画面で指定できるイメージのバージョン

Cloud Console からは古いイメージのバージョンの Cloud Composer は新規作成することができません。

API 経由であれば古いイメージのバージョンが指定可能

しかし、コマンドから作成を実行すると……

$ gcloud composer environments create old-version \
  --project example-project --location asia-northeast1 --image-version composer-1.10.2-airflow-1.10.6
Waiting for [projects/example-project/locations/asia-northeast1/environments/old-version] to be created with [projects/example-project/locations/asia-northeast1/operations/xxx60xxx-axx9-xxfe-aexx-xxxx281xxxxx]...done.

普通に作成ができてしまいました。

どうやら API 経由であれば、最新イメージのバージョンだけではなく古いイメージのバージョンでも新規作成できるようです(なので、Terraform などからも作成可能)。

ただし、全てのバージョンで作成ができるわけではなく、一定程度古くなったバージョンは作成できなくなってしまうようです。Cloud Composer の API のイメージバージョンの一覧を取得する API があり、その中の項目として creationDisabled があります。この項目が無ければ新規作成ができるようです。

https://cloud.google.com/composer/docs/reference/rest/v1/projects.locations.imageVersions/list?hl=ja

creationDisabled
boolean

Whether it is impossible to create an environment with the image version.

 {
    ...,
    {
      "imageVersionId": "composer-1.9.1-airflow-1.10.1",
      "supportedPythonVersions": [
        "2",
        "3"
      ],
      "releaseDate": {
        "year": 2020,
        "month": 2,
        "day": 25
      }
    },
    {
      "imageVersionId": "composer-1.9.0-airflow-1.10.6",
      "supportedPythonVersions": [
        "2",
        "3"
      ],
      "releaseDate": {
        "year": 2020,
        "month": 2,
        "day": 13
      },
      "creationDisabled": true
    },
    ...
}

Discussion