OpenShift のアップグレードパスを生成するDockerイメージ

OpenShift 4系のアップグレードパスは厳密に決まっています.
stable-4.4 チャンネルだと以下のような感じになります.

OpenShift upgrade path of stable-4.4 channel

 

このことは赤帽ブログでも解説されています.
※なお、公式ドキュメントにはアップグレードパスの記述はない

今回はアップグレードパスを生成する Docker イメージを作ってみました.

Dockerfile

アップグレードパスの生成方法は基本的に Red Hat のナレッジベースと同じ方法です.
OpenShift Container Platform (OCP) 4 upgrade paths

こちらを実行する Dockerfile を以下のような形で作りました.
(あくまでツール的なイメージなので細かいところにはこだわっていません)

 

ビルド&実行

以下のコマンドでビルドと実行を行います.

$ docker build -t openshift-upgrade-path-generator:1.0 .
$ docker run --rm -v `pwd`:/tmp/output -e CHANNEL_NAME=stable-4.3 openshift-upgrade-path-generator:1.0

 

stable-4.3 チャンネルの結果は以下のようになります.

OpenShift upgrade path of stable-4.3 channel

カオスだ…

今、私が運用しているクラスターは 4.3.5 なのですが、これを 4.4 系にアップデートしようとすると、冒頭の stable-4.4 チャンネルの結果と合わせて、最短経路は 4.3.5 → 4.3.21 → 4.4.4 だと分かります.

 

まとめ

今回は OpenShift のアップグレードパスを生成する Docker イメージを作ってみました.

OpenShift のアップグレードパスは非常に複雑なので、有向グラフとして可視化してあげないと正直理解するのが難しいです. これを docker run 一発で生成できるのはなかなか便利なのではないでしょうか?(たぶん OpenShift 上でも動かせるイメージになったはず)

実運用でも使うことになりそうかなぁ…?

 

以上です.