Commit 31df0e8
fix: separate plan creation from execution into atomic steps (#91)
A new plan is now persisted before any tasks execute. This prevents a
crash-safety issue where side effects (e.g., StatefulSet updates) could
occur before the plan and its conditions are flushed to the API server.
Before: ResolvePlan builds a plan and ExecutePlan runs tasks in the same
reconcile. A crash after task execution but before the flush loses the
plan and any conditions — external observers never see the update.
After: When ResolvePlan creates a new plan, the reconciler flushes it
immediately and requeues. Execution starts on the next reconcile, after
the plan is persisted. This guarantees external controllers (e.g.,
SeiNodeDeployment) see the plan and conditions before any side effects.
The nodedeployment controller already followed this pattern (startPlan
returns ResultRequeueImmediate without executing). This change aligns
the node controller to the same atomic guarantee.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 86fc035 commit 31df0e8
2 files changed
Lines changed: 22 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
108 | | - | |
109 | | - | |
110 | 108 | | |
111 | 109 | | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | 110 | | |
117 | | - | |
118 | | - | |
119 | 111 | | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
| |||
Lines changed: 14 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | | - | |
81 | | - | |
| 80 | + | |
82 | 81 | | |
83 | 82 | | |
84 | 83 | | |
85 | 84 | | |
86 | 85 | | |
87 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
88 | 91 | | |
89 | 92 | | |
90 | 93 | | |
| |||
111 | 114 | | |
112 | 115 | | |
113 | 116 | | |
114 | | - | |
115 | | - | |
| 117 | + | |
116 | 118 | | |
117 | 119 | | |
118 | 120 | | |
119 | 121 | | |
120 | | - | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
121 | 126 | | |
122 | 127 | | |
123 | 128 | | |
| |||
141 | 146 | | |
142 | 147 | | |
143 | 148 | | |
144 | | - | |
145 | | - | |
| 149 | + | |
146 | 150 | | |
147 | 151 | | |
148 | 152 | | |
149 | 153 | | |
150 | | - | |
| 154 | + | |
| 155 | + | |
151 | 156 | | |
152 | 157 | | |
153 | 158 | | |
| |||
0 commit comments