It's been a while since I updated the list on my progress, I have been busy lately with other things.
The previous blocker which was a bug in dhclient is fixed now and is in fedora-updates repo. The existing kickstart files which are used to build fedora cloud images can be used for GCE as well without any modification.
Since everybody voted up for cloud-init for initial GCE instance setup, I wrote cloud-init data source for GCE metadata. The only thing it does not do yet is read user-data from GCE metadata API, because GCE does not distinguish between key:value attributes, they are all the same from their point of view which is not the case from cloud-init point of view. I noticed that cloud-init is very much EC2-focused.
Should I assume that people will create a GCE metadata attribute called 'user-data' if they want to get cloud-init to setup their instance initially?
Another issue with cloud-init is that EC2 data source takes ages to run on non EC2 cloud providers with default configuration. By default it is one of the first ones to run when instance starts. Default config for EC2 data sources tells cloud-init to retry 240 times, which is roughly about 3-4 minutes.
Which brings me to another question - should we have a specific kickstart snippet for GCE and potentially for other clouds which just changes default cloud-init config (enables/disables cloud-init data sources) based on what kind of cloud image that is?
Any ideas / comments are welcome. I will paste the code later today for people review it.