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

[warm-reboot-version] warm reboot versioning document & design #332

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

yxieca
Copy link
Contributor

@yxieca yxieca commented Feb 9, 2019

  • Document the requirement of warm reboot versioning.
  • Design solution for post warm reboot versioning.

Signed-off-by: Ying Xie ying.xie@microsoft.com

- Document the requirement of warm reboot versioning.
- Design solution for post warm reboot versioning.

Signed-off-by: Ying Xie <ying.xie@microsoft.com>
Copy link
Contributor

@jipanyang jipanyang left a comment

Choose a reason for hiding this comment

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

As to the "Provide post upgrading guidance for states restoration.", since we know the "from" version of sonic (or each specific docker), do we really need another specific version design? Could those version data be saved to the "warm-reboot-versions" file you proposed and used directly?

Except for few cases like lacp pdu data file for teamd, the application will restore data from database.
The possible data conversion from old version to new version, in common practice, usually should be done in some one time script before the application is started. Maybe in postStartAction() of database docker?

Each docker is supposed to certify the "From" version white list and provide the conversion scripts to be called there.

@jipanyang
Copy link
Contributor

To add more clarification:
<1> We could save the "show version" data of "FROM" image, which includes the versions of the whole SONiC images and each specific docker, to /host/warmboot at the beginning of sonic_installer install processing.

<2> At preStartAction or postStartAction of database container, a script plugin mechanism should be designed.
So based on the specific container "FROM" version, a data schema transformation script should be provided by the "TO" version container if needed.

<3> The "TO" version of container/SONiC image is also responsible for maintaining the white list of supported "FROM" version. This one applies to both pre-upgrade and post-upgrade.

This doesn't conflict with Database container versioning, but gives finer control of software warm upgrade.

@yxieca yxieca force-pushed the master branch 2 times, most recently from 8498931 to 8837dc2 Compare April 15, 2022 16:51
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.

2 participants