Hi Peter,
> if you're referring to customize-guest.sh script on vCD cell, it'd be a global change that would apply to all tenants within the same vCD instance. Not sure if I want to go that route...
It depends on your use-case. If you can't use pre-/post-customization scripts for some reason (like users may be expected to provide their own one), that might be the only option. But you're right that's definitely a heavy artillery
> #1 vCloud API call to create Guest Properties on a VM, provide secondary IP values there and finally use post-customization script which pulls values
using vmware tools
Yes, I could only add that another way is to put these properties into ProductSection of the OVF before uploading it to vCloud. But it again depends on your use-case.
> #2 Use 'Guest OS Customization' -'Customization script' to apply secondary IPs during postcustomization, as decribed here:
Yes.
> Question: which script in Linux guest OS handles post-customization tasks? Is it /root/.customization/post-customize-guest.sh that I would need to modify? How about the name of the post-customization script in Windows guest?
You don't need to modify anything in the guest. Script is provided via UI (VM > Properties > Guest OS Customization tab > Customization script) or API (GuestCustomizationSection > CustomizationScript element.
/root/.customization/post-customize-guest.sh is implementation detail. It's the way we use to invoke post-customization (the "pre-" one is executed at the beginning of customization process) after the last reboot. It's registered in /etc/rc.local on some OSes. It will get overriden next time somebody provides different post-customization script. On other OSes (SLES) we actually don't do that and register it as "service". Maybe I should have done that for RHEL too, but there is always room for improvement
On Windows post-customization runs as scheduled Windows Task.

Hope that helps.
/Andrii