-
Notifications
You must be signed in to change notification settings - Fork 372
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Phase upgrade seems to not work #85
Comments
Tried to analyze but am not really sure, which Decoder the reflector uses. |
Yes. I've seen that too. Resolved by deleting the status of all Custom Resources. 🤷♂️ |
Unfortunately there's no direct upgrade path from 2.0.0 to 3.0.0. It basically requires an uninstall, CRD update & reinstall. I'll put together more detailled instructions. |
Why is that? |
@abergmeier It's because the format of the resource status has changed. As your error indicates, phase is now a string. Also the whole status property is now handled as a subresource and finalizers are no longer used. Ideally we would have updated the CRD version but had some constraints that prevented us from doing so. I've added upgrade steps: https://github.com/integr8ly/grafana-operator/blob/master/documentation/upgrade.md Hope that help and sorry for the break in compatibility with older versions. |
Maybe in future have a look at other Operators like Tekton, which handle breaking Resource changes gracefully. |
Can you elaborate? AFAIK CRD versions are not meant to change over time. |
There was a move to make the whole operator stateless, this meant removing some stateful fields from CRDs, hence the breaking change and major version bump for the operator from 2.0.0 -> 3.0.0, this now means that every version past 3.0.0 won't break on upgrade (hopefully), the added benefit was the fact that the operator wouldn't leave any "dirty" resources lying around since finalizers were no longer required. Overall this provides user with a more robust operator, the drawback is that the upgrade is quite bothersome in some cases. |
I switched Operator to 3.0.0 and get the following errors:
In the status maps, you find
phase
values like:Since
phase
is a string, I think it would be necessary to at least upgrade the status to beIf
phase
was anint
in the past, a complete conversion would be great ;)The text was updated successfully, but these errors were encountered: