CoreOSのイメージを自分で作ってみると、アップデートの戦略はどうなるのか

はじめに

 CoreOSのイメージは自分で作ることもできるのですが、「この場合アップデート戦略はどう設定されているのか?」と不思議に思ったので確認してみることに

環境

イメージ作成環境
実行環境

CoreOS 557.2.0 developイメージの場合

 GROUPには、謎のdeveloperなるものが指定されています。

CoreOS developer (557.2.0+2015-04-19-1400)
core@localhost ~ $ cat /etc/coreos/update.conf
GROUP=developer
SERVER=http://localhost:8080/update

# For gmerge
DEVSERVER=http://localhost:8080

CoreOS 557.2.0 productイメージの場合

 こちらもGROUPには、謎のdeveloperなるものが指定されています。

CoreOS developer (557.2.0+2015-04-21-1601)
core@localhost ~ $ cat /etc/coreos/update.conf
GROUP=developer

/etc/coreos/update.confを書き換えてアップデートしてみると?

 developerなんてチャンネルは外部には公開されていないようなのですが、では、「/etc/coreos/update.confを自分で書き換えて、updateを実行してみるとどうなるのか?」と思ったので実験してみました。
 productイメージの方で「beta」に書き換えて実行してみたところupdateは出来ずでした。

 実行結果は以下のような感じです。

core@localhost ~ $ cat /etc/coreos/update.conf
GROUP=beta
core@localhost ~ $ sudo update_engine_client -update
[0426/014726:INFO:update_engine_client.cc(245)] Initiating update check and install.
[0426/014726:INFO:update_engine_client.cc(250)] Waiting for update to complete.
LAST_CHECKED_TIME=1430012847
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
LAST_CHECKED_TIME=1430012847
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
LAST_CHECKED_TIME=1430012847
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
LAST_CHECKED_TIME=1430012847
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
LAST_CHECKED_TIME=1430012847
PROGRESS=0.000005
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
(中略)
LAST_CHECKED_TIME=1430012847
PROGRESS=0.956844
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
LAST_CHECKED_TIME=1430012847
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_REPORTING_ERROR_EVENT
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
LAST_CHECKED_TIME=1430012847
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_IDLE
NEW_VERSION=0.0.0.0
NEW_SIZE=129904561
[0426/015001:ERROR:update_engine_client.cc(189)] Update failed.

補足

 「developイメージ、productイメージ」とはなんぞや、というのは以下を参照。

さいごに

 「さすがに公式からイメージを取得してのアップデートはできないよねー」というのは想像に難くないので、その点は予想通りでした。
 まあ、何事も実験ということで。