@@ -109,28 +109,40 @@ func main() {
109109 os .Exit (1 )
110110 }
111111
112+ entries , err := os .ReadDir (stateDir )
113+ if err != nil {
114+ logger .Error (err , "Error reading state directory" )
115+ os .Exit (1 )
116+ }
117+ if len (entries ) > 0 {
118+ logger .Info ("Already initialized. Init done" )
119+ os .Exit (0 )
120+ }
121+
112122 idx , err := statefulset .PodIndex (env .podName )
113123 if err != nil {
114124 logger .Error (err , "error getting index from Pod" , "pod" , env .podName )
115125 os .Exit (1 )
116126 }
117-
118127 if * idx == 0 {
119128 logger .Info ("Configuring bootstrap" )
120129 if err := fileManager .WriteConfigFile (config .BootstrapFileName , config .BootstrapFile ); err != nil {
121130 logger .Error (err , "Error writing bootstrap config" )
122131 os .Exit (1 )
123132 }
124- } else {
125- previousPodName , err := previousPodName (mdb , * idx )
126- if err != nil {
127- logger .Error (err , "error getting previous Pod" )
128- os .Exit (1 )
129- }
130- if err := waitForPreviousPod (ctx , mdb , previousPodName , clientset , logger ); err != nil {
131- logger .Error (err , "error getting previous Pod" , "pod" , previousPodName )
132- os .Exit (1 )
133- }
133+ logger .Info ("Init done" )
134+ os .Exit (0 )
135+ }
136+
137+ previousPodName , err := previousPodName (mdb , * idx )
138+ if err != nil {
139+ logger .Error (err , "Error getting previous Pod" )
140+ os .Exit (1 )
141+ }
142+ logger .Info ("Waiting for previous Pod to be ready" , "pod" , previousPodName )
143+ if err := waitForPreviousPod (ctx , mdb , previousPodName , clientset , logger ); err != nil {
144+ logger .Error (err , "Error waiting for previous Pod to be ready" , "pod" , previousPodName )
145+ os .Exit (1 )
134146 }
135147 logger .Info ("Init done" )
136148}
@@ -183,6 +195,7 @@ func waitForPreviousPod(ctx context.Context, mariadb *mariadbv1alpha1.MariaDB, p
183195 return wait .PollImmediateUntilWithContext (ctx , 1 * time .Second , func (context.Context ) (bool , error ) {
184196 previousPod , err := clientset .CoreV1 ().Pods (mariadb .Namespace ).Get (ctx , previousPodName , metav1.GetOptions {})
185197 if err != nil {
198+ logger .V (1 ).Info ("Error getting previous Pod" , "err" , err )
186199 return false , nil
187200 }
188201 if ! pod .PodReady (previousPod ) {
0 commit comments