Open ffjlabo opened 1 year ago
TODO
📝
refer the implementation https://github.com/pipe-cd/pipecd/blob/master/pkg/app/piped/executor/customsync/customsync.go#L55
📝 Share my current opinion when to rollback :)
Behavior during rollback of SCRIPT_RUN
For example, consider when deployment proceeds in the following order from 1 to 7.
1. K8S_CANARY_ROLLOUT
2. WAIT
3. SCRIPT_RUN
4. K8S_PRIMARY_ROLLOUT
5. SCRIPT_RUN
6. K8S_CANARY_CLEAN
7. SCRIPT_RUN
Then
How to realize it
We can choose 2 ways to realize the rollback.
@ffjlabo I want to vote for (2) We're going to have a plugin for each platform, in such case, each platform ROLLBACK stage implementation would be run/implemented by the plugin author. At the time the plugin is implemented, there would be no way for them to notice that the ROLLBACK stage has to be called the ROLLBACK_SCRIPTRUN. For simplicity, ROLLBACK stage for the platform should only focus on ROLLBACK for platform, ROLLBACK_SCRIPTRUN should be implemented by SCRIPTRUN executor.
Another way to think is, if we treat this SCRIPT_RUN as a plugin for piped, then it should provide its ROLLBACK, not rely on other stages/platform ROLLBACK.
Thank you for your opinion :) I got it! I will try it 👍 At first I will consider how to execute the rollback for each stage because currently, the rollback is for each application kind.
Currently, k8s only. I will apply it to other kind of apps.
📝 It might be nice to have the option to ignore the failure on the stage.
for ECS app request: https://github.com/pipe-cd/pipecd/issues/4813
Related issue: https://github.com/pipe-cd/pipecd/issues/4814 Context: Users want to use deployment information in script which be run in SCRIPT_RUN stage execution
What would you like to be added: follow: https://github.com/pipe-cd/pipecd/issues/1089
implement stage to execute any command.
Why is this needed: