operator-framework / operator-controller

Apache License 2.0
29 stars 47 forks source link

[epic] Support interaction similar to OLMv0's OperatorConditions upgrade blocking #739

Open joelanford opened 3 months ago

OchiengEd commented 2 months ago

/assign

OchiengEd commented 1 month ago
joelanford commented 1 month ago

Note from @dinhxuanvu:

dinhxuanvu commented 1 month ago

Just a note now that I remember "something".

We didn't do any CR conversion between v1 and v2 because we didn't use kube-storage-version-migrator or anything like that to do the conversion automatically. Even if the CR is stored under v1 initially in etcd, when the CR is served, it will have v2 tag/version as I apiserver automatically converts from v1 to v2 if the client is querying v2 endpoint. v2 is the storage version so upon writing back, it should be written as v2 in etcd moving forward. Both versions are serving versions to avoid breaking the operators' operation if they are using v1. v2 is adding a new field if IRCC so the conversion from v1 to v2 shouldn't lose any data.