We can certainly deprecate 2.x and remove for 3.x if we wish, but I'm wondering if there's value to removing over just deprecating.
Typically we remove in situations like:
- Implementation has changed such that there's no good way of translating the old key -> new key.
- If there's a maintenance burden to keeping the old key around
- It's confusing for users. We should try to minimize surprise.
I believe the first two do not apply here.
Regarding users, let's say a 2.x client is using the dfs.encryption.key.provider.uri config key. Then, they upgrade to 3.x. If we remove the dfs key, they'll get an error that hadoop.security... is not configured, and need to change that key name over.
Alternatively, if we add a DeprecationDelta, the old key will be forwarded to the new one, a warning will go into their log file, but the client will still work. I feel this is a nicer user experience.