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

Restore rollback support #314

Closed
9 tasks
dee0sap opened this issue Nov 4, 2024 · 0 comments · Fixed by open-component-model/ocm-controller#549
Closed
9 tasks

Restore rollback support #314

dee0sap opened this issue Nov 4, 2024 · 0 comments · Fixed by open-component-model/ocm-controller#549
Assignees
Labels
area/ipcei Important Project of Common European Interest component/ocm-controllers OCM Controllers kind/task small task, normally part of feature or epic

Comments

@dee0sap
Copy link

dee0sap commented Nov 4, 2024

Description

We need to an expedient way to rollback from a bad component version. More specifically, we would like this scenario to be possible

  1. v3,9.0 built and rolled out and was good
  2. v4.0.0 built and rolled out and at some point determined so bad we need to quickly rollback
  3. We update semVer in our ComponentVersion to include "!=v4.0.0"
  4. OCM-Controller automatically takes us back to v3.9.0 ( Assuming that repository doesn't have anything newer than 4.0.0 )

Note that we do have the concern that if somehow, perhaps unintentionally, the currently deployed version was removed from the repository then a rollback would be initiated. To defend against that we think we should have logic like this

latestFilteredVersion := getLatestMatchingVersionFromRepo()
currentVersion := getCurrentVersion()
if currentVersion < latestFilteredVersion || ! matchesFilter( currentVersion ) {
// use latestFilteredVersion
}

So this way a rollback is only coming if it has been indicated by the filter and not just because of something happening in the repository.

Done Criteria

  • ...
  • Code has been reviewed by other team members
  • Internal technical Documentation created/updated
  • New / changed code is documented
  • Analysis of existing tests (Unit and Integration)
  • Unit Tests created for new code or existing Unit Tests updated
  • Integration Test Suite updated (includes deletion of existing unnecessary Integration Test and/or creation of new ones if required)
  • Enduser Documentation updated (if applicable)
  • Successful demonstration in Review
@dee0sap dee0sap added the kind/task small task, normally part of feature or epic label Nov 4, 2024
@github-actions github-actions bot added the area/ipcei Important Project of Common European Interest label Nov 4, 2024
@morri-son morri-son added the component/ocm-controllers OCM Controllers label Nov 4, 2024
@Skarlso Skarlso self-assigned this Nov 5, 2024
@Skarlso Skarlso moved this from 🆕 ToDo to 🏗 In Progress in OCM Backlog Board Nov 5, 2024
Skarlso added a commit to open-component-model/ocm-controller that referenced this issue Nov 6, 2024
Closes open-component-model/ocm-project#314

@dee0sap This should pretty much do what you want, I will also test this
manually.
@github-project-automation github-project-automation bot moved this from 🏗 In Progress to 🍺 Done in OCM Backlog Board Nov 6, 2024
@ocmbot ocmbot bot moved this from 🍺 Done to 🔒Closed in OCM Backlog Board Nov 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ipcei Important Project of Common European Interest component/ocm-controllers OCM Controllers kind/task small task, normally part of feature or epic
Projects
Status: 🔒Closed
Development

Successfully merging a pull request may close this issue.

3 participants