-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Test Che6 to Che7 upgrade using che-operator #14200
Comments
Downstream: https://issues.jboss.org/browse/CRW-303 |
I tested the upgrade on both K8s (using minikube 1.3.1) and Openshift 3.11 (using minishift). I've found the following minor problems:
@davidfestal do you think those are problems worth creating issues for? |
CC @l0rd @davidfestal wdyt do we need to upgrade version of keycloak for already exists CheCluste installations? |
I've created #14575 for that. |
Sorry for the time before answering @metlos I would answer differently for these 2 cases: Let me start with the second one:
That seems a backward-compatibility bug to me. If there would be some real possibility (and compelling reason) that a user would still use this old che operator version, then we should look deeper into the root cause of this and possibly fix it.
This is an already-known issue that was still there in previous versions of Che 7. This has been fixed in Che That's not possible to fix this for upgrades from any older version to 2 cases here:
@nickboldt @l0rd Does it seem an acceptable solution ? If it is not acceptable, then we would need to implement the same type of automatic fix as we did for the 7.0.0 to 7.1.0 release:
|
Discovered another issue - #14630. This is not strictly an issue with upgrade of the operator though. The upgrade of the operator to 7.1.0 followed the redeployment of the che server seems to work. It only happens when the user makes changes to the CR of the che cluster. |
After all, this affects 1 upgrade scenario:
|
@nickboldt @l0rd ld you please provide your thoughts about the questions in comment #14200 (comment) ? This would be great to conclude on this and decide if any action item is required, before closing the analysis issue. |
@metlos Do you confirm that if you manually change the image tags in the custom resource by patching the CR existing in K8S instead of applying it again, upgrade works correctly ? The main reason of my question is that, when you apply the changed CR again from the yaml file you have locally, you override the Postgres and Keycloak passwords to empty strings. This triggers the generation of new passwords by the operator, and brings bug #14630. So to summarize, bug #14630 would only impact upgrade from 6 to 7 if the CR is changed fully, instead of only patching the docker image and tag fields. |
Yes, patching the CR seems to be working well. |
@metlos @davidfestal the keycloak image version problem can be definitely handled as a doc issue (hence we need to add the workaround in the doc to close this issue). |
I'm hoping to not have to handle scripting an update process, but if we have to we can do so as documentation, so it's not tightly tied to a release.
This sounds preferrable, except that we still have to support OCP 3.11 users. So would this mean we would tell them to install OLM in order to be able to use operator-based updates? |
@metlos Instead if patching the custom resource with some Che 7.x version, you should just reset the docker image to empty string, so that it takes the defaults. Did you do this for all the following components:
I'm asking that because it would be important to have tested the upgrade of the Postgres image as well (if it needs upgrade). |
+1, odds are good that with every CRW update we'll have new Keycloak, UBI8-minimal (PVC) and Postgres images because the hamster wheel of CVE fixes never stops. :) |
I have not tested Postgres for sure because it hasn't changed between the versions for neither Che nor CRW. Not sure about PVC. |
The scope of this task defined in the description is complete.
I would like to ask no to extend the scope of this issue, instead of that create a new one. |
I've tested the following scenario: apiVersion: org.eclipse.che/v1
kind: CheCluster
metadata:
creationTimestamp: 2019-10-08T13:32:47Z
finalizers:
- oauthclients.finalizers.che.eclipse.org
generation: 19
name: eclipse-che
namespace: che
resourceVersion: "21659"
selfLink: /apis/org.eclipse.che/v1/namespaces/che/checlusters/eclipse-che
uid: 1daebd0e-e9d0-11e9-803c-12a6fdf53914
spec:
auth:
# ... identityProviderImage: ""
# ...
database:
# ...
postgresImage: ""
# ...
server:
# ...
cheImage: ""
cheImagePullPolicy: ""
cheImageTag: ""
# ...
devfileRegistryImage: ""
# ...
pluginRegistryImage: ""
# ...
storage:
# ... pvcJobsImage: ""
# ... After che-operator report that Che is available again we have the following state:
|
I think we should test this:
It is basically what you have done with the difference that we're not creating new deployments but rolling over existing ones. @davidfestal does the above make sense or do you think it is superfluous? |
+1 to retesting with rolling updates. Re: postgres updates...
Two problems with that statement: a) CRW 1.2.2 is using b) even with the upstream Che 6 -> 7 version https://hub.docker.com/r/centos/postgresql-96-centos7/tags?page=1&ordering=last_updated So... the flaw here is the approach that you're always using a moving tag, instead of a static one. Re: "not sure about PVC", we can again test an update there:
So... reopening. Task not complete. @metlos can you investigate the two missing update path scenarios? |
What do you mean precisly by this step ? You could simply fix old tags of each images.
I would simply create the CR with these custom (old) tags at start.
s/redeployed/deployed
And it should have triggered the rolling update of all the components (apart from Postgres that will be restarted instead of rolling-updated)
I think it can be interesting, especially if you use it with running workspaces. Another point, you might be able to set the |
Let me reply to all of the questions raised and swiftly close this issue again. CRW has nada to do with this issue that is about upgrade of Che6 to Che7. If you need to test upgrades of CRW, you're of course free to create another issue which will go through the normal loops. Sorry if I sound harsh but let's just not extend the scope of this issue constantly and return back to "defined scope -> work -> done -> problems found -> new issue" so that we can actually make progress.
How on earth is the platfrom team supposed to that? at the time we tested this, operator on master still used the old image. If that's not gonna be the case, then let's open a new issue.
which still resolves to a no-op with regards to testing the upgrade itself. Are we supposed to test kubernetes now?
Sure, let's create a new issue for that. Nothing to do with testing the upgrade.
I think you can guess my sentiment on this. No, I will not do that in the scope of this issue.
Let's create another issue for this. This issue is about Che, not CRW. I would also argue the platform team of Che is not responsible for testing CRW. |
As requested followup work moved to 2 new issues:
|
Is your task related to a problem? Please describe.
Install Che 6.19 and then attempt to update it to 7.0 using an operator.
Need to check
The text was updated successfully, but these errors were encountered: