Skip to content
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

enhancements/update/targeted-update-edge-blocking: Client-side platform parameter #737

Closed

Conversation

wking
Copy link
Member

@wking wking commented Apr 17, 2021

I still prefer the flexibility of a PromQL approach (#426). But that is a bigger update-service shift, and I haven't been able to convince folks it's worth doing, and maybe they're right and it is overkill. This alternative proposal guesses that "platform" will help with targeting most of our target-able blockers, and be quicker to implement. Historically, it would have been helpful in scoping down:

wking added 2 commits April 16, 2021 13:25
I keep repeating this in various internal discussions.  Collect it all
up with a bow so I can just drop links ;).
Generated with:

  $ (cd enhancements/update/overriding-blocked-edges; dot -Tsvg flow.dot >flow.svg)

using:

  $ dot -V
  dot - graphviz version 2.30.1 (20170916.1124)
@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please assign ironcladlou after the PR has been reviewed.
You can assign the PR to them by writing /assign @ironcladlou in a comment when ready.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

…rm parameter

I still prefer the flexibility of a PromQL approach [1].  But that is
a bigger update-service shift, and I haven't been able to convince
folks it's worth doing.  This alternative proposal guesses that
"platform" will help with targeting most of our target-able blockers,
and be quicker to implement.

[1]: openshift#426
@wking wking force-pushed the targeted-edge-blocking-by-platform branch from 714a3d9 to 8bd3491 Compare April 17, 2021 21:55
Copy link
Member

@LalatenduMohanty LalatenduMohanty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most of my review comments in #426 applicable to this PR as well.

Clusters whose platform is in the array will be blocked.
Clusters whose platform is known to not be in the array will not be blocked.

Clusters whose platform is unknown are also blocked.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should not block unknown. Because it is unknown. Blocking clusters has side effect i.e. we need to provide path for them to upgrade. So we should be sure about which platform we want to block. In case of unknown , by definition is it not clear what platform the cluster is running on. So blocking it will create unnecessary churn IMO.

Maintainers of other update service implementations may or may not be able to apply them to their own implementation.

The graph-builder's graph-data scraper should learn about [the new 1.1.0 schema](#enhanced-graph-data-schema-for-blocking-edges), and record any `clusters` properties in edge metadata.
The graph-builder should also be prepared for, and alert on, invalid graph-data configuration.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain The graph-builder should also be prepared for, and alert on, invalid graph-data configuration . I do not think I understand.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If/when Cincinnati gets fed broken graph-data, it should complain about it in a way its admins will notice. Alerts seemed like a reasonable choice. That way they know they should acquire fixed graph-data.

#### Clients not reporting data

Some Cincinnati clients, for example, older cluster-version operators and external web renderers, may not submit `platform` query parameters.
These clients will have conditional edges blocked, unless their update service happens to implement [cluster property lookup](#update-service-cluster-property-lookup).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another reason not to block edges when platform is none.

@wking
Copy link
Member Author

wking commented Jul 2, 2021

Replaced by the v3 #821, where I'm now recommending cluster-side decisions, with the update service declaring conditional edges and telling the cluster-side tools how to decide if the cluster is vulnerable to the known bugs impacting its update decisions.

@wking wking closed this Jul 2, 2021
@wking wking deleted the targeted-edge-blocking-by-platform branch July 2, 2021 04:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants