So I've got an odd create/refresh issue, and I'm not sure if it's a bug with pulumi or the terraform-openstack-provider. The problem is that openstack.networking.network defines a field called "segments" in it's schema (
https://github.com/terraform-providers/terraform-provider-openstack/blob/master/openstack/resource_openstack_networking_network_v2.go#L69). When I create a network with pulumi and don't set this attribute (because it's optional and honestly I'm not actually sure what its for) there is no "segments" field set in the state file, that's because the openstack terraform provider never returns it as an attribute (see the read method, which is used as the return for create as well
https://github.com/terraform-providers/terraform-provider-openstack/blob/master/openstack/resource_openstack_networking_network_v2.go#L201). So MAYBE this is a bug on terraform that there's no way to mark an attribute as input only? At any rate if I then call refresh pulumi then ADDS a segments field, it seems because it fills in all default values for inputs (which includes segments) passes that struct to terraform Refresh which calls read to fill in that struct, but it doesn't remove the segments field.
So yeh not sure who's really at fault here, but did wonder if providers are prone to doing things like this if pulumi could just not fill in the default fields at all before passing to Refresh?