If there is more than one startup script in the instance metadata, the order of execution is not deterministic, even so in line 349 of metadata_scripts/GCEMetadataScripts/main.go it says: "This ordering matters. URL is last on Windows, first otherwise.".
This is caused be parseMetadata returning a map instead of an array of key value pairs. Having more than one startup script is quite useful, the code supports this already.
If there is more than one startup script in the instance metadata, the order of execution is not deterministic, even so in line 349 of metadata_scripts/GCEMetadataScripts/main.go it says: "This ordering matters. URL is last on Windows, first otherwise.".
This is caused be parseMetadata returning a map instead of an array of key value pairs. Having more than one startup script is quite useful, the code supports this already.