The problem is connected with cloud-init 0.7.5 package from CentOS. It contains patches and differs from the vanilla cloud-init and Ubuntu version, for example. I've found patches inside the source package which cause such problems with metadata. To be more specific, they are "cloud-init-centos-opennebula.patch", "cloud-init-centos-opennebula-requiretty.patch" and "cloud-init-centos-cloudstack-urlhandling.patch" After I rebuilt the package without them and made a new CentOS image, cloud-init works perfectly. So I think it should be fixed in CentOS packages.
The problem is connected with cloud-init 0.7.5 package from CentOS. It contains patches and differs from the vanilla cloud-init and Ubuntu version, for example. I've found patches inside the source package which cause such problems with metadata. To be more specific, they are "cloud- init-centos- opennebula. patch", "cloud- init-centos- opennebula- requiretty. patch" and "cloud- init-centos- cloudstack- urlhandling. patch" After I rebuilt the package without them and made a new CentOS image, cloud-init works perfectly. So I think it should be fixed in CentOS packages.