Apparently using the following:
interface x/x/x.100
encap dot1q 100 second-dot1q 1000
Should theoretically work, but on our 9k it didnt. Ended up doing a back to back port-channel with:
int vlan yyy
desc peering to azure
int po1
desc towards dot1q-tunnel source
switchport mode trunk
switchport trunk allowed vlan yyy
int po2
desc source for dot1q-tunnel to azure
switchport access vlan 7 <- s-tag azure expects, this tags whatever comes in from the other side with 7 as s-tag
switchport mode dot1q-tunnel
Guess its an old-school way of doing things, but the second-dot1q way didnt work so..