Is there a way to create an Open vSwitch internal port with netplan?

Netplan does not currently support to explicitly define arbitrary OVS internal ports (as of v0.102).

What you can do, though, is defining a VLAN on a given OVS bridge like this:

  vlans:
    #implicitly handled by OVS because of its link
    vlan1:
      id: 100
      link: vmbr0

This will create a "type=internal" Port/Interface for you on the OVS bridge defined by the "link" setting, as can be seen in this test scenario: https://github.com/canonical/netplan/blob/master/tests/integration/ovs.py#L184 That port can then receive arbitrary configuration (via netplan or ovs-vsctl).