CoreOS は、起動プロセス中に cloudinit を数回実行します。現在、これは起動ごとに発生しますが、その機能は将来変更される可能性があります。
最初のパスは OEM cloud-init です。これはイメージに組み込まれ、そのプロバイダーに必要なネットワークやその他の機能をセットアップします。これは、EC2、Rackspace、Google Compute Engine などに対して行われます。これらはすべて要件が異なるためです。これらのファイルは Github で見ることができます。
2 番目のパスはユーザー データ パスで、プロバイダーごとに異なる方法で処理されます。たとえば、EC2 では、ユーザーがメタデータ サービスに保存されている UI に自由形式のテキストを入力できます。EC2 OEM には、このメタデータを読み取り、それを 2 番目の cloud-init 実行に渡すユニットがあります。Rackspace/Openstack では、config-drive を使用して、ユーザー データを含む読み取り専用ファイル システムをマウントします。Rackspace および Openstack OEM は、その場所でユーザー データ ファイルをマウントして検索することを知っています。
CoreOS の最新バージョンには、PXE ブートで使用するために評価されるリモート ファイルをフェッチするためのフラグもあります。
CoreOSディストリビューション ドキュメントにも、さらに詳細がいくつか記載されています。