Affected version
sble-operator 0.76.0
Current and expected behavior
If you try to merge the following KVP sets:
and then build a k8s_openapi label map from it you get
Which is nonsense, I'd expect one of them to take precedence (and according to convention/ObjectMetaBuilder::with_label docs) it should be the latter ({a: a, b: b}).
Possible solution
Ultimately, this comes down to that we try to store reified KeyValuePairs in a BTreeSet. This isn't what sets exist for.
As a "quick fix" we could change the backing store for KeyValuePairs to BTreeMap<Key, V> (though its Deref<BTreeSet> impl makes that problematic too, on top of a bunch of lifetime issues). Ultimately I'd like to rip the band-aid and just kill KeyValuePair.
Additional context
No response
Environment
No response
Would you like to work on fixing this bug?
yes