OpenShift のアップグレードパスを生成するDockerイメージ
OpenShift 4系のアップグレードパスは厳密に決まっています.
stable-4.4 チャンネルだと以下のような感じになります.
このことは赤帽ブログでも解説されています.
※なお、公式ドキュメントにはアップグレードパスの記述はない
今回はアップグレードパスを生成する 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 チャンネルの結果は以下のようになります.
カオスだ…
今、私が運用しているクラスターは 4.3.5 なのですが、これを 4.4 系にアップデートしようとすると、冒頭の stable-4.4 チャンネルの結果と合わせて、最短経路は 4.3.5 → 4.3.21 → 4.4.4 だと分かります.
まとめ
今回は OpenShift のアップグレードパスを生成する Docker イメージを作ってみました.
OpenShift のアップグレードパスは非常に複雑なので、有向グラフとして可視化してあげないと正直理解するのが難しいです. これを docker run 一発で生成できるのはなかなか便利なのではないでしょうか?(たぶん OpenShift 上でも動かせるイメージになったはず)
実運用でも使うことになりそうかなぁ…?
以上です.