diff --git a/designs/helper_to_upgrade_projects_by_rescaffolding.md b/designs/helper_to_upgrade_projects_by_rescaffolding.md index 922301ce00c..74474d521ee 100644 --- a/designs/helper_to_upgrade_projects_by_rescaffolding.md +++ b/designs/helper_to_upgrade_projects_by_rescaffolding.md @@ -11,7 +11,7 @@ the [PROJECT config][project-config]. ## Example -By running a command like following users would be able to re-scaffold the whole project from the scratch using the +By running a command like following, users would be able to re-scaffold the whole project from the scratch using the current version of KubeBuilder binary available. ```shell @@ -24,15 +24,16 @@ N/A ## Summary -The [PROJECT config][project-config] tracks all configuration and inputs used to create the -project with the CLI. Therefore, a command could be able to read this information and re-run -the same commands with the same data used previously to re-generate the project. +Therefore, a new command can be designed to load user configs from the [PROJECT config][project-config] file, and run the corresponding kubebuilder subcommands to generate the project based on the new kubebuilder version. Thus, it makes it easier for the users to migrate their operator projects to the new scaffolding. ## Motivation -The recommended straightforward steps to upgrade the projects are re-scaffold all from scract using the upper -version/plugin and then, re-add all code source on top again. Therefore, this command would help users in -order to minimize the required effort by automating which shows technically possible of this process. +A common scenario is to upgrade the project based on the newer Kubebuilder. The recommended (straightforward) steps are: + +- a) re-scaffold all files from scratch using the upper version/plugins +- b) copy user-defined source code to the new layout + +The proposed command will automate the process at maximum, therefore helping operator authors with minimizing the manual effort. The main motivation of this proposal is to provide a helper for upgrades and make less painful this process. Examples: