Handle glance minor updates#1429
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: fmount The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
| // to -internal instead of the glance top level glanceType split | ||
| svcSelector = "tlGlanceAPI" | ||
| svcSelector = "tlGlanceAPI" | ||
| targetVersion = "v18.0.9" |
There was a problem hiding this comment.
I'm not sure about targetVersion: it might work for a downstream release but not for an upstream one!
There was a problem hiding this comment.
should we add const https://github.com/openstack-k8s-operators/openstack-operator/blob/main/apis/core/v1beta1/openstackversion_types.go which reflects the mapping of FR releases to version (not sure if MR release would also be required)? with this we could just say here targetVersion < FR3? for upstream we also have those OPENSTACK_RELEASE_VERSION 0.2.0 (fr2 - https://github.com/openstack-k8s-operators/openstack-operator/blob/18.0-fr2/Makefile#L6) 0.3.0 (fr3 - https://github.com/openstack-k8s-operators/openstack-operator/blob/main/Makefile#L6). we'd only have to verify if this is properly handled in the update ci job.
|
This change depends on a change that failed to merge. Change openstack-k8s-operators/glance-operator#728 is needed. |
|
@stuggi @dprince @abays I tried this locally and it does what we expect to do.
Overall giving the ability to compare two versions ( |
Signed-off-by: Francesco Pantano <fpantano@redhat.com>
|
@fmount: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
| // | ||
| // - wsgi=false keeps the httpd + proxypass deployment method. | ||
| // This is required when a minor update from a version < FR3 is performed | ||
| apiAnnotations["wsgi"] = GlanceWSGIAnnotation(version, targetVersion) |
There was a problem hiding this comment.
as mentioned on the glance pr, lets use a const on the glance api module to not have to hard code something here.
| // to -internal instead of the glance top level glanceType split | ||
| svcSelector = "tlGlanceAPI" | ||
| svcSelector = "tlGlanceAPI" | ||
| targetVersion = "v18.0.9" |
There was a problem hiding this comment.
should we add const https://github.com/openstack-k8s-operators/openstack-operator/blob/main/apis/core/v1beta1/openstackversion_types.go which reflects the mapping of FR releases to version (not sure if MR release would also be required)? with this we could just say here targetVersion < FR3? for upstream we also have those OPENSTACK_RELEASE_VERSION 0.2.0 (fr2 - https://github.com/openstack-k8s-operators/openstack-operator/blob/18.0-fr2/Makefile#L6) 0.3.0 (fr3 - https://github.com/openstack-k8s-operators/openstack-operator/blob/main/Makefile#L6). we'd only have to verify if this is properly handled in the update ci job.
|
Is there some way we can directly determine whether the glance image in the existing deployment supports WSGI, rather than using
1 and 2 I see as bigger problems as they impose new constraints on the program and can get very unwieldy as we add more of these version checks for other features. If we could come up with an approach to feature gates that actually checks for support (does the deployed image have the bits needed?) rather than a version check, we'd have a lot more flexibility and we'd avoid some of the pain points we ran into with FR1 and FR2. 3 isn't too big a deal -- I've checked and all |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Yes, the alternative is to put some logic in the Service operators and do some "image discovery", and take decisions to gracefully handle minor updates. I had a POC about that [1] and is based on a
tl;dr, we need to put some logic in the
If we introduce this mechanism, maintaining the version mapping is our responsibility, and what you described just represents a bug that should be fixed in that context (I assume CI would catch the issue).
It's not guaranteed, but this is the reason that the service operator provides a compatibility layer to make sure it works with both an old and a newer
+1, on this particular bit my only problem is the difference between upstream and downstream: it would be great to define a pattern to keep |
|
After some discussion with the core team, I think the new direction is to still rely on |
|
Closed in favor of #1439 |
|
I discussed a lot with @fmount both on the related openstack-k8s-operators/dev-docs#139 and on Slack. I strongly believe that doing proper semver versioning on OpenStackVersion and using that as feature gate is the best approach across the investigated alternatives. |
Depends-On: openstack-k8s-operators/glance-operator#728
Jira: https://issues.redhat.com/browse/OSPRH-16261