Hi I'm in same situation.
Below is my implementation (not completed yet but I believe to be "clean" solution):
- override
Magento_ConfigurableProduct::product/view/type/options/configurable.phtml
in custom module, adding code to check how many child products the configurable product has (if only one, then don't render the options).
This also requires adding a Plugin class for the swatches module due to stupid magento2 hard coded template paths, refer to
https://github.com/magento/magento2/issues/4400
- create custom js component that takes the child product id available in the phtml template. This component will set the value of the
"selected_configurable_option" hidden input field to that product id.
This should be enough to allow customer to set quantity and add to the cart.
I usually do only backend side so am looking up minimal way to create this js component (or do it inline if possible).
FYI this is not a fully tested or complete solution as I haven't check what these overrides do when customer is editing their cart or browsing category products.
I'm still working on it as of this post.