This is actually by design on the Keystone side, somewhat for the reasoning mentioned in comment #1. More specifically, a v3 "endpoint" only has one URL, and an interface type. A v2 endpoint is expected to have a public URL, and may additionally have an internal URL and an admin URL.
You could easily expose v3 *public* endpoints using v2.
The design question that must be answered is regarding v3 admin and v2 internal endpoints: Given that v2 endpoints must have public URLs, how do you expose admin and internal URLs in v2? There is no guaranteed way to "match" admin and internal endpoints created with v3 to public URLs created with v3, but you could certainly guess based on other matching attributes and some assumptions (like no more than one endpoint interface per service type per region).
Definitely something we can address if we can agree on the compromises / assumptions necessary in keystone.
This is actually by design on the Keystone side, somewhat for the reasoning mentioned in comment #1. More specifically, a v3 "endpoint" only has one URL, and an interface type. A v2 endpoint is expected to have a public URL, and may additionally have an internal URL and an admin URL.
You could easily expose v3 *public* endpoints using v2.
The design question that must be answered is regarding v3 admin and v2 internal endpoints: Given that v2 endpoints must have public URLs, how do you expose admin and internal URLs in v2? There is no guaranteed way to "match" admin and internal endpoints created with v3 to public URLs created with v3, but you could certainly guess based on other matching attributes and some assumptions (like no more than one endpoint interface per service type per region).
Definitely something we can address if we can agree on the compromises / assumptions necessary in keystone.